summaryrefslogtreecommitdiff
path: root/timers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'timers.cpp')
-rw-r--r--timers.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/timers.cpp b/timers.cpp
index 5dd3f6c..9c741ad 100644
--- a/timers.cpp
+++ b/timers.cpp
@@ -136,10 +136,25 @@ namespace vdrlive {
cMutexLock lock( this );
ostringstream builder;
- builder << flags << ":" << channel << ":" << ( weekdays != "-------" ? weekdays : "" )
- << ( weekdays == "-------" || day.empty() ? "" : "@" ) << day << ":" << start << ":" << stop << ":"
- << priority << ":" << lifetime << ":" << title << ":" << aux;
- // dsyslog("%s", builder.str().c_str());
+ builder << flags << ":"
+ << channel << ":"
+ << ( weekdays != "-------" ? weekdays : "" )
+ << ( weekdays == "-------" || day.empty() ? "" : "@" ) << day << ":"
+ << start << ":"
+ << stop << ":"
+ << priority << ":"
+ << lifetime << ":"
+ << StringReplace(title, ":", "|" ) << ":"
+ << StringReplace(aux, ":", "|" );
+ // Use StringReplace here because if ':' are characters in the
+ // title or aux string it breaks parsing of timer definition
+ // in VDRs cTimer::Parse method. The '|' will be replaced
+ // back to ':' by the cTimer::Parse() method.
+
+ // Fix was submitted by rofafor: see
+ // http://www.vdr-portal.de/board/thread.php?threadid=100398
+
+ // dsyslog("%s", builder.str().c_str());
TimerPair timerData( timer, builder.str() );