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.
|
DVBC_ANNEX_C and DVBC2.
|
||||||
- Added a Status parameter to the interface of cDevice::SignalStats() and
|
- Added a Status parameter to the interface of cDevice::SignalStats() and
|
||||||
cDvbDevice::SignalStats() (thanks to Rolf Ahrenberg).
|
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
|
* Original version (as used in VDR before 1.3.0) written by
|
||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* 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"
|
#include "epg.h"
|
||||||
@ -529,15 +529,14 @@ bool cEvent::Parse(char *s)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cEvent::Read(FILE *f, cSchedule *Schedule)
|
bool cEvent::Read(FILE *f, cSchedule *Schedule, int &Line)
|
||||||
{
|
{
|
||||||
if (Schedule) {
|
if (Schedule) {
|
||||||
cEvent *Event = NULL;
|
cEvent *Event = NULL;
|
||||||
char *s;
|
char *s;
|
||||||
int line = 0;
|
|
||||||
cReadLine ReadLine;
|
cReadLine ReadLine;
|
||||||
while ((s = ReadLine.Read(f)) != NULL) {
|
while ((s = ReadLine.Read(f)) != NULL) {
|
||||||
line++;
|
Line++;
|
||||||
char *t = skipspace(s + 1);
|
char *t = skipspace(s + 1);
|
||||||
switch (*s) {
|
switch (*s) {
|
||||||
case 'E': if (!Event) {
|
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
|
case 'c': // to keep things simple we react on 'c' here
|
||||||
return true;
|
return true;
|
||||||
default: if (Event && !Event->Parse(s)) {
|
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;
|
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)
|
bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
||||||
{
|
{
|
||||||
if (Schedules) {
|
if (Schedules) {
|
||||||
|
int Line = 0;
|
||||||
cReadLine ReadLine;
|
cReadLine ReadLine;
|
||||||
char *s;
|
char *s;
|
||||||
while ((s = ReadLine.Read(f)) != NULL) {
|
while ((s = ReadLine.Read(f)) != NULL) {
|
||||||
|
Line++;
|
||||||
if (*s == 'C') {
|
if (*s == 'C') {
|
||||||
s = skipspace(s + 1);
|
s = skipspace(s + 1);
|
||||||
char *p = strchr(s, ' ');
|
char *p = strchr(s, ' ');
|
||||||
@ -1153,7 +1154,7 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
|||||||
tChannelID channelID = tChannelID::FromString(s);
|
tChannelID channelID = tChannelID::FromString(s);
|
||||||
if (channelID.Valid()) {
|
if (channelID.Valid()) {
|
||||||
if (cSchedule *p = Schedules->AddSchedule(channelID)) {
|
if (cSchedule *p = Schedules->AddSchedule(channelID)) {
|
||||||
if (!cEvent::Read(f, p))
|
if (!cEvent::Read(f, p, Line))
|
||||||
return false;
|
return false;
|
||||||
p->Sort();
|
p->Sort();
|
||||||
}
|
}
|
||||||
@ -1165,7 +1166,7 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
epg.h
4
epg.h
@ -7,7 +7,7 @@
|
|||||||
* Original version (as used in VDR before 1.3.0) written by
|
* Original version (as used in VDR before 1.3.0) written by
|
||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* 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
|
#ifndef __EPG_H
|
||||||
@ -141,7 +141,7 @@ public:
|
|||||||
cString ToDescr(void) const;
|
cString ToDescr(void) const;
|
||||||
void Dump(FILE *f, const char *Prefix = "", bool InfoOnly = false) const;
|
void Dump(FILE *f, const char *Prefix = "", bool InfoOnly = false) const;
|
||||||
bool Parse(char *s);
|
bool Parse(char *s);
|
||||||
static bool Read(FILE *f, cSchedule *Schedule);
|
static bool Read(FILE *f, cSchedule *Schedule, int &Line);
|
||||||
void FixEpgBugs(void);
|
void FixEpgBugs(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user