[ANNOUNCE] VDR developer version 1.5.6
Commit Message
On 07/22/07 16:56, Luca Olivetti wrote:
> En/na Klaus Schmidinger ha escrit:
>> VDR developer version 1.5.6 is now available at
>
> With this version display of national character broke here, e.g. "WDR
> münster" changed to "WDR m<little square>nster" (not only in the
> channels name, also in the epg for wdr, zdf, das erste ).
>
> I reverted these two fixes in tools.c:
>
>> - Fixed a buffer overflow in initializing the system character table (thanks
>> to Marco Schlüßler).
> [...]
>> - Fixed handling single byte characters >0x7F in Utf8ToArray() (thanks to Udo
>> Richter).
>
> with no result.
Marco Schlüßler sent me the fix - see attachment.
It was a side effect of the changes in skipspace()...
Klaus
Comments
On Sun, Jul 22, 2007 at 10:38:21PM +0200, Klaus Schmidinger wrote:
> Marco Schlüßler sent me the fix - see attachment.
> It was a side effect of the changes in skipspace()...
this patch seems to work only partialy:
-----------------------------------------------------------------
lstc wdr
250-17 WDR
Köln;ARD:11836:hC34:S19.2E:27500:601:602=deu:604:0:28111:1:1101:0
250-901 WDR
M?nster;ARD:12421:hC34:S19.2E:27500:101:102=deu:104:0:28310:1:1201:0
<<<<< CUT >>>>>
250-1425 WDR
D?sseldorf;ARD:12421:hC34:S19.2E:27500:101:102=deu:104:0:28308:1:1201:0
-----------------------------------------------------------------
looks like only The "Ü" (ONLY UPPERCASE) does not work for me :-o
newt 1:20:23:0:5:0:0:AAAÖÖÖÜÜÜ€€€€
250 14 1:20:2007-07-23:0000:0005:0:0:AAAÖÖÖ???€€€€:
vdr: [17770] timer 14 (20 0000-0005 'AAAÖÖÖ?\377?\377?^F?\377?\377?^F?\377?\377?^F€€€€') added
vdr: [17770] deleting timer 14 (20 0000-0005 'AAAÖÖÖ?\377?\377?^F?\377?\377?^F?\377?\377?^F€€€€')
newt 1:20:23:715:720:0:0:Bühnendübel
250 14 1:20:2007-07-23:0715:0720:0:0:Bühnendübel:
here it get strange: after putting a Ü in the Line, the timer gets added
but the normal output of the complete timerline is not always echoed back:
i have to press enter for getting a prompt; only every second input of
lstt works;
newt 1:20:23:800:805:0:0:BÜHNENDÜBEL
"
lstt 15
500 Command unrecognized: "lstt"
lstt 15
250 15 1:20:2007-07-23:0800:0805:0:0:B?HNEND?BEL:
mfg hermann
On 07/23/07 07:23, Hermann Gausterer wrote:
> On Sun, Jul 22, 2007 at 10:38:21PM +0200, Klaus Schmidinger wrote:
>> Marco Schlüßler sent me the fix - see attachment.
>> It was a side effect of the changes in skipspace()...
>
> this patch seems to work only partialy:
> -----------------------------------------------------------------
> lstc wdr
> 250-17 WDR
> Köln;ARD:11836:hC34:S19.2E:27500:601:602=deu:604:0:28111:1:1101:0
> 250-901 WDR
> M�nster;ARD:12421:hC34:S19.2E:27500:101:102=deu:104:0:28310:1:1201:0
> <<<<< CUT >>>>>
> 250-1425 WDR
> D�sseldorf;ARD:12421:hC34:S19.2E:27500:101:102=deu:104:0:28308:1:1201:0
> -----------------------------------------------------------------
>
> looks like only The "Ü" (ONLY UPPERCASE) does not work for me :-o
>
> newt 1:20:23:0:5:0:0:AAAÖÖÖÜÜÜ€€€€
> 250 14 1:20:2007-07-23:0000:0005:0:0:AAAÖÖÖ���€€€€:
>
> vdr: [17770] timer 14 (20 0000-0005 'AAAÖÖÖ�\377�\377�^F�\377�\377�^F�\377�\377�^F€€€€') added
> vdr: [17770] deleting timer 14 (20 0000-0005 'AAAÖÖÖ�\377�\377�^F�\377�\377�^F�\377�\377�^F€€€€')
>
> newt 1:20:23:715:720:0:0:Bühnendübel
> 250 14 1:20:2007-07-23:0715:0720:0:0:Bühnendübel:
>
> here it get strange: after putting a Ü in the Line, the timer gets added
> but the normal output of the complete timerline is not always echoed back:
> i have to press enter for getting a prompt; only every second input of
> lstt works;
>
> newt 1:20:23:800:805:0:0:BÃœHNENDÃœBEL
>
> "
> lstt 15
> 500 Command unrecognized: "lstt"
> lstt 15
> 250 15 1:20:2007-07-23:0800:0805:0:0:B�HNEND�BEL:
Well, the fix in skipspace() did fix the problems as far as I could see
them.
Any further UTF-8 problems will probably need to be debugged by somebody
actually using UTF-8.
Klaus
@@ -175,9 +175,9 @@
char *strreplace(char *s, const char *s1, const char *s2); ///< re-allocates 's' and deletes the original string if necessary!
inline char *skipspace(const char *s)
{
- if (*s > ' ') // most strings don't have any leading space, so handle this case as fast as possible
+ if ((uchar)*s > ' ') // most strings don't have any leading space, so handle this case as fast as possible
return (char *)s;
- while (*s && *s <= ' ') // avoiding isspace() here, because it is much slower
+ while (*s && (uchar)*s <= ' ') // avoiding isspace() here, because it is much slower
s++;
return (char *)s;
}