1.3.30 Bug: SVDRP timer installation

Message ID 4321A982.2080304@cadsoft.de
State New
Headers

Commit Message

Klaus Schmidinger Sept. 9, 2005, 3:25 p.m. UTC
  Patrick Rother wrote:
> Hello.
> 
> There seems to be a bug in timer handling.
> 
> Please see this SVDRP snapshot:
> 
> 220 vdr SVDRP VideoDiskRecorder 1.3.30; Tue Sep  6 10:50:38 2005
> newt 1:S19.2E-133-33-46:----F--:2213:2250:90:30:Sechserpack:
> 550 Timer already defined: 12 1:5:-D-----:2213:2250:40:10:Mensch_Markus:
> lstt 12
> 250 12 1:5:-D-----:2213:2250:40:10:Mensch_Markus:
> newt 1:S19.2E-133-33-46:----F--:2213:2250:90:30:Sechserpack:
> 550 Timer already defined: 12 1:5:-D-----:2213:2250:40:10:Mensch_Markus:
> 
> vdr 1.3.30 refuses to install a weekly timer with same start/stop
> time for a different day of week.
> 
> I get the new timer in by modifying start to by one minute, so this
> has no actual service impact, but this shall be fixed anyway.

Please try the attached patch.

Klaus
  

Patch

--- timers.c	2005/09/04 10:53:21	1.35
+++ timers.c	2005/09/09 15:22:33
@@ -519,7 +519,10 @@ 
 cTimer *cTimers::GetTimer(cTimer *Timer)
 {
   for (cTimer *ti = First(); ti; ti = Next(ti)) {
-      if (ti->Channel() == Timer->Channel() && ti->Day() == Timer->Day() && ti->Start() == Timer->Start() && ti->Stop() == Timer->Stop())
+      if (ti->Channel() == Timer->Channel() &&
+          (ti->WeekDays() && ti->WeekDays() == Timer->WeekDays() || !ti->WeekDays() && ti->Day() == Timer->Day()) &&
+          ti->Start() == Timer->Start() &&
+          ti->Stop() == Timer->Stop())
          return ti;
       }
   return NULL;