From 1caa78a3e7456a2be71526fb0db151f3e3519dc9 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 11 Oct 2013 11:38:05 +0200 Subject: [PATCH] Fixed writing group separators to channels.conf that contain a comma --- CONTRIBUTORS | 3 +++ HISTORY | 4 +++- channels.c | 16 +++++++++------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 775455d3..f9d390f5 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3185,3 +3185,6 @@ Thomas Maass Martin Prochnow for writing the "extrecmenu" plugin, which inspired the implementation of editing recording properties + +Eike Edener + for reporting a bug in writing group separators to channels.conf that contain a comma diff --git a/HISTORY b/HISTORY index fc72c40c..39a6bede 100644 --- a/HISTORY +++ b/HISTORY @@ -7920,7 +7920,7 @@ Video Disk Recorder Revision History - Fixed cleaning up old EPG events in case no epg data file is given (reported by Dave Pickles). -2013-10-10: Version 2.1.2 +2013-10-11: Version 2.1.2 - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed displaying DVB subtitles (thanks to Rolf Ahrenberg for helping to debug and @@ -7984,3 +7984,5 @@ Video Disk Recorder Revision History - Changed some variable names in positioner.c to match the names used in the page with the explanation on vdr-portal.de. - Updated the Italian OSD texts (thanks to Diego Pierotto). +- Fixed writing group separators to channels.conf that contain a comma (reported by + Eike Edener). diff --git a/channels.c b/channels.c index 05f8cdb1..7cb7e883 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 2.24 2012/07/14 12:15:00 kls Exp $ + * $Id: channels.c 3.1 2013/10/11 11:03:26 kls Exp $ */ #include "channels.h" @@ -503,12 +503,14 @@ cString cChannel::ToText(const cChannel *Channel) char FullName[strlen(Channel->name) + 1 + strlen(Channel->shortName) + 1 + strlen(Channel->provider) + 1 + 10]; // +10: paranoia char *q = FullName; q += sprintf(q, "%s", Channel->name); - if (!isempty(Channel->shortName)) - q += sprintf(q, ",%s", Channel->shortName); - else if (strchr(Channel->name, ',')) - q += sprintf(q, ","); - if (!isempty(Channel->provider)) - q += sprintf(q, ";%s", Channel->provider); + if (!Channel->groupSep) { + if (!isempty(Channel->shortName)) + q += sprintf(q, ",%s", Channel->shortName); + else if (strchr(Channel->name, ',')) + q += sprintf(q, ","); + if (!isempty(Channel->provider)) + q += sprintf(q, ";%s", Channel->provider); + } *q = 0; strreplace(FullName, ':', '|'); cString buffer;