Fixed the stop time of repeating timers in case of DST change

This commit is contained in:
Klaus Schmidinger
2025-07-08 14:23:44 +02:00
parent 6b70066fea
commit da92c80484
3 changed files with 6 additions and 4 deletions

View File

@@ -2603,6 +2603,7 @@ Markus Ehrnsperger <markus.ehrnsperger@googlemail.com>
objects
for reporting that cTimer::StartTime() may return different values, depending on the
parameters of a previous call to cTimer::Matches()
for fixing the stop time of repeating timers in case of DST change
Werner Färber <w.faerber@gmx.de>
for reporting a bug in handling the cPluginManager::Active() result when pressing

View File

@@ -10138,7 +10138,7 @@ Video Disk Recorder Revision History
- Fixed an invalid lock sequence when pressing the Channel+/Channel- keys while in the
"What's on..." menu in live view.
2025-07-06:
2025-07-08:
- Fixed cPoller::Poll() to allow negative timeout values again.
- When regenerating the index of a recording, PID changes are now taken into account
@@ -10164,3 +10164,4 @@ Video Disk Recorder Revision History
removed in a future version, the macro DEPRECATED_TIMER_MATCHES can be set to 0 in
timers.h.
APIVERSNUM is now 30009.
- Fixed the stop time of repeating timers in case of DST change (thanks to Markus Ehrnsperger).

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: timers.c 5.26 2025/07/06 15:06:55 kls Exp $
* $Id: timers.c 5.27 2025/07/08 14:23:44 kls Exp $
*/
#include "timers.h"
@@ -593,9 +593,9 @@ void cTimer::CalcStartStopTime(time_t &startTime, time_t &stopTime, time_t t) co
time_t t0 = IncDay(d, i);
if (DayMatches(t0)) {
time_t a = SetTime(t0, begin);
time_t b = a + length;
if (length < 0)
t0 = IncDay(d, i + 1);
time_t b = SetTime(t0, end);
b += SECSINDAY;
if ((!day || a >= day) && t < b) {
startTime = a;
stopTime = b;