all repos — cgit @ 75298209bf8386656b82f185e2901690ac5b671c

a hyperfast web frontend for git written in c

ui-atom: avoid DATE_STRFTIME

Git's DATE_STRFTIME ignores the timezone argument and just uses the
local timezone regardless of whether the "local" flag is set.

Since Atom accepts ISO8601 dates [1], we can use Git's
DATE_ISO8601_STRICT instead, which does get this right.  Additionally,
we never use the local timezone here so we can use the
date_mode_from_type() wrapper to simplify the code a bit.

[1] https://tools.ietf.org/html/rfc4287#section-3.3

Signed-off-by: John Keeping <john@keeping.me.uk>
John Keeping john@keeping.me.uk
Mon, 08 Feb 2016 15:06:27 +0000
commit

75298209bf8386656b82f185e2901690ac5b671c

parent

9c15f3c6954e43c5ffd36230e666eccf112803f2

2 files changed, 4 insertions(+), 12 deletions(-)

jump to
M cgit.hcgit.h

@@ -29,11 +29,6 @@ /* Add isgraph(x) to Git's sane ctype support (see git-compat-util.h) */

#undef isgraph #define isgraph(x) (isprint((x)) && !isspace((x))) -/* - * Dateformats used on misc. pages - */ -#define FMT_ATOMDATE "%Y-%m-%dT%H:%M:%SZ" - /* * Limits used for relative dates
M ui-atom.cui-atom.c

@@ -17,11 +17,6 @@ char delim = '&';

char *hex; char *mail, *t, *t2; struct commitinfo *info; - struct date_mode mode = { - .type = DATE_STRFTIME, - .strftime_fmt = FMT_ATOMDATE, - .local = 0, - }; info = cgit_parse_commit(commit); hex = oid_to_hex(&commit->object.oid);

@@ -30,7 +25,8 @@ html("<title>");

html_txt(info->subject); html("</title>\n"); html("<updated>"); - html_txt(show_date(info->committer_date, 0, &mode)); + html_txt(show_date(info->committer_date, 0, + date_mode_from_type(DATE_ISO8601_STRICT))); html("</updated>\n"); html("<author>\n"); if (info->author) {

@@ -55,7 +51,8 @@ free(mail);

} html("</author>\n"); html("<published>"); - html_txt(show_date(info->author_date, 0, &mode)); + html_txt(show_date(info->author_date, 0, + date_mode_from_type(DATE_ISO8601_STRICT))); html("</published>\n"); if (host) { char *pageurl;