From a4c7d7b8a74cd8ab7296113e47d341fa1addbf69 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 9 Sep 2003 18:55:26 +0200 Subject: Fixed handling ':' characters in channel names when reading channels.conf --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ channels.c | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c4051b37..f99de8f7 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -768,6 +768,8 @@ Ernst F Reinhard Nissl 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 for reporting freezing replay if a timer starts while in Transfer Mode from the diff --git a/HISTORY b/HISTORY index 37473fda..22c6c524 100644 --- a/HISTORY +++ b/HISTORY @@ -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). diff --git a/channels.c b/channels.c index 58577296..6ff71888 100644 --- a/channels.c +++ b/channels.c @@ -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) -- cgit v1.2.3