cEvent::FixEpgBugs() now replaces any newline characters in stream component descriptions with blanks

This commit is contained in:
Klaus Schmidinger 2012-01-08 15:40:17 +01:00
parent 2b3821cc88
commit 4d30033936
3 changed files with 16 additions and 2 deletions

View File

@ -2801,3 +2801,7 @@ Chris Mayo <aklhfex@gmail.com>
Dominic Evans <oldmanuk@gmail.com>
for making the SVDRP command LSTC accepts channel IDs
for adding cap_net_raw to the capabilities that are not dropped
Torsten Lang <info@torstenlang.de>
for reporting a problem with newline characters in stream component descriptions
of EPG data from BSkyB's "MTV MUSIC"

View File

@ -6803,3 +6803,6 @@ Video Disk Recorder Revision History
- Updated the Hungarian language texts (thanks to István Füley).
- cDvbTuner::ExecuteDiseqc() now makes sure only one tuner sends SCR commands
at any given time (reported by Frank Neumann).
- cEvent::FixEpgBugs() now replaces any newline characters in stream component
descriptions with blanks (thanks to Torsten Lang for reporting a problem with
EPG data from BSkyB's "MTV MUSIC", S28.2E-2-2010-7012).

11
epg.c
View File

@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
* $Id: epg.c 2.7 2011/02/25 15:16:05 kls Exp $
* $Id: epg.c 2.8 2012/01/08 14:59:38 kls Exp $
*/
#include "epg.h"
@ -828,10 +828,17 @@ void cEvent::FixEpgBugs(void)
Final:
// VDR can't usefully handle newline characters in the title and shortText of EPG
// VDR can't usefully handle newline characters in the title, shortText or component description of EPG
// data, so let's always convert them to blanks (independent of the setting of EPGBugfixLevel):
strreplace(title, '\n', ' ');
strreplace(shortText, '\n', ' ');
if (components) {
for (int i = 0; i < components->NumComponents(); i++) {
tComponent *p = components->Component(i);
if (p->description)
strreplace(p->description, '\n', ' ');
}
}
/* TODO adapt to UTF-8
// Same for control characters:
strreplace(title, '\x86', ' ');