about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJohn Keeping2016-02-08 15:06:27 +0000
committerJason A. Donenfeld2016-02-08 18:29:11 +0100
commit75298209bf8386656b82f185e2901690ac5b671c (patch)
tree2b87a8890a1579b51dfc864ab247b05b4f1eced2
parentAvoid DATE_STRFTIME for long/short dates (diff)
downloadcgit-75298209bf8386656b82f185e2901690ac5b671c.tar.gz
cgit-75298209bf8386656b82f185e2901690ac5b671c.zip
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>
-rw-r--r--cgit.h5
-rw-r--r--ui-atom.c11
2 files changed, 4 insertions, 12 deletions
diff --git a/cgit.h b/cgit.h index 5adef4d..d10c799 100644 --- a/cgit.h +++ b/cgit.h
@@ -29,11 +29,6 @@
29#undef isgraph 29#undef isgraph
30#define isgraph(x) (isprint((x)) && !isspace((x))) 30#define isgraph(x) (isprint((x)) && !isspace((x)))
31 31
32/*
33 * Dateformats used on misc. pages
34 */
35#define FMT_ATOMDATE "%Y-%m-%dT%H:%M:%SZ"
36
37 32
38/* 33/*
39 * Limits used for relative dates 34 * Limits used for relative dates
diff --git a/ui-atom.c b/ui-atom.c index 0bf2cf2..41838d3 100644 --- a/ui-atom.c +++ b/ui-atom.c
@@ -17,11 +17,6 @@ static void add_entry(struct commit *commit, const char *host)
17 char *hex; 17 char *hex;
18 char *mail, *t, *t2; 18 char *mail, *t, *t2;
19 struct commitinfo *info; 19 struct commitinfo *info;
20 struct date_mode mode = {
21 .type = DATE_STRFTIME,
22 .strftime_fmt = FMT_ATOMDATE,
23 .local = 0,
24 };
25 20
26 info = cgit_parse_commit(commit); 21 info = cgit_parse_commit(commit);
27 hex = oid_to_hex(&commit->object.oid); 22 hex = oid_to_hex(&commit->object.oid);
@@ -30,7 +25,8 @@ static void add_entry(struct commit *commit, const char *host)
30 html_txt(info->subject); 25 html_txt(info->subject);
31 html("</title>\n"); 26 html("</title>\n");
32 html("<updated>"); 27 html("<updated>");
33 html_txt(show_date(info->committer_date, 0, &mode)); 28 html_txt(show_date(info->committer_date, 0,
29 date_mode_from_type(DATE_ISO8601_STRICT)));
34 html("</updated>\n"); 30 html("</updated>\n");
35 html("<author>\n"); 31 html("<author>\n");
36 if (info->author) { 32 if (info->author) {
@@ -55,7 +51,8 @@ static void add_entry(struct commit *commit, const char *host)
55 } 51 }
56 html("</author>\n"); 52 html("</author>\n");
57 html("<published>"); 53 html("<published>");
58 html_txt(show_date(info->author_date, 0, &mode)); 54 html_txt(show_date(info->author_date, 0,
55 date_mode_from_type(DATE_ISO8601_STRICT)));
59 html("</published>\n"); 56 html("</published>\n");
60 if (host) { 57 if (host) {
61 char *pageurl; 58 char *pageurl;