From mboxrd@z Thu Jan 1 00:00:00 1970 From: zwinkau at kit.edu (zwinkau at kit.edu) Date: Tue, 1 Jul 2014 09:40:30 +0200 Subject: [PATCH 5/8] display updated, use urn/url for atom:id In-Reply-To: <1404200433-30081-1-git-send-email-zwinkau@kit.edu> References: <1404200433-30081-1-git-send-email-zwinkau@kit.edu> Message-ID: <1404200433-30081-5-git-send-email-zwinkau@kit.edu> From: Matthias Braun --- ui-atom.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/ui-atom.c b/ui-atom.c index fdc5cb3..aa6a188 100644 --- a/ui-atom.c +++ b/ui-atom.c @@ -12,15 +12,13 @@ #include "ui-shared.h" #include "ui-diff.h" -static void add_entry(struct commit *commit, const char *host, int enable_atom_diff) +static void add_entry(struct commit *commit, struct commitinfo *info, char *host, int enable_atom_diff) { char delim = '&'; char *hex; char *hex_parent; char *mail, *t, *t2; - struct commitinfo *info; - info = cgit_parse_commit(commit); hex = sha1_to_hex(commit->object.sha1); if (commit->parents) { hex_parent = sha1_to_hex(commit->parents->item->object.sha1); @@ -68,8 +66,15 @@ static void add_entry(struct commit *commit, const char *host, int enable_atom_d delim = '?'; htmlf("%cid=%s", delim, hex); html("'/>\n"); + + html(""); + html(cgit_httpscheme()); + html_attr(host); + html_attr(cgit_repourl(ctx.repo->url)); + htmlf("/commit/?id=%s\n", hex); + } else { + htmlf("urn:tag:%s\n", hex); } - htmlf("%s\n", hex); html("\n"); html_txt(info->msg); html("\n"); @@ -90,7 +95,6 @@ static void add_entry(struct commit *commit, const char *host, int enable_atom_d html("\n"); html("\n"); html("\n"); - cgit_free_commitinfo(info); } @@ -101,6 +105,7 @@ void cgit_print_atom(char *tip, char *path, int max_count, int enable_atom_diff) struct commit *commit; struct rev_info rev; int argc = 2; + int had_global_updated = 0; if (ctx.qry.show_all) argv[1] = "--all"; @@ -147,9 +152,25 @@ void cgit_print_atom(char *tip, char *path, int max_count, int enable_atom_diff) html_attr(host); html_attr(cgit_repourl(ctx.repo->url)); html("'/>\n"); + + html(""); + html(cgit_httpscheme()); + html_txt(host); + html_txt(cgit_repourl(ctx.repo->url)); + html("\n"); } + while ((commit = get_revision(&rev)) != NULL) { - add_entry(commit, host, enable_atom_diff); + struct commitinfo *info = cgit_parse_commit(commit); + if (!had_global_updated) { + html(""); + cgit_print_date(info->committer_date, FMT_ATOMDATE, 0); + html("\n"); + had_global_updated = 1; + } + add_entry(commit, info, host, enable_atom_diff); + + cgit_free_commitinfo(info); free(commit->buffer); commit->buffer = NULL; free_commit_list(commit->parents); -- 1.9.1