diff options
-rw-r--r-- | sys-utils/rtcwake.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys-utils/rtcwake.c b/sys-utils/rtcwake.c index 5fbd6da77..d9c9fbbf4 100644 --- a/sys-utils/rtcwake.c +++ b/sys-utils/rtcwake.c @@ -187,7 +187,17 @@ static int setup_alarm(int fd, time_t *wakeup) struct tm *tm; struct rtc_wkalrm wake; - tm = gmtime(wakeup); + /* The wakeup time is in POSIX time (more or less UTC). + * Ideally RTCs use that same time; but PCs can't do that + * if they need to boot MS-Windows. Messy... + * + * When clock_mode == CM_UTC this process's timezone is UTC, + * so we'll pass a UTC date to the RTC. + * + * Else clock_mode == CM_LOCAL so the time given to the RTC + * will instead use the local time zone. + */ + tm = localtime(wakeup); wake.time.tm_sec = tm->tm_sec; wake.time.tm_min = tm->tm_min; |