summaryrefslogtreecommitdiffstats
path: root/src/datetime.c
diff options
context:
space:
mode:
authorP. 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)
commit182d541fd660642544d66f122c61c7342ba89c21 (patch)
treeb6dde3fb9aa6ae9be844bb2efa20d21431cbe60a /src/datetime.c
parent0ac472958c146d990e24a7ca0a621938def30b3c (diff)
downloadatsign-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.c36
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;
}