stagit

improve Atom feed

Hiltjo Posthuma contact@arjunchoudhary.com

commit: efbf4fd parent: f74b95c
1 files changed, 19 insertions(+), 17 deletions(-)
Murmoms.c+19-17
M · urmoms.c +19, -17
 1@@ -152,7 +152,7 @@ printtime(FILE *fp, const git_time *intime)
 2 	intm = gmtime(&t);
 3 	strftime(out, sizeof(out), "%a %b %e %T %Y", intm);
 4 
 5-	fprintf(fp, "%s %c%02d%02d\n", out, sign, hours, minutes);
 6+	fprintf(fp, "%s %c%02d%02d", out, sign, hours, minutes);
 7 }
 8 
 9 void
10@@ -399,24 +399,24 @@ printcommitatom(FILE *fp, git_commit *commit)
11 	int i, count;
12 	const char *scan, *eol, *summary;
13 
14-	fputs("<entry>", fp);
15+	fputs("<entry>\n", fp);
16 
17 	/* TODO: show tag when commit has it */
18 	git_oid_tostr(buf, sizeof(buf), git_commit_id(commit));
19-	fprintf(fp, "<id>%s</id>", buf);
20+	fprintf(fp, "<id>%s</id>\n", buf);
21 
22 	sig = git_commit_author(commit);
23 
24 	if (sig) {
25 		fputs("<updated>", fp);
26 		printtimez(fp, &sig->when);
27-		fputs("</updated>", fp);
28+		fputs("</updated>\n", fp);
29 	}
30 
31 	if ((summary = git_commit_summary(commit))) {
32-		fputs("<title>", fp);
33+		fputs("<title type=\"text\">", fp);
34 		xmlencode(fp, summary, strlen(summary));
35-		fputs("</title>", fp);
36+		fputs("</title>\n", fp);
37 	}
38 
39 	fputs("<content type=\"text\">", fp);
40@@ -451,15 +451,15 @@ printcommitatom(FILE *fp, git_commit *commit)
41 		scan = *eol ? eol + 1 : NULL;
42 	}
43 	fputc('\n', fp);
44-	fputs("</content>", fp);
45+	fputs("</content>\n", fp);
46 	if (sig) {
47 		fputs("<author><name>", fp);
48 		xmlencode(fp, sig->name, strlen(sig->name));
49-		fputs("</name><email>", fp);
50+		fputs("</name>\n<email>", fp);
51 		xmlencode(fp, sig->email, strlen(sig->email));
52-		fputs("</email></author>", fp);
53+		fputs("</email>\n</author>\n", fp);
54 	}
55-	fputs("</entry>", fp);
56+	fputs("</entry>\n", fp);
57 }
58 
59 int
60@@ -470,12 +470,13 @@ writeatom(FILE *fp)
61 	git_commit *c = NULL;
62 	size_t i, m = 100; /* max */
63 
64-	fputs("<feed xmlns=\"http://www.w3.org/2005/Atom\"><title>", fp);
65+	fputs("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", fp);
66+	fputs("<feed xmlns=\"http://www.w3.org/2005/Atom\">\n<title>", fp);
67 	xmlencode(fp, name, strlen(name));
68-	fputs(", branch master</title><subtitle>", fp);
69+	fputs(", branch master</title>\n<subtitle>", fp);
70 
71 	xmlencode(fp, description, strlen(description));
72-	fputs("</subtitle>", fp);
73+	fputs("</subtitle>\n", fp);
74 
75 	git_revwalk_new(&w, repo);
76 	git_revwalk_push_head(w);
77@@ -603,16 +604,17 @@ main(int argc, char *argv[])
78 	writefooter(fp);
79 	fclose(fp);
80 
81-	fp = efopen("atom.xml", "w+b");
82-	writeatom(fp);
83-	fclose(fp);
84-
85 	fp = efopen("files.html", "w+b");
86 	writeheader(fp);
87 	writefiles(fp);
88 	writefooter(fp);
89 	fclose(fp);
90 
91+	/* Atom feed */
92+	fp = efopen("atom.xml", "w+b");
93+	writeatom(fp);
94+	fclose(fp);
95+
96 	/* cleanup */
97 	git_repository_free(repo);
98 	git_libgit2_shutdown();