summaryrefslogtreecommitdiffstats
path: root/src/datetime.c
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2022-03-20 21:34:24 (EDT)
committer P. J. McDermott <pj@pehjota.net>2022-03-20 21:34:24 (EDT)
commita853f03d28a8b0c8e3907b5b127dfe41f93d1c1f (patch)
tree112d07a39da62b90b2dfb43931cdf51674541fe2 /src/datetime.c
parentf6c172671c22c50e2f4425949c70230e3c19c7a7 (diff)
downloadatsign-a853f03d28a8b0c8e3907b5b127dfe41f93d1c1f.zip
atsign-a853f03d28a8b0c8e3907b5b127dfe41f93d1c1f.tar.gz
atsign-a853f03d28a8b0c8e3907b5b127dfe41f93d1c1f.tar.bz2
datetime: Print full weekday and month names
Diffstat (limited to 'src/datetime.c')
-rw-r--r--src/datetime.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/datetime.c b/src/datetime.c
index b9ab8e5..4c5dd49 100644
--- a/src/datetime.c
+++ b/src/datetime.c
@@ -78,6 +78,92 @@ static const char *DATETIME_DATE_FMTS_[] = {
" %a, %b-%d ", /* Wed, Dec-31 */
" %a, %b/%d/%Y ", /* Wed, Dec/31/1969 */
" %a, %b/%d ", /* Wed, Dec/31 */
+ "", /* End of parsing formats */
+ " %A ", /* Wednesday */
+ " %A %e %b %Y ", /* Wednesday 31 Dec 1969 */
+ " %A %e %b ", /* Wednesday 31 Dec */
+ " %A %d-%b-%Y ", /* Wednesday 31-Dec-1969 */
+ " %A %d-%b ", /* Wednesday 31-Dec */
+ " %A %d/%b/%Y ", /* Wednesday 31/Dec/1969 */
+ " %A %d/%b ", /* Wednesday 31/Dec */
+ " %A, %e %b %Y ", /* Wednesday, 31 Dec 1969 */
+ " %A, %e %b ", /* Wednesday, 31 Dec */
+ " %A, %d-%b-%Y ", /* Wednesday, 31-Dec-1969 */
+ " %A, %d-%b ", /* Wednesday, 31-Dec */
+ " %A, %d/%b/%Y ", /* Wednesday, 31/Dec/1969 */
+ " %A, %d/%b ", /* Wednesday, 31/Dec */
+ " %A %b %e, %Y ", /* Wednesday Dec 31, 1969 */
+ " %A %b %e ", /* Wednesday Dec 31 */
+ " %A %b-%d-%Y ", /* Wednesday Dec-31-1969 */
+ " %A %b-%d ", /* Wednesday Dec-31 */
+ " %A %b/%d/%Y ", /* Wednesday Dec/31/1969 */
+ " %A %b/%d ", /* Wednesday Dec/31 */
+ " %A, %b %e, %Y ", /* Wednesday, Dec 31, 1969 */
+ " %A, %b %e ", /* Wednesday, Dec 31 */
+ " %A, %b-%d-%Y ", /* Wednesday, Dec-31-1969 */
+ " %A, %b-%d ", /* Wednesday, Dec-31 */
+ " %A, %b/%d/%Y ", /* Wednesday, Dec/31/1969 */
+ " %A, %b/%d ", /* Wednesday, Dec/31 */
+ " %e %B %Y ", /* 31 December 1969 */
+ " %e %B ", /* 31 December */
+ " %d-%B-%Y ", /* 31-December-1969 */
+ " %d-%B ", /* 31-December */
+ " %d/%B/%Y ", /* 31/December/1969 */
+ " %d/%B ", /* 31/December */
+ " %a %e %B %Y ", /* Wed 31 December 1969 */
+ " %a %e %B ", /* Wed 31 December */
+ " %a %d-%B-%Y ", /* Wed 31-December-1969 */
+ " %a %d-%B ", /* Wed 31-December */
+ " %a %d/%B/%Y ", /* Wed 31/December/1969 */
+ " %a %d/%B ", /* Wed 31/December */
+ " %a, %e %B %Y ", /* Wed, 31 December 1969 */
+ " %a, %e %B ", /* Wed, 31 December */
+ " %a, %d-%B-%Y ", /* Wed, 31-December-1969 */
+ " %a, %d-%B ", /* Wed, 31-December */
+ " %a, %d/%B/%Y ", /* Wed, 31/December/1969 */
+ " %a, %d/%B ", /* Wed, 31/December */
+ " %B %e, %Y ", /* December 31, 1969 */
+ " %B %e ", /* December 31 */
+ " %B-%d-%Y ", /* December-31-1969 */
+ " %B-%d ", /* December-31 */
+ " %B/%d/%Y ", /* December/31/1969 */
+ " %B/%d ", /* December/31 */
+ " %a %B %e, %Y ", /* Wed December 31, 1969 */
+ " %a %B %e ", /* Wed December 31 */
+ " %a %B-%d-%Y ", /* Wed December-31-1969 */
+ " %a %B-%d ", /* Wed December-31 */
+ " %a %B/%d/%Y ", /* Wed December/31/1969 */
+ " %a %B/%d ", /* Wed December/31 */
+ " %a, %B %e, %Y ", /* Wed, December 31, 1969 */
+ " %a, %B %e ", /* Wed, December 31 */
+ " %a, %B-%d-%Y ", /* Wed, December-31-1969 */
+ " %a, %B-%d ", /* Wed, December-31 */
+ " %a, %B/%d/%Y ", /* Wed, December/31/1969 */
+ " %a, %B/%d ", /* Wed, December/31 */
+ " %A %e %B %Y ", /* Wednesday 31 December 1969 */
+ " %A %e %B ", /* Wednesday 31 December */
+ " %A %d-%B-%Y ", /* Wednesday 31-December-1969 */
+ " %A %d-%B ", /* Wednesday 31-December */
+ " %A %d/%B/%Y ", /* Wednesday 31/December/1969 */
+ " %A %d/%B ", /* Wednesday 31/December */
+ " %A, %e %B %Y ", /* Wednesday, 31 December 1969 */
+ " %A, %e %B ", /* Wednesday, 31 December */
+ " %A, %d-%B-%Y ", /* Wednesday, 31-December-1969 */
+ " %A, %d-%B ", /* Wednesday, 31-December */
+ " %A, %d/%B/%Y ", /* Wednesday, 31/December/1969 */
+ " %A, %d/%B ", /* Wednesday, 31/December */
+ " %A %B %e, %Y ", /* Wednesday December 31, 1969 */
+ " %A %B %e ", /* Wednesday December 31 */
+ " %A %B-%d-%Y ", /* Wednesday December-31-1969 */
+ " %A %B-%d ", /* Wednesday December-31 */
+ " %A %B/%d/%Y ", /* Wednesday December/31/1969 */
+ " %A %B/%d ", /* Wednesday December/31 */
+ " %A, %B %e, %Y ", /* Wednesday, December 31, 1969 */
+ " %A, %B %e ", /* Wednesday, December 31 */
+ " %A, %B-%d-%Y ", /* Wednesday, December-31-1969 */
+ " %A, %B-%d ", /* Wednesday, December-31 */
+ " %A, %B/%d/%Y ", /* Wednesday, December/31/1969 */
+ " %A, %B/%d ", /* Wednesday, December/31 */
};
static const char *DATETIME_TIME_FMTS_[] = {
" %I:%M:%S %p ", /* 7:00:01 PM */
@@ -229,6 +315,9 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec)
}
for (d = 0; d < sizeof(DATETIME_DATE_FMTS_) /
sizeof(DATETIME_DATE_FMTS_[0]); ++d) {
+ if (DATETIME_DATE_FMTS_[d][0] == '\0') {
+ break;
+ }
memcpy(fmt_buf, DATETIME_DATE_FMTS_[d], date_fmt_len);
for (t = 0; t < sizeof(DATETIME_TIME_FMTS_) /
sizeof(DATETIME_TIME_FMTS_[0]); ++t) {
@@ -252,6 +341,9 @@ datetime_parse(struct tm *now_tm, const char *input, time_t *arg_sec)
memcpy(fmt_buf, DATETIME_TIME_FMTS_[t], time_fmt_len);
for (d = 0; d < sizeof(DATETIME_DATE_FMTS_) /
sizeof(DATETIME_DATE_FMTS_[0]); ++d) {
+ if (DATETIME_DATE_FMTS_[d][0] == '\0') {
+ break;
+ }
memcpy(fmt_buf + time_fmt_len, DATETIME_DATE_FMTS_[d],
date_fmt_len);
_datetime_reset_tm(&arg_tm);
@@ -344,6 +436,10 @@ _datetime_strftime(const char *fmts[], const struct tm *tm, char **out,
}
}
+ if (fmts[*i][0] == '\0') {
+ ++*i;
+ }
+
resized = 0;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"