From 7a469bb4f18514255f88c7f07c67787f75bdfa2c Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Wed, 23 Mar 2022 19:54:37 -0400 Subject: datetime: Change sanity checks Check if the year is earlier than 1900 instead of 1970. Step one of eliminating timegm(). --- (limited to 'src') diff --git a/src/datetime.c b/src/datetime.c index 5caa1b7..ccf4c29 100644 --- a/src/datetime.c +++ b/src/datetime.c @@ -175,7 +175,7 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) end = strptime(input, fmt_buf, &arg_tm); if (end != NULL && *end == '\0') { _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (datetime_diff_epoch(*arg_sec) >= 0) { + if (arg_tm.tm_year >= 0) { free(fmt_buf); return 0; } @@ -196,7 +196,7 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) end = strptime(input, fmt_buf, &arg_tm); if (end != NULL && *end == '\0') { _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (datetime_diff_epoch(*arg_sec) >= 0) { + if (arg_tm.tm_year >= 0) { free(fmt_buf); return 0; } @@ -218,7 +218,7 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) end = strptime(input, fmt_buf, &arg_tm); if (end != NULL && *end == '\0') { _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (datetime_diff_epoch(*arg_sec) >= 0) { + if (arg_tm.tm_year >= 0) { free(fmt_buf); return 0; } @@ -233,7 +233,7 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec) end = strptime(input, fmt_buf, &arg_tm); if (end != NULL && *end == '\0') { _datetime_normalize(now_tm, &arg_tm, arg_sec); - if (datetime_diff_epoch(*arg_sec) >= 0) { + if (arg_tm.tm_year >= 0) { free(fmt_buf); return 0; } -- cgit v0.9.1