List for cgit developers and users
 help / color / mirror / Atom feed
From: zwinkau at kit.edu (zwinkau at kit.edu)
Subject: [PATCH 5/8] display updated, use urn/url for atom:id
Date: Tue,  1 Jul 2014 09:40:30 +0200	[thread overview]
Message-ID: <1404200433-30081-5-git-send-email-zwinkau@kit.edu> (raw)
In-Reply-To: <1404200433-30081-1-git-send-email-zwinkau@kit.edu>

From: Matthias Braun <matze at braunis.de>

---
 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("<id>");
+		html(cgit_httpscheme());
+		html_attr(host);
+		html_attr(cgit_repourl(ctx.repo->url));
+		htmlf("/commit/?id=%s</id>\n", hex);
+	} else {
+		htmlf("<id>urn:tag:%s</id>\n", hex);
 	}
-	htmlf("<id>%s</id>\n", hex);
 	html("<content type='text'>\n");
 	html_txt(info->msg);
 	html("</content>\n");
@@ -90,7 +95,6 @@ static void add_entry(struct commit *commit, const char *host, int enable_atom_d
 	html("</div>\n");
 	html("</content>\n");
 	html("</entry>\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("<id>");
+		html(cgit_httpscheme());
+		html_txt(host);
+		html_txt(cgit_repourl(ctx.repo->url));
+		html("</id>\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("<updated>");
+			cgit_print_date(info->committer_date, FMT_ATOMDATE, 0);
+			html("</updated>\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



  parent reply	other threads:[~2014-07-01  7:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-01  7:40 [PATCH 1/8] Can add diffs to Atom feed entries zwinkau
2014-07-01  7:40 ` [PATCH 2/8] Improved readability zwinkau
2014-07-01  7:40 ` [PATCH 3/8] Skip forbidden characters zwinkau
2014-07-01 20:29   ` john
2014-07-02 11:57     ` qznc
2014-07-01  7:40 ` [PATCH 4/8] add xml-header to atom-feed zwinkau
2014-07-01  7:40 ` zwinkau [this message]
2014-07-01  7:40 ` [PATCH 6/8] only one content tag allowed, so remove the text one zwinkau
2014-07-01  7:40 ` [PATCH 7/8] add <link rel='self'> to atom feed zwinkau
2014-07-01  7:40 ` [PATCH 8/8] fix html error in diff output for binary files zwinkau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1404200433-30081-5-git-send-email-zwinkau@kit.edu \
    --to=cgit@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).