Fixed handling one-shot timers that were already recording and had their start time changed into the future

This commit is contained in:
Klaus Schmidinger 2002-08-25 10:59:49 +02:00
parent 2d487365a1
commit 9239d3e6df
3 changed files with 7 additions and 4 deletions

View File

@ -55,6 +55,8 @@ Matthias Schniedermeyer <ms@citd.de>
for his "master-timer" tool
for helping to debug the "move to last position in list" bug
for suggesting the SVDRP command CLRE
for reporting a bug in handling one-shot timers that were already recording
and had their start time changed into the future
Miha Setina <mihasetina@softhome.net>
for translating OSD texts to the Slovenian language

View File

@ -1427,3 +1427,6 @@ Video Disk Recorder Revision History
a cPalette (see osdbase.h).
- The new SVDRP command CLRE can be used to clear the entire EPG data (suggested
by Matthias Schniedermeyer).
- Fixed handling one-shot timers that were already recording and had their start
time changed into the future (thanks to Matthias Schniedermeyer for reporting
this one).

6
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.205 2002/08/15 11:28:08 kls Exp $
* $Id: menu.c 1.206 2002/08/25 10:56:09 kls Exp $
*/
#include "menu.h"
@ -2490,9 +2490,7 @@ void cRecordControl::Stop(bool KeepInstant)
cStatus::MsgRecording(device, NULL);
DELETENULL(recorder);
timer->SetRecording(false);
if ((IsInstant() && !KeepInstant) || (timer->IsSingleEvent() && !timer->Matches())) {
// checking timer->Matches() to make sure we don't delete the timer
// if the program was cancelled before the timer's stop time!
if ((IsInstant() && !KeepInstant) || (timer->IsSingleEvent() && timer->StopTime() <= time(NULL))) {
isyslog("deleting timer %d", timer->Index() + 1);
Timers.Del(timer);
Timers.Save();