improve Atom feed
1 files changed, 19 insertions(+), 17 deletions(-) | |||
---|---|---|---|
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();