summaryrefslogtreecommitdiffabout
path: root/ui-summary.c
Unidiff
Diffstat (limited to 'ui-summary.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-summary.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ui-summary.c b/ui-summary.c
index 3baac08..0afa0a3 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -1,105 +1,106 @@
1/* ui-summary.c: functions for generating repo summary page 1/* ui-summary.c: functions for generating repo summary page
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 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 11
11static int header; 12static int header;
12 13
13static int cmp_age(int age1, int age2) 14static int cmp_age(int age1, int age2)
14{ 15{
15 if (age1 != 0 && age2 != 0) 16 if (age1 != 0 && age2 != 0)
16 return age2 - age1; 17 return age2 - age1;
17 18
18 if (age1 == 0 && age2 == 0) 19 if (age1 == 0 && age2 == 0)
19 return 0; 20 return 0;
20 21
21 if (age1 == 0) 22 if (age1 == 0)
22 return +1; 23 return +1;
23 24
24 return -1; 25 return -1;
25} 26}
26 27
27static int cmp_ref_name(const void *a, const void *b) 28static int cmp_ref_name(const void *a, const void *b)
28{ 29{
29 struct refinfo *r1 = *(struct refinfo **)a; 30 struct refinfo *r1 = *(struct refinfo **)a;
30 struct refinfo *r2 = *(struct refinfo **)b; 31 struct refinfo *r2 = *(struct refinfo **)b;
31 32
32 return strcmp(r1->refname, r2->refname); 33 return strcmp(r1->refname, r2->refname);
33} 34}
34 35
35static int cmp_branch_age(const void *a, const void *b) 36static int cmp_branch_age(const void *a, const void *b)
36{ 37{
37 struct refinfo *r1 = *(struct refinfo **)a; 38 struct refinfo *r1 = *(struct refinfo **)a;
38 struct refinfo *r2 = *(struct refinfo **)b; 39 struct refinfo *r2 = *(struct refinfo **)b;
39 40
40 return cmp_age(r1->commit->committer_date, r2->commit->committer_date); 41 return cmp_age(r1->commit->committer_date, r2->commit->committer_date);
41} 42}
42 43
43static int cmp_tag_age(const void *a, const void *b) 44static int cmp_tag_age(const void *a, const void *b)
44{ 45{
45 struct refinfo *r1 = *(struct refinfo **)a; 46 struct refinfo *r1 = *(struct refinfo **)a;
46 struct refinfo *r2 = *(struct refinfo **)b; 47 struct refinfo *r2 = *(struct refinfo **)b;
47 48
48 return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date); 49 return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date);
49} 50}
50 51
51static int print_branch(struct refinfo *ref) 52static int print_branch(struct refinfo *ref)
52{ 53{
53 struct commitinfo *info = ref->commit; 54 struct commitinfo *info = ref->commit;
54 char *name = (char *)ref->refname; 55 char *name = (char *)ref->refname;
55 56
56 if (!info) 57 if (!info)
57 return 1; 58 return 1;
58 html("<tr><td>"); 59 html("<tr><td>");
59 cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0, NULL, NULL); 60 cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0, NULL, NULL);
60 html("</td><td>"); 61 html("</td><td>");
61 62
62 if (ref->object->type == OBJ_COMMIT) { 63 if (ref->object->type == OBJ_COMMIT) {
63 cgit_print_age(info->commit->date, -1, NULL); 64 cgit_print_age(info->commit->date, -1, NULL);
64 html("</td><td>"); 65 html("</td><td>");
65 html_txt(info->author); 66 html_txt(info->author);
66 html("</td><td>"); 67 html("</td><td>");
67 cgit_commit_link(info->subject, NULL, NULL, name, NULL); 68 cgit_commit_link(info->subject, NULL, NULL, name, NULL);
68 } else { 69 } else {
69 html("</td><td></td><td>"); 70 html("</td><td></td><td>");
70 cgit_object_link(ref->object); 71 cgit_object_link(ref->object);
71 } 72 }
72 html("</td></tr>\n"); 73 html("</td></tr>\n");
73 return 0; 74 return 0;
74} 75}
75 76
76static void print_tag_header() 77static void print_tag_header()
77{ 78{
78 html("<tr class='nohover'><th class='left'>Tag</th>" 79 html("<tr class='nohover'><th class='left'>Tag</th>"
79 "<th class='left'>Age</th>" 80 "<th class='left'>Age</th>"
80 "<th class='left'>Author</th>" 81 "<th class='left'>Author</th>"
81 "<th class='left'>Reference</th></tr>\n"); 82 "<th class='left'>Reference</th></tr>\n");
82 header = 1; 83 header = 1;
83} 84}
84 85
85static int print_tag(struct refinfo *ref) 86static int print_tag(struct refinfo *ref)
86{ 87{
87 struct tag *tag; 88 struct tag *tag;
88 struct taginfo *info; 89 struct taginfo *info;
89 char *url, *name = (char *)ref->refname; 90 char *url, *name = (char *)ref->refname;
90 91
91 if (ref->object->type == OBJ_TAG) { 92 if (ref->object->type == OBJ_TAG) {
92 tag = (struct tag *)ref->object; 93 tag = (struct tag *)ref->object;
93 info = ref->tag; 94 info = ref->tag;
94 if (!tag || !info) 95 if (!tag || !info)
95 return 1; 96 return 1;
96 html("<tr><td>"); 97 html("<tr><td>");
97 url = cgit_pageurl(ctx.qry.repo, "tag", 98 url = cgit_pageurl(ctx.qry.repo, "tag",
98 fmt("id=%s", name)); 99 fmt("id=%s", name));
99 html_link_open(url, NULL, NULL); 100 html_link_open(url, NULL, NULL);
100 html_txt(name); 101 html_txt(name);
101 html_link_close(); 102 html_link_close();
102 html("</td><td>"); 103 html("</td><td>");
103 if (info->tagger_date > 0) 104 if (info->tagger_date > 0)
104 cgit_print_age(info->tagger_date, -1, NULL); 105 cgit_print_age(info->tagger_date, -1, NULL);
105 html("</td><td>"); 106 html("</td><td>");