diff --git a/HISTORY b/HISTORY index fdb7d2f7..01bf71cf 100644 --- a/HISTORY +++ b/HISTORY @@ -4816,3 +4816,5 @@ Video Disk Recorder Revision History in case they are added after the current event. - cEIT::cEIT() now calls pSchedule->SetPresentSeen() even if OnlyRunningStatus is true. +- Newlines in title and short text of an EPG event are now changed into blanks only + after all other fixes, because a short text might become a description. diff --git a/epg.c b/epg.c index 3afecc35..dbd5350b 100644 --- a/epg.c +++ b/epg.c @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider and Rolf Hakenes . * - * $Id: epg.c 1.76 2006/07/22 09:13:15 kls Exp $ + * $Id: epg.c 1.77 2006/07/22 10:13:34 kls Exp $ */ #include "epg.h" @@ -435,18 +435,6 @@ void ReportEpgBugFixStats(bool Reset) void cEvent::FixEpgBugs(void) { - // VDR can't usefully handle newline characters in the title and shortText of EPG - // data, so let's always convert them to blanks (independent of the setting of EPGBugfixLevel): - strreplace(title, '\n', ' '); - strreplace(shortText, '\n', ' '); - // Same for control characters: - strreplace(title, '\x86', ' '); - strreplace(title, '\x87', ' '); - strreplace(shortText, '\x86', ' '); - strreplace(shortText, '\x87', ' '); - strreplace(description, '\x86', ' '); - strreplace(description, '\x87', ' '); - if (isempty(title)) { // we don't want any "(null)" titles title = strcpyrealloc(title, tr("No title")); @@ -454,7 +442,7 @@ void cEvent::FixEpgBugs(void) } if (Setup.EPGBugfixLevel == 0) - return; + goto Final; // Some TV stations apparently have their own idea about how to fill in the // EPG data. Let's fix their bugs as good as we can: @@ -528,7 +516,7 @@ void cEvent::FixEpgBugs(void) } if (Setup.EPGBugfixLevel <= 1) - return; + goto Final; // Some channels apparently try to do some formatting in the texts, // which is a bad idea because they have no way of knowing the width @@ -574,7 +562,7 @@ void cEvent::FixEpgBugs(void) strreplace(description, '`', '\''); if (Setup.EPGBugfixLevel <= 2) - return; + goto Final; // The stream components have a "description" field which some channels // apparently have no idea of how to set correctly: @@ -638,6 +626,20 @@ void cEvent::FixEpgBugs(void) } } } + +Final: + + // VDR can't usefully handle newline characters in the title and shortText of EPG + // data, so let's always convert them to blanks (independent of the setting of EPGBugfixLevel): + strreplace(title, '\n', ' '); + strreplace(shortText, '\n', ' '); + // Same for control characters: + strreplace(title, '\x86', ' '); + strreplace(title, '\x87', ' '); + strreplace(shortText, '\x86', ' '); + strreplace(shortText, '\x87', ' '); + strreplace(description, '\x86', ' '); + strreplace(description, '\x87', ' '); } // --- cSchedule -------------------------------------------------------------