summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2021-08-29 16:13:26 (EDT)
committer P. J. McDermott <pj@pehjota.net>2021-08-29 16:13:26 (EDT)
commit611f78ea5e38b9d7ba9a0208fdcd387c7ce4f47e (patch)
treec8cf6336e9beec0401e2827e577faf473837b8b7 /src
parent2a9c361b7e9d32ca4ffb40b80a714885bc5b64a6 (diff)
downloadatsign-611f78ea5e38b9d7ba9a0208fdcd387c7ce4f47e.zip
atsign-611f78ea5e38b9d7ba9a0208fdcd387c7ce4f47e.tar.gz
atsign-611f78ea5e38b9d7ba9a0208fdcd387c7ce4f47e.tar.bz2
datetime: Init all relevant struct tm members
Diffstat (limited to 'src')
-rw-r--r--src/datetime.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/datetime.c b/src/datetime.c
index 4041358..c98f27a 100644
--- a/src/datetime.c
+++ b/src/datetime.c
@@ -40,10 +40,14 @@ datetime_parse(const char *input, time_t *arg_sec)
struct tm *now_tm;
for (i = 0; DATETIME_FMTS_[i] != NULL; ++i) {
- arg_tm.tm_year = INT_MIN; /* Sentinel */
- arg_tm.tm_mday = INT_MIN; /* Sentinel */
- arg_tm.tm_sec = 0; /* Default */
- arg_tm.tm_isdst = -1;
+ arg_tm.tm_year = INT_MIN;
+ arg_tm.tm_mon = INT_MIN;
+ arg_tm.tm_mday = INT_MIN;
+ arg_tm.tm_wday = INT_MIN;
+ arg_tm.tm_hour = INT_MIN;
+ arg_tm.tm_min = INT_MIN;
+ arg_tm.tm_sec = INT_MIN;
+ arg_tm.tm_isdst = INT_MIN;
end = strptime(input, DATETIME_FMTS_[i], &arg_tm);
if (end != NULL && *end == '\0') {
goto found;
@@ -54,6 +58,9 @@ datetime_parse(const char *input, time_t *arg_sec)
return -1;
found:
+ if (arg_tm.tm_sec == INT_MIN) {
+ arg_tm.tm_sec = 0;
+ }
/* TODO: Support %a-only dates */
if (arg_tm.tm_mday == INT_MIN) {
/* No date specified; try today. */