summaryrefslogtreecommitdiff
path: root/epg.c
diff options
context:
space:
mode:
Diffstat (limited to 'epg.c')
-rw-r--r--epg.c42
1 files changed, 26 insertions, 16 deletions
diff --git a/epg.c b/epg.c
index 566f20e..dbd5350 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 <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.c 1.75 2006/05/25 14:55:36 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 -------------------------------------------------------------
@@ -770,6 +772,14 @@ void cSchedule::ResetVersions(void)
void cSchedule::Sort(void)
{
events.Sort();
+ // Make sure there are no RunningStatusUndefined before the currently running event:
+ if (hasRunning) {
+ for (cEvent *p = events.First(); p; p = events.Next(p)) {
+ if (p->RunningStatus() > SI::RunningStatusNotRunning)
+ break;
+ p->SetRunningStatus(SI::RunningStatusNotRunning);
+ }
+ }
}
void cSchedule::DropOutdated(time_t SegmentStart, time_t SegmentEnd, uchar TableID, uchar Version)