1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems

This commit is contained in:
Klaus Schmidinger 2016-12-22 14:13:42 +01:00
parent 99dfe9f66a
commit 39c9fc1199
7 changed files with 15 additions and 12 deletions

View File

@ -3449,3 +3449,6 @@ Robert Hannebauer <vdr@hannebauer.org>
Aitugan Sarbassov <isarbassov@gmail.com> Aitugan Sarbassov <isarbassov@gmail.com>
for adding 'S58.5E Kazsat 3' to sources.conf for adding 'S58.5E Kazsat 3' to sources.conf
Sergey Chernyavskiy <glenvt18@gmail.com>
for reporting truncated date/time strings in the skins on multi-byte UTF-8

View File

@ -8868,3 +8868,5 @@ Video Disk Recorder Revision History
- Fixed building VDR with systemd >= 230 (thanks to Ville Skyttä). - Fixed building VDR with systemd >= 230 (thanks to Ville Skyttä).
- Sorted sources.conf by continous azimuth (thanks to Lucian Muresan). - Sorted sources.conf by continous azimuth (thanks to Lucian Muresan).
- Added 'S58.5E Kazsat 3' to sources.conf (thanks to Aitugan Sarbassov). - Added 'S58.5E Kazsat 3' to sources.conf (thanks to Aitugan Sarbassov).
- Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems
(reported by Sergey Chernyavskiy).

View File

@ -135,3 +135,5 @@ VDR Plugin 'skincurses' Revision History
- Added cFont::Width(void) to get the default character width and allow stretched - Added cFont::Width(void) to get the default character width and allow stretched
font drawing in high level OSDs (dummy for skincurses). font drawing in high level OSDs (dummy for skincurses).
- Fixed truncated date/time strings in the skins on multi-byte UTF-8 systems
(reported by Sergey Chernyavskiy).

View File

@ -3,7 +3,7 @@
* *
* See the README file for copyright information and how to reach the author. * See the README file for copyright information and how to reach the author.
* *
* $Id: skincurses.c 4.1 2016/12/22 12:50:20 kls Exp $ * $Id: skincurses.c 4.2 2016/12/22 14:09:09 kls Exp $
*/ */
#include <ncurses.h> #include <ncurses.h>
@ -408,8 +408,7 @@ void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
return; return;
int y = 2; int y = 2;
cTextScroller ts; cTextScroller ts;
char t[32]; cString t = cString::sprintf("%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
snprintf(t, sizeof(t), "%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground);
if (Event->Vps() && Event->Vps() != Event->StartTime()) { if (Event->Vps() && Event->Vps() != Event->StartTime()) {
cString buffer = cString::sprintf(" VPS: %s", *Event->GetVpsString()); cString buffer = cString::sprintf(" VPS: %s", *Event->GetVpsString());

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skinclassic.c 2.10 2013/03/03 15:26:09 kls Exp $ * $Id: skinclassic.c 4.1 2016/12/22 14:07:04 kls Exp $
*/ */
#include "skinclassic.h" #include "skinclassic.h"
@ -352,8 +352,7 @@ void cSkinClassicDisplayMenu::SetEvent(const cEvent *Event)
const cFont *font = cFont::GetFont(fontOsd); const cFont *font = cFont::GetFont(fontOsd);
int y = y2; int y = y2;
cTextScroller ts; cTextScroller ts;
char t[32]; cString t = cString::sprintf("%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
snprintf(t, sizeof(t), "%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
ts.Set(osd, x1, y, x2 - x1, y3 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground)); ts.Set(osd, x1, y, x2 - x1, y3 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
if (Event->Vps() && Event->Vps() != Event->StartTime()) { if (Event->Vps() && Event->Vps() != Event->StartTime()) {
cString buffer = cString::sprintf(" VPS: %s ", *Event->GetVpsString()); cString buffer = cString::sprintf(" VPS: %s ", *Event->GetVpsString());

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skinlcars.c 4.1 2015/09/01 10:07:07 kls Exp $ * $Id: skinlcars.c 4.2 2016/12/22 14:05:56 kls Exp $
*/ */
// "Star Trek: The Next Generation"(R) is a registered trademark of Paramount Pictures, // "Star Trek: The Next Generation"(R) is a registered trademark of Paramount Pictures,
@ -1636,8 +1636,7 @@ void cSkinLCARSDisplayMenu::SetEvent(const cEvent *Event)
int xl = xi00; int xl = xi00;
int y = yi00; int y = yi00;
cTextScroller ts; cTextScroller ts;
char t[32]; cString t = cString::sprintf("%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
snprintf(t, sizeof(t), "%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
ts.Set(osd, xl, y, xi01 - xl, yi01 - y, t, font, Theme.Color(clrEventTime), Theme.Color(clrBackground)); ts.Set(osd, xl, y, xi01 - xl, yi01 - y, t, font, Theme.Color(clrEventTime), Theme.Color(clrBackground));
if (Event->Vps() && Event->Vps() != Event->StartTime()) { if (Event->Vps() && Event->Vps() != Event->StartTime()) {
cString buffer = cString::sprintf(" VPS: %s ", *Event->GetVpsString()); cString buffer = cString::sprintf(" VPS: %s ", *Event->GetVpsString());

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skinsttng.c 3.1 2013/11/15 15:33:14 kls Exp $ * $Id: skinsttng.c 4.1 2016/12/22 14:07:22 kls Exp $
*/ */
// "Star Trek: The Next Generation"(R) is a registered trademark of Paramount Pictures // "Star Trek: The Next Generation"(R) is a registered trademark of Paramount Pictures
@ -655,8 +655,7 @@ void cSkinSTTNGDisplayMenu::SetEvent(const cEvent *Event)
int xl = x3 + TextSpacing; int xl = x3 + TextSpacing;
int y = y3; int y = y3;
cTextScroller ts; cTextScroller ts;
char t[32]; cString t = cString::sprintf("%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
snprintf(t, sizeof(t), "%s %s - %s", *Event->GetDateString(), *Event->GetTimeString(), *Event->GetEndTimeString());
ts.Set(osd, xl, y, x4 - xl, y4 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground)); ts.Set(osd, xl, y, x4 - xl, y4 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
if (Event->Vps() && Event->Vps() != Event->StartTime()) { if (Event->Vps() && Event->Vps() != Event->StartTime()) {
cString buffer = cString::sprintf(" VPS: %s ", *Event->GetVpsString()); cString buffer = cString::sprintf(" VPS: %s ", *Event->GetVpsString());