From 557090b458bc5a61b56eaf4a0cc66376ac84bdd4 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Fri, 18 Mar 2022 19:55:32 -0400 Subject: datetime: Move & unify time() & localtime() calls --- diff --git a/src/datetime.c b/src/datetime.c index 079266b..59adcb9 100644 --- a/src/datetime.c +++ b/src/datetime.c @@ -123,13 +123,14 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec) struct tm *now_tm; int wday; + now_sec = time(NULL); + now_tm = localtime(&now_sec); + if (arg_tm->tm_sec == INT_MIN) { arg_tm->tm_sec = 0; } if (arg_tm->tm_mday == INT_MIN && arg_tm->tm_wday == INT_MIN) { /* No date specified; try today. */ - now_sec = time(NULL); - now_tm = localtime(&now_sec); arg_tm->tm_year = now_tm->tm_year; arg_tm->tm_mon = now_tm->tm_mon; arg_tm->tm_mday = now_tm->tm_mday; @@ -151,8 +152,6 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec) /* Only a weekday specified; try tomorrow or next week. Uses * same shortcut as above. */ wday = arg_tm->tm_wday; - now_sec = time(NULL); - now_tm = localtime(&now_sec); arg_tm->tm_year = now_tm->tm_year; arg_tm->tm_mon = now_tm->tm_mon; arg_tm->tm_mday = now_tm->tm_mday; @@ -164,8 +163,6 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec) *arg_sec += (60 * 60 * 24) * (wday - now_tm->tm_wday); } else if (arg_tm->tm_year == INT_MIN) { /* No year specified; try this year. */ - now_sec = time(NULL); - now_tm = localtime(&now_sec); arg_tm->tm_year = now_tm->tm_year; *arg_sec = mktime(arg_tm); if (*arg_sec <= mktime(now_tm)) { -- cgit v0.9.1