From 8c6deb20f2fc1c77c0fa2698e20f998ebda355a2 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 16 Apr 2006 12:55:28 +0200 Subject: [PATCH] No longer using characters 0x01 and 0x02 for mapping single quote and slash in recording names --- CONTRIBUTORS | 2 ++ HISTORY | 5 +++++ menu.c | 4 ++-- recording.c | 5 ++++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a0c78683..18216f0e 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1685,6 +1685,8 @@ Patrick Fischer for suggesting that the cTimer constructor should take an optional cChannel for suggesting that any cReceivers still attached to a cDevice when that device switches to a different transponder shall be automatically detached + for reporting that characters 0x01 and 0x02 in recording names were a problem + with XML Ralf Müller for a patch that was used to implement cUnbufferedFile diff --git a/HISTORY b/HISTORY index 05cabe44..dc937e5c 100644 --- a/HISTORY +++ b/HISTORY @@ -4606,3 +4606,8 @@ Video Disk Recorder Revision History - Changed the behaviour of the "Use small font" setup option to *always* use the small font if set to '3' - even if it would have been a fixed font (suggested by Ronny Kornexl). +- No longer using characters 0x01 and 0x02 for mapping single quote and slash in + recording names (thanks to Patrick Fischer for reporting that this was a problem + with XML). The single quote is not mapped at all, and the slash is interchanged + with the tilde. Existing recordings will be handled like before, so there is + no need to actually rename them. diff --git a/menu.c b/menu.c index 553d3a91..8c3fe2ec 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.433 2006/04/16 10:09:21 kls Exp $ + * $Id: menu.c 1.434 2006/04/16 12:20:46 kls Exp $ */ #include "menu.h" @@ -2036,7 +2036,7 @@ eOSState cMenuRecordings::Commands(eKeys Key) cRecording *recording = GetRecording(ri); if (recording) { char *parameter = NULL; - asprintf(¶meter, "'%s'", recording->FileName()); + asprintf(¶meter, "\"%s\"", *strescape(recording->FileName(), "\"$")); cMenuCommands *menu; eOSState state = AddSubMenu(menu = new cMenuCommands(tr("Recording commands"), &RecordingCommands, parameter)); free(parameter); diff --git a/recording.c b/recording.c index fa21df21..41ace603 100644 --- a/recording.c +++ b/recording.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.c 1.144 2006/04/09 13:49:51 kls Exp $ + * $Id: recording.c 1.145 2006/04/16 12:43:58 kls Exp $ */ #include "recording.h" @@ -389,7 +389,10 @@ bool cRecordingInfo::Write(FILE *f, const char *Prefix) const struct tCharExchange { char a; char b; }; tCharExchange CharExchange[] = { { '~', '/' }, + { '/', '~' }, { ' ', '_' }, + // backwards compatibility: + { '\'', '\'' }, { '\'', '\x01' }, { '/', '\x02' }, { 0, 0 }