diff --git a/CONTRIBUTORS b/CONTRIBUTORS index ffd4c8f3..264d24b0 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1500,6 +1500,7 @@ Udo Richter for making the HUP signal force a restart of VDR for fixing a race condition with signal handlers at program exit for fixing handling detached processes in SystemExec() + for fixing handling single byte characters >0x7F in Utf8ToArray() Sven Kreiensen for his help in keeping 'channels.conf.terr' up to date diff --git a/HISTORY b/HISTORY index 5cbbf184..0043cc4e 100644 --- a/HISTORY +++ b/HISTORY @@ -5281,3 +5281,5 @@ Video Disk Recorder Revision History - Fixed a buffer overflow in initializing the system character table (thanks to Marco Schlüßler). - Updated the Russian OSD texts (thanks to Oleg Roitburd). +- Fixed handling single byte characters >0x7F in Utf8ToArray() (thanks to Udo + Richter). diff --git a/tools.c b/tools.c index 2e646d19..46b691b9 100644 --- a/tools.c +++ b/tools.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 1.131 2007/07/16 15:23:28 kls Exp $ + * $Id: tools.c 1.132 2007/07/20 13:17:40 kls Exp $ */ #include "tools.h" @@ -685,7 +685,7 @@ int Utf8ToArray(const char *s, uint *a, int Size) int n = 0; while (*s && --Size > 0) { if (cCharSetConv::SystemCharacterTable()) - *a++ = *s++; + *a++ = (uchar)(*s++); else { int sl = Utf8CharLen(s); *a++ = Utf8CharGet(s, sl);