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

Reactivated stripping control characters from EPG texts and adapted it to UTF-8

This commit is contained in:
Klaus Schmidinger 2012-09-29 14:30:48 +02:00
parent c5dfaf9681
commit 3c860ee043
2 changed files with 25 additions and 9 deletions

View File

@ -7262,3 +7262,4 @@ Video Disk Recorder Revision History
thread to avoid sluggish response to user input on slow systems (based on a patch from thread to avoid sluggish response to user input on slow systems (based on a patch from
Sören Moch). Sören Moch).
- Fixed sorting folders before recordings in case of UTF-8 (thanks to Sören Moch). - Fixed sorting folders before recordings in case of UTF-8 (thanks to Sören Moch).
- Reactivated stripping control characters from EPG texts and adapted it to UTF-8.

33
epg.c
View File

@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by * Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* *
* $Id: epg.c 2.20 2012/09/29 11:49:11 kls Exp $ * $Id: epg.c 2.21 2012/09/29 14:29:49 kls Exp $
*/ */
#include "epg.h" #include "epg.h"
@ -641,6 +641,26 @@ void ReportEpgBugFixStats(bool Force)
} }
} }
static void StripControlCharacters(char *s)
{
if (s) {
int len = strlen(s);
while (len > 0) {
int l = Utf8CharLen(s);
uchar *p = (uchar *)s;
if (l == 2 && *p == 0xC2) // UTF-8 sequence
p++;
if (*p == 0x86 || *p == 0x87) {
memmove(s, p + 1, len - l + 1); // we also copy the terminating 0!
len -= l;
l = 0;
}
s += l;
len -= l;
}
}
}
void cEvent::FixEpgBugs(void) void cEvent::FixEpgBugs(void)
{ {
if (isempty(title)) { if (isempty(title)) {
@ -850,15 +870,10 @@ Final:
strreplace(p->description, '\n', ' '); strreplace(p->description, '\n', ' ');
} }
} }
/* TODO adapt to UTF-8
// Same for control characters: // Same for control characters:
strreplace(title, '\x86', ' '); StripControlCharacters(title);
strreplace(title, '\x87', ' '); StripControlCharacters(shortText);
strreplace(shortText, '\x86', ' '); StripControlCharacters(description);
strreplace(shortText, '\x87', ' ');
strreplace(description, '\x86', ' ');
strreplace(description, '\x87', ' ');
XXX*/
} }
// --- cSchedule ------------------------------------------------------------- // --- cSchedule -------------------------------------------------------------