mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling line numbers in error messages when reading EPG data
This commit is contained in:
parent
44287ca25e
commit
34f572f792
1
HISTORY
1
HISTORY
@ -9021,3 +9021,4 @@ Video Disk Recorder Revision History
|
||||
DVBC_ANNEX_C and DVBC2.
|
||||
- Added a Status parameter to the interface of cDevice::SignalStats() and
|
||||
cDvbDevice::SignalStats() (thanks to Rolf Ahrenberg).
|
||||
- Fixed handling line numbers in error messages when reading EPG data.
|
||||
|
15
epg.c
15
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 4.5 2017/05/03 08:58:19 kls Exp $
|
||||
* $Id: epg.c 4.6 2017/05/09 12:16:36 kls Exp $
|
||||
*/
|
||||
|
||||
#include "epg.h"
|
||||
@ -529,15 +529,14 @@ bool cEvent::Parse(char *s)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cEvent::Read(FILE *f, cSchedule *Schedule)
|
||||
bool cEvent::Read(FILE *f, cSchedule *Schedule, int &Line)
|
||||
{
|
||||
if (Schedule) {
|
||||
cEvent *Event = NULL;
|
||||
char *s;
|
||||
int line = 0;
|
||||
cReadLine ReadLine;
|
||||
while ((s = ReadLine.Read(f)) != NULL) {
|
||||
line++;
|
||||
Line++;
|
||||
char *t = skipspace(s + 1);
|
||||
switch (*s) {
|
||||
case 'E': if (!Event) {
|
||||
@ -573,7 +572,7 @@ bool cEvent::Read(FILE *f, cSchedule *Schedule)
|
||||
case 'c': // to keep things simple we react on 'c' here
|
||||
return true;
|
||||
default: if (Event && !Event->Parse(s)) {
|
||||
esyslog("ERROR: EPG data problem in line %d", line);
|
||||
esyslog("ERROR: EPG data problem in line %d", Line);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1141,9 +1140,11 @@ void cSchedule::Dump(FILE *f, const char *Prefix, eDumpMode DumpMode, time_t AtT
|
||||
bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
||||
{
|
||||
if (Schedules) {
|
||||
int Line = 0;
|
||||
cReadLine ReadLine;
|
||||
char *s;
|
||||
while ((s = ReadLine.Read(f)) != NULL) {
|
||||
Line++;
|
||||
if (*s == 'C') {
|
||||
s = skipspace(s + 1);
|
||||
char *p = strchr(s, ' ');
|
||||
@ -1153,7 +1154,7 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
||||
tChannelID channelID = tChannelID::FromString(s);
|
||||
if (channelID.Valid()) {
|
||||
if (cSchedule *p = Schedules->AddSchedule(channelID)) {
|
||||
if (!cEvent::Read(f, p))
|
||||
if (!cEvent::Read(f, p, Line))
|
||||
return false;
|
||||
p->Sort();
|
||||
}
|
||||
@ -1165,7 +1166,7 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
||||
}
|
||||
}
|
||||
else {
|
||||
esyslog("ERROR: unexpected tag while reading EPG data: %s", s);
|
||||
esyslog("ERROR: unexpected tag in line %d while reading EPG data: %s", Line, s);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
4
epg.h
4
epg.h
@ -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.h 4.5 2017/05/09 09:16:29 kls Exp $
|
||||
* $Id: epg.h 4.6 2017/05/09 12:15:14 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __EPG_H
|
||||
@ -141,7 +141,7 @@ public:
|
||||
cString ToDescr(void) const;
|
||||
void Dump(FILE *f, const char *Prefix = "", bool InfoOnly = false) const;
|
||||
bool Parse(char *s);
|
||||
static bool Read(FILE *f, cSchedule *Schedule);
|
||||
static bool Read(FILE *f, cSchedule *Schedule, int &Line);
|
||||
void FixEpgBugs(void);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user