diff options
author | P. J. McDermott <pj@pehjota.net> | 2022-03-18 20:31:27 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2022-03-18 20:31:27 (EDT) |
commit | eb8dbc0d4cddd1161e2b02d7973985a36e2efc95 (patch) | |
tree | 180f4105c7554a91ee2f99a4f7d3c7ce297affe3 /src/datetime.c | |
parent | 557090b458bc5a61b56eaf4a0cc66376ac84bdd4 (diff) | |
download | atsign-eb8dbc0d4cddd1161e2b02d7973985a36e2efc95.zip atsign-eb8dbc0d4cddd1161e2b02d7973985a36e2efc95.tar.gz atsign-eb8dbc0d4cddd1161e2b02d7973985a36e2efc95.tar.bz2 |
datetime: Get now (struct tm) from caller
Diffstat (limited to 'src/datetime.c')
-rw-r--r-- | src/datetime.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/datetime.c b/src/datetime.c index 59adcb9..27c27a2 100644 --- a/src/datetime.c +++ b/src/datetime.c @@ -117,14 +117,9 @@ _datetime_reset_tm(struct tm *tm) } static void -_datetime_normalize(struct tm *arg_tm, time_t *arg_sec) +_datetime_normalize(struct tm *now_tm, struct tm *arg_tm, time_t *arg_sec) { - time_t now_sec; - struct tm *now_tm; - int wday; - - now_sec = time(NULL); - now_tm = localtime(&now_sec); + int wday; if (arg_tm->tm_sec == INT_MIN) { arg_tm->tm_sec = 0; @@ -177,7 +172,7 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec) } int -datetime_parse(const char *input, time_t *arg_sec) +datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) { int date_fmt_len; int time_fmt_len; @@ -207,7 +202,7 @@ datetime_parse(const char *input, time_t *arg_sec) end = strptime(input, fmt_buf, &arg_tm); if (end != NULL && *end == '\0') { free(fmt_buf); - _datetime_normalize(&arg_tm, arg_sec); + _datetime_normalize(now_tm, &arg_tm, arg_sec); return 0; } } @@ -223,7 +218,7 @@ datetime_parse(const char *input, time_t *arg_sec) end = strptime(input, fmt_buf, &arg_tm); if (end != NULL && *end == '\0') { free(fmt_buf); - _datetime_normalize(&arg_tm, arg_sec); + _datetime_normalize(now_tm, &arg_tm, arg_sec); return 0; } } @@ -234,7 +229,7 @@ datetime_parse(const char *input, time_t *arg_sec) end = strptime(input, DATETIME_MISC_FMTS_[d], &arg_tm); if (end != NULL && *end == '\0') { free(fmt_buf); - _datetime_normalize(&arg_tm, arg_sec); + _datetime_normalize(now_tm, &arg_tm, arg_sec); return 0; } } |