Fixed handling ':' characters in channel names when reading channels.conf

This commit is contained in:
Klaus Schmidinger 2003-09-09 18:55:26 +02:00
parent 19efbe4503
commit a4c7d7b8a7
3 changed files with 8 additions and 4 deletions

View File

@ -768,6 +768,8 @@ Ernst F
Reinhard Nissl <rnissl@gmx.de>
for reporting a name clash because of function crc32() in libdtv/libsi/si_parser.c
when using other libraries that also implement a function by that name
for reporting a bug in handling ':' characters in channel names when reading
channels.conf
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -2381,3 +2381,5 @@ Video Disk Recorder Revision History
- Fixed dropping out of replay mode while viewing a recording that is still
going on (thanks to Oliver Endriss for reporting and helping to debug this
one).
- Fixed handling ':' characters in channel names when reading channels.conf
(thanks to Reinhard Nissl for reporting this one).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: channels.c 1.13 2003/08/16 09:12:26 kls Exp $
* $Id: channels.c 1.14 2003/09/09 18:55:26 kls Exp $
*/
#include "channels.h"
@ -315,6 +315,7 @@ const char *cChannel::ToText(void)
bool cChannel::Parse(const char *s, bool AllowNonUniqueID)
{
bool ok = true;
if (*s == ':') {
groupSep = true;
if (*++s == '@' && *++s) {
@ -346,7 +347,7 @@ bool cChannel::Parse(const char *s, bool AllowNonUniqueID)
vpid = ppid = 0;
apid1 = apid2 = 0;
dpid1 = dpid2 = 0;
bool ok = false;
ok = false;
if (parambuf && sourcebuf && vpidbuf && apidbuf) {
ok = StringToParameters(parambuf) && (source = cSource::FromString(sourcebuf)) >= 0;
char *p = strchr(vpidbuf, '+');
@ -372,13 +373,12 @@ bool cChannel::Parse(const char *s, bool AllowNonUniqueID)
esyslog("ERROR: channel data not unique!");
return false;
}
return ok;
}
else
return false;
}
strreplace(name, '|', ':');
return true;
return ok;
}
bool cChannel::Save(FILE *f)