author | Chris Mayo <aklhfex@gmail.com> | 2010-09-25 12:05:52 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2010-11-07 15:33:41 (UTC) |
commit | eca95229acdc3c7c27fdcc1319f5c96da9e3b538 (patch) (unidiff) | |
tree | bff7778ec43957451b8320c9b252e3147706cbc8 /ui-atom.c | |
parent | 69f705cf5727cc1f099f6cd6af759f66bfd9a343 (diff) | |
download | cgit-eca95229acdc3c7c27fdcc1319f5c96da9e3b538.zip cgit-eca95229acdc3c7c27fdcc1319f5c96da9e3b538.tar.gz cgit-eca95229acdc3c7c27fdcc1319f5c96da9e3b538.tar.bz2 |
Use committer date for atom feed entry updated element
Committer date reflects the most recent change and is used for ordering
the log page (author date is still available in published element of the
feed entry).
Signed-off-by: Chris Mayo <aklhfex@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-atom.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1,133 +1,133 @@ | |||
1 | /* ui-atom.c: functions for atom feeds | 1 | /* ui-atom.c: functions for atom feeds |
2 | * | 2 | * |
3 | * Copyright (C) 2008 Lars Hjemli | 3 | * Copyright (C) 2008 Lars Hjemli |
4 | * | 4 | * |
5 | * Licensed under GNU General Public License v2 | 5 | * Licensed under GNU General Public License v2 |
6 | * (see COPYING for full license text) | 6 | * (see COPYING for full license text) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include "cgit.h" | 9 | #include "cgit.h" |
10 | #include "html.h" | 10 | #include "html.h" |
11 | #include "ui-shared.h" | 11 | #include "ui-shared.h" |
12 | 12 | ||
13 | void add_entry(struct commit *commit, char *host) | 13 | void add_entry(struct commit *commit, char *host) |
14 | { | 14 | { |
15 | char delim = '&'; | 15 | char delim = '&'; |
16 | char *hex; | 16 | char *hex; |
17 | char *mail, *t, *t2; | 17 | char *mail, *t, *t2; |
18 | struct commitinfo *info; | 18 | struct commitinfo *info; |
19 | 19 | ||
20 | info = cgit_parse_commit(commit); | 20 | info = cgit_parse_commit(commit); |
21 | hex = sha1_to_hex(commit->object.sha1); | 21 | hex = sha1_to_hex(commit->object.sha1); |
22 | html("<entry>\n"); | 22 | html("<entry>\n"); |
23 | html("<title>"); | 23 | html("<title>"); |
24 | html_txt(info->subject); | 24 | html_txt(info->subject); |
25 | html("</title>\n"); | 25 | html("</title>\n"); |
26 | html("<updated>"); | 26 | html("<updated>"); |
27 | cgit_print_date(info->author_date, FMT_ATOMDATE, 0); | 27 | cgit_print_date(info->committer_date, FMT_ATOMDATE, 0); |
28 | html("</updated>\n"); | 28 | html("</updated>\n"); |
29 | html("<author>\n"); | 29 | html("<author>\n"); |
30 | if (info->author) { | 30 | if (info->author) { |
31 | html("<name>"); | 31 | html("<name>"); |
32 | html_txt(info->author); | 32 | html_txt(info->author); |
33 | html("</name>\n"); | 33 | html("</name>\n"); |
34 | } | 34 | } |
35 | if (info->author_email && !ctx.cfg.noplainemail) { | 35 | if (info->author_email && !ctx.cfg.noplainemail) { |
36 | mail = xstrdup(info->author_email); | 36 | mail = xstrdup(info->author_email); |
37 | t = strchr(mail, '<'); | 37 | t = strchr(mail, '<'); |
38 | if (t) | 38 | if (t) |
39 | t++; | 39 | t++; |
40 | else | 40 | else |
41 | t = mail; | 41 | t = mail; |
42 | t2 = strchr(t, '>'); | 42 | t2 = strchr(t, '>'); |
43 | if (t2) | 43 | if (t2) |
44 | *t2 = '\0'; | 44 | *t2 = '\0'; |
45 | html("<email>"); | 45 | html("<email>"); |
46 | html_txt(t); | 46 | html_txt(t); |
47 | html("</email>\n"); | 47 | html("</email>\n"); |
48 | free(mail); | 48 | free(mail); |
49 | } | 49 | } |
50 | html("</author>\n"); | 50 | html("</author>\n"); |
51 | html("<published>"); | 51 | html("<published>"); |
52 | cgit_print_date(info->author_date, FMT_ATOMDATE, 0); | 52 | cgit_print_date(info->author_date, FMT_ATOMDATE, 0); |
53 | html("</published>\n"); | 53 | html("</published>\n"); |
54 | if (host) { | 54 | if (host) { |
55 | html("<link rel='alternate' type='text/html' href='"); | 55 | html("<link rel='alternate' type='text/html' href='"); |
56 | html(cgit_httpscheme()); | 56 | html(cgit_httpscheme()); |
57 | html_attr(host); | 57 | html_attr(host); |
58 | html_attr(cgit_pageurl(ctx.repo->url, "commit", NULL)); | 58 | html_attr(cgit_pageurl(ctx.repo->url, "commit", NULL)); |
59 | if (ctx.cfg.virtual_root) | 59 | if (ctx.cfg.virtual_root) |
60 | delim = '?'; | 60 | delim = '?'; |
61 | htmlf("%cid=%s", delim, hex); | 61 | htmlf("%cid=%s", delim, hex); |
62 | html("'/>\n"); | 62 | html("'/>\n"); |
63 | } | 63 | } |
64 | htmlf("<id>%s</id>\n", hex); | 64 | htmlf("<id>%s</id>\n", hex); |
65 | html("<content type='text'>\n"); | 65 | html("<content type='text'>\n"); |
66 | html_txt(info->msg); | 66 | html_txt(info->msg); |
67 | html("</content>\n"); | 67 | html("</content>\n"); |
68 | html("<content type='xhtml'>\n"); | 68 | html("<content type='xhtml'>\n"); |
69 | html("<div xmlns='http://www.w3.org/1999/xhtml'>\n"); | 69 | html("<div xmlns='http://www.w3.org/1999/xhtml'>\n"); |
70 | html("<pre>\n"); | 70 | html("<pre>\n"); |
71 | html_txt(info->msg); | 71 | html_txt(info->msg); |
72 | html("</pre>\n"); | 72 | html("</pre>\n"); |
73 | html("</div>\n"); | 73 | html("</div>\n"); |
74 | html("</content>\n"); | 74 | html("</content>\n"); |
75 | html("</entry>\n"); | 75 | html("</entry>\n"); |
76 | cgit_free_commitinfo(info); | 76 | cgit_free_commitinfo(info); |
77 | } | 77 | } |
78 | 78 | ||
79 | 79 | ||
80 | void cgit_print_atom(char *tip, char *path, int max_count) | 80 | void cgit_print_atom(char *tip, char *path, int max_count) |
81 | { | 81 | { |
82 | char *host; | 82 | char *host; |
83 | const char *argv[] = {NULL, tip, NULL, NULL, NULL}; | 83 | const char *argv[] = {NULL, tip, NULL, NULL, NULL}; |
84 | struct commit *commit; | 84 | struct commit *commit; |
85 | struct rev_info rev; | 85 | struct rev_info rev; |
86 | int argc = 2; | 86 | int argc = 2; |
87 | 87 | ||
88 | if (ctx.qry.show_all) | 88 | if (ctx.qry.show_all) |
89 | argv[1] = "--all"; | 89 | argv[1] = "--all"; |
90 | else if (!tip) | 90 | else if (!tip) |
91 | argv[1] = ctx.qry.head; | 91 | argv[1] = ctx.qry.head; |
92 | 92 | ||
93 | if (path) { | 93 | if (path) { |
94 | argv[argc++] = "--"; | 94 | argv[argc++] = "--"; |
95 | argv[argc++] = path; | 95 | argv[argc++] = path; |
96 | } | 96 | } |
97 | 97 | ||
98 | init_revisions(&rev, NULL); | 98 | init_revisions(&rev, NULL); |
99 | rev.abbrev = DEFAULT_ABBREV; | 99 | rev.abbrev = DEFAULT_ABBREV; |
100 | rev.commit_format = CMIT_FMT_DEFAULT; | 100 | rev.commit_format = CMIT_FMT_DEFAULT; |
101 | rev.verbose_header = 1; | 101 | rev.verbose_header = 1; |
102 | rev.show_root_diff = 0; | 102 | rev.show_root_diff = 0; |
103 | rev.max_count = max_count; | 103 | rev.max_count = max_count; |
104 | setup_revisions(argc, argv, &rev, NULL); | 104 | setup_revisions(argc, argv, &rev, NULL); |
105 | prepare_revision_walk(&rev); | 105 | prepare_revision_walk(&rev); |
106 | 106 | ||
107 | host = cgit_hosturl(); | 107 | host = cgit_hosturl(); |
108 | ctx.page.mimetype = "text/xml"; | 108 | ctx.page.mimetype = "text/xml"; |
109 | ctx.page.charset = "utf-8"; | 109 | ctx.page.charset = "utf-8"; |
110 | cgit_print_http_headers(&ctx); | 110 | cgit_print_http_headers(&ctx); |
111 | html("<feed xmlns='http://www.w3.org/2005/Atom'>\n"); | 111 | html("<feed xmlns='http://www.w3.org/2005/Atom'>\n"); |
112 | html("<title>"); | 112 | html("<title>"); |
113 | html_txt(ctx.repo->name); | 113 | html_txt(ctx.repo->name); |
114 | html("</title>\n"); | 114 | html("</title>\n"); |
115 | html("<subtitle>"); | 115 | html("<subtitle>"); |
116 | html_txt(ctx.repo->desc); | 116 | html_txt(ctx.repo->desc); |
117 | html("</subtitle>\n"); | 117 | html("</subtitle>\n"); |
118 | if (host) { | 118 | if (host) { |
119 | html("<link rel='alternate' type='text/html' href='"); | 119 | html("<link rel='alternate' type='text/html' href='"); |
120 | html(cgit_httpscheme()); | 120 | html(cgit_httpscheme()); |
121 | html_attr(host); | 121 | html_attr(host); |
122 | html_attr(cgit_repourl(ctx.repo->url)); | 122 | html_attr(cgit_repourl(ctx.repo->url)); |
123 | html("'/>\n"); | 123 | html("'/>\n"); |
124 | } | 124 | } |
125 | while ((commit = get_revision(&rev)) != NULL) { | 125 | while ((commit = get_revision(&rev)) != NULL) { |
126 | add_entry(commit, host); | 126 | add_entry(commit, host); |
127 | free(commit->buffer); | 127 | free(commit->buffer); |
128 | commit->buffer = NULL; | 128 | commit->buffer = NULL; |
129 | free_commit_list(commit->parents); | 129 | free_commit_list(commit->parents); |
130 | commit->parents = NULL; | 130 | commit->parents = NULL; |
131 | } | 131 | } |
132 | html("</feed>\n"); | 132 | html("</feed>\n"); |
133 | } | 133 | } |