diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 208ddb47..af0bc06f 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -920,6 +920,7 @@ Peter Bieringer for reporting a problem with duplicate recordings with the same file name for suggesting to implement the command line option '--vfat' for reporting a leftover 'summary.vdr' in vdr.5 + for adding more error messages and line numbers when reading EPG data and info.vdr Alexander Damhuis for reporting problems when deleting a timer that is currently recording diff --git a/HISTORY b/HISTORY index 4bc76632..5f945030 100644 --- a/HISTORY +++ b/HISTORY @@ -3899,3 +3899,5 @@ Video Disk Recorder Revision History to Darren Salt). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns). +- Added more error messages and line numbers when reading EPG data and info.vdr + (thanks to Peter Bieringer). diff --git a/epg.c b/epg.c index 4377c6d3..0bdd185c 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.37 2005/09/09 15:14:11 kls Exp $ + * $Id: epg.c 1.38 2005/10/09 12:57:55 kls Exp $ */ #include "epg.h" @@ -285,8 +285,10 @@ bool cEvent::Read(FILE *f, cSchedule *Schedule) if (Schedule) { cEvent *Event = NULL; char *s; + int line = 0; cReadLine ReadLine; while ((s = ReadLine.Read(f)) != NULL) { + line++; char *t = skipspace(s + 1); switch (*s) { case 'E': if (!Event) { @@ -316,8 +318,10 @@ bool cEvent::Read(FILE *f, cSchedule *Schedule) break; case 'c': // to keep things simple we react on 'c' here return true; - default: if (Event && !Event->Parse(s)) + default: if (Event && !Event->Parse(s)) { + esyslog("ERROR: EPG data problem in line %d", line); return false; + } } } esyslog("ERROR: unexpected end of file while reading EPG data"); diff --git a/recording.c b/recording.c index 9e969224..6fb76d97 100644 --- a/recording.c +++ b/recording.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.c 1.120 2005/10/01 10:29:02 kls Exp $ + * $Id: recording.c 1.121 2005/10/09 13:09:51 kls Exp $ */ #include "recording.h" @@ -264,7 +264,9 @@ bool cRecordingInfo::Read(FILE *f) if (ownEvent) { cReadLine ReadLine; char *s; + int line = 0; while ((s = ReadLine.Read(f)) != NULL) { + ++line; char *t = skipspace(s + 1); switch (*s) { case 'C': { @@ -275,8 +277,10 @@ bool cRecordingInfo::Read(FILE *f) channelID = tChannelID::FromString(t); } break; - default: if (!ownEvent->Parse(s)) + default: if (!ownEvent->Parse(s)) { + esyslog("ERROR: EPG data problem in line %d", line); return false; + } break; } } @@ -478,7 +482,8 @@ cRecording::cRecording(const char *FileName) asprintf(&InfoFileName, "%s%s", fileName, INFOFILESUFFIX); FILE *f = fopen(InfoFileName, "r"); if (f) { - info->Read(f); + if (!info->Read(f)) + esyslog("ERROR: EPG data problem in file %s", InfoFileName); fclose(f); } else if (errno != ENOENT)