summaryrefslogtreecommitdiffabout
path: root/ui-summary.c
Unidiff
Diffstat (limited to 'ui-summary.c') (more/less context) (show whitespace changes)
-rw-r--r--ui-summary.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-summary.c b/ui-summary.c
index b203bcc..5be2545 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -14,97 +14,97 @@
14#include "ui-blob.h" 14#include "ui-blob.h"
15 15
16int urls = 0; 16int urls = 0;
17 17
18static void print_url(char *base, char *suffix) 18static void print_url(char *base, char *suffix)
19{ 19{
20 if (!base || !*base) 20 if (!base || !*base)
21 return; 21 return;
22 if (urls++ == 0) { 22 if (urls++ == 0) {
23 html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>"); 23 html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
24 html("<tr><th class='left' colspan='4'>Clone</th></tr>\n"); 24 html("<tr><th class='left' colspan='4'>Clone</th></tr>\n");
25 } 25 }
26 if (suffix && *suffix) 26 if (suffix && *suffix)
27 base = fmt("%s/%s", base, suffix); 27 base = fmt("%s/%s", base, suffix);
28 html("<tr><td colspan='4'><a href='"); 28 html("<tr><td colspan='4'><a href='");
29 html_url_path(base); 29 html_url_path(base);
30 html("'>"); 30 html("'>");
31 html_txt(base); 31 html_txt(base);
32 html("</a></td></tr>\n"); 32 html("</a></td></tr>\n");
33} 33}
34 34
35static void print_urls(char *txt, char *suffix) 35static void print_urls(char *txt, char *suffix)
36{ 36{
37 char *h = txt, *t, c; 37 char *h = txt, *t, c;
38 38
39 while (h && *h) { 39 while (h && *h) {
40 while (h && *h == ' ') 40 while (h && *h == ' ')
41 h++; 41 h++;
42 t = h; 42 t = h;
43 while (t && *t && *t != ' ') 43 while (t && *t && *t != ' ')
44 t++; 44 t++;
45 c = *t; 45 c = *t;
46 *t = 0; 46 *t = 0;
47 print_url(h, suffix); 47 print_url(h, suffix);
48 *t = c; 48 *t = c;
49 h = t; 49 h = t;
50 } 50 }
51} 51}
52 52
53void cgit_print_summary() 53void cgit_print_summary()
54{ 54{
55 html("<table summary='repository info' class='list nowrap'>"); 55 html("<table summary='repository info' class='list nowrap'>");
56 cgit_print_branches(ctx.cfg.summary_branches); 56 cgit_print_branches(ctx.cfg.summary_branches);
57 html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>"); 57 html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
58 cgit_print_tags(ctx.cfg.summary_tags); 58 cgit_print_tags(ctx.cfg.summary_tags);
59 if (ctx.cfg.summary_log > 0) { 59 if (ctx.cfg.summary_log > 0) {
60 html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>"); 60 html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
61 cgit_print_log(ctx.qry.head, 0, ctx.cfg.summary_log, NULL, 61 cgit_print_log(ctx.qry.head, 0, ctx.cfg.summary_log, NULL,
62 NULL, NULL, 0); 62 NULL, NULL, 0, 0);
63 } 63 }
64 if (ctx.repo->clone_url) 64 if (ctx.repo->clone_url)
65 print_urls(ctx.repo->clone_url, NULL); 65 print_urls(ctx.repo->clone_url, NULL);
66 else if (ctx.cfg.clone_prefix) 66 else if (ctx.cfg.clone_prefix)
67 print_urls(ctx.cfg.clone_prefix, ctx.repo->url); 67 print_urls(ctx.cfg.clone_prefix, ctx.repo->url);
68 html("</table>"); 68 html("</table>");
69} 69}
70 70
71void cgit_print_repo_readme(char *path) 71void cgit_print_repo_readme(char *path)
72{ 72{
73 char *slash, *tmp, *colon, *ref; 73 char *slash, *tmp, *colon, *ref;
74 74
75 if (!ctx.repo->readme || !(*ctx.repo->readme)) 75 if (!ctx.repo->readme || !(*ctx.repo->readme))
76 return; 76 return;
77 77
78 ref = NULL; 78 ref = NULL;
79 79
80 /* Check if the readme is tracked in the git repo. */ 80 /* Check if the readme is tracked in the git repo. */
81 colon = strchr(ctx.repo->readme, ':'); 81 colon = strchr(ctx.repo->readme, ':');
82 if (colon && strlen(colon) > 1) { 82 if (colon && strlen(colon) > 1) {
83 *colon = '\0'; 83 *colon = '\0';
84 ref = ctx.repo->readme; 84 ref = ctx.repo->readme;
85 ctx.repo->readme = colon + 1; 85 ctx.repo->readme = colon + 1;
86 if (!(*ctx.repo->readme)) 86 if (!(*ctx.repo->readme))
87 return; 87 return;
88 } 88 }
89 89
90 /* Prepend repo path to relative readme path unless tracked. */ 90 /* Prepend repo path to relative readme path unless tracked. */
91 if (!ref && *ctx.repo->readme != '/') 91 if (!ref && *ctx.repo->readme != '/')
92 ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path, 92 ctx.repo->readme = xstrdup(fmt("%s/%s", ctx.repo->path,
93 ctx.repo->readme)); 93 ctx.repo->readme));
94 94
95 /* If a subpath is specified for the about page, make it relative 95 /* If a subpath is specified for the about page, make it relative
96 * to the directory containing the configured readme. 96 * to the directory containing the configured readme.
97 */ 97 */
98 if (path) { 98 if (path) {
99 slash = strrchr(ctx.repo->readme, '/'); 99 slash = strrchr(ctx.repo->readme, '/');
100 if (!slash) { 100 if (!slash) {
101 if (!colon) 101 if (!colon)
102 return; 102 return;
103 slash = colon; 103 slash = colon;
104 } 104 }
105 tmp = xmalloc(slash - ctx.repo->readme + 1 + strlen(path) + 1); 105 tmp = xmalloc(slash - ctx.repo->readme + 1 + strlen(path) + 1);
106 strncpy(tmp, ctx.repo->readme, slash - ctx.repo->readme + 1); 106 strncpy(tmp, ctx.repo->readme, slash - ctx.repo->readme + 1);
107 strcpy(tmp + (slash - ctx.repo->readme + 1), path); 107 strcpy(tmp + (slash - ctx.repo->readme + 1), path);
108 } else 108 } else
109 tmp = ctx.repo->readme; 109 tmp = ctx.repo->readme;
110 110