From 611f78ea5e38b9d7ba9a0208fdcd387c7ce4f47e Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 29 Aug 2021 16:13:26 -0400 Subject: datetime: Init all relevant struct tm members --- (limited to 'src') 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. */ -- cgit v0.9.1