Fixed writing group separators to channels.conf that contain a comma

This commit is contained in:
Klaus Schmidinger 2013-10-11 11:38:05 +02:00
parent e61e1ed425
commit 1caa78a3e7
3 changed files with 15 additions and 8 deletions

View File

@ -3185,3 +3185,6 @@ Thomas Maass <mase@setho.org>
Martin Prochnow <nordlicht@martins-kabuff.de>
for writing the "extrecmenu" plugin, which inspired the implementation of editing
recording properties
Eike Edener <eike@edener.de>
for reporting a bug in writing group separators to channels.conf that contain a comma

View File

@ -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).

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 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;