summaryrefslogtreecommitdiffstats
path: root/src/datetime.c
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2022-03-18 19:55:32 (EDT)
committer P. J. McDermott <pj@pehjota.net>2022-03-18 19:55:32 (EDT)
commit557090b458bc5a61b56eaf4a0cc66376ac84bdd4 (patch)
tree51557a69a192e25cf7e05b2b413f24fb58232a77 /src/datetime.c
parentd84cbfa242fb4ae3a80c54e8941d792a419b2be9 (diff)
downloadatsign-557090b458bc5a61b56eaf4a0cc66376ac84bdd4.zip
atsign-557090b458bc5a61b56eaf4a0cc66376ac84bdd4.tar.gz
atsign-557090b458bc5a61b56eaf4a0cc66376ac84bdd4.tar.bz2
datetime: Move & unify time() & localtime() calls
Diffstat (limited to 'src/datetime.c')
-rw-r--r--src/datetime.c9
1 files changed, 3 insertions, 6 deletions
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)) {