diff options
author | P. J. McDermott <pj@pehjota.net> | 2022-03-29 19:02:59 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2022-03-29 19:02:59 (EDT) |
commit | 182d541fd660642544d66f122c61c7342ba89c21 (patch) | |
tree | b6dde3fb9aa6ae9be844bb2efa20d21431cbe60a /src/datetime.c | |
parent | 0ac472958c146d990e24a7ca0a621938def30b3c (diff) | |
download | atsign-182d541fd660642544d66f122c61c7342ba89c21.zip atsign-182d541fd660642544d66f122c61c7342ba89c21.tar.gz atsign-182d541fd660642544d66f122c61c7342ba89c21.tar.bz2 |
datetime: Get target (struct tm *) from caller
Diffstat (limited to 'src/datetime.c')
-rw-r--r-- | src/datetime.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/datetime.c b/src/datetime.c index 455e7dc..2c971a4 100644 --- a/src/datetime.c +++ b/src/datetime.c @@ -153,7 +153,8 @@ _datetime_normalize(struct tm *now_tm, struct tm *arg_tm, time_t *arg_sec) } int -datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) +datetime_parse(struct tm *now_tm, const char *input, + struct tm *arg_tm, time_t *arg_sec) { int date_fmt_len; int time_fmt_len; @@ -163,7 +164,6 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) size_t d; size_t t; char *end; - struct tm arg_tm; time_t sec; bool got; @@ -185,11 +185,11 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) got = false; for (t = 0; t < sizeof(FORMATS_TIME) / sizeof(FORMATS_TIME[0]); ++t) { _datetime_buf_cpy_p(fmt_buf, FORMATS_TIME[t]); - _datetime_reset_tm(&arg_tm); - end = strptime(input, fmt_buf, &arg_tm); + _datetime_reset_tm(arg_tm); + end = strptime(input, fmt_buf, arg_tm); if (end != NULL && *end == '\0') { - _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (arg_tm.tm_year >= 0) { + _datetime_normalize(now_tm, arg_tm, arg_sec); + if (arg_tm->tm_year >= 0) { free(fmt_buf); return 0; } @@ -206,11 +206,11 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) ++t) { _datetime_buf_cpy_p(fmt_buf + date_fmt_len, FORMATS_TIME[t]); - _datetime_reset_tm(&arg_tm); - end = strptime(input, fmt_buf, &arg_tm); + _datetime_reset_tm(arg_tm); + end = strptime(input, fmt_buf, arg_tm); if (end != NULL && *end == '\0') { - _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (arg_tm.tm_year >= 0) { + _datetime_normalize(now_tm, arg_tm, arg_sec); + if (arg_tm->tm_year >= 0) { free(fmt_buf); return 0; } @@ -228,11 +228,11 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) } _datetime_buf_cpy_p(fmt_buf + time_fmt_len, FORMATS_DATE[d]); - _datetime_reset_tm(&arg_tm); - end = strptime(input, fmt_buf, &arg_tm); + _datetime_reset_tm(arg_tm); + end = strptime(input, fmt_buf, arg_tm); if (end != NULL && *end == '\0') { - _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (arg_tm.tm_year >= 0) { + _datetime_normalize(now_tm, arg_tm, arg_sec); + if (arg_tm->tm_year >= 0) { free(fmt_buf); return 0; } @@ -243,11 +243,11 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) } for (d = 0; d < sizeof(FORMATS_MISC) / sizeof(FORMATS_MISC[0]); ++d) { _datetime_buf_cpy_p(fmt_buf, FORMATS_MISC[d]); - _datetime_reset_tm(&arg_tm); - end = strptime(input, fmt_buf, &arg_tm); + _datetime_reset_tm(arg_tm); + end = strptime(input, fmt_buf, arg_tm); if (end != NULL && *end == '\0') { - _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (arg_tm.tm_year >= 0) { + _datetime_normalize(now_tm, arg_tm, arg_sec); + if (arg_tm->tm_year >= 0) { free(fmt_buf); return 0; } |