summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c6
-rw-r--r--ui-shared.h2
-rw-r--r--ui-tree.c8
3 files changed, 12 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 4408969..a2e0dd2 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -230,32 +230,38 @@ static void reporevlink(char *page, char *name, char *title, char *class,
230 if (rev && strcmp(rev, ctx.qry.head)) { 230 if (rev && strcmp(rev, ctx.qry.head)) {
231 html(delim); 231 html(delim);
232 html("id="); 232 html("id=");
233 html_attr(rev); 233 html_attr(rev);
234 } 234 }
235 html("'>"); 235 html("'>");
236 html_txt(name); 236 html_txt(name);
237 html("</a>"); 237 html("</a>");
238} 238}
239 239
240void cgit_tree_link(char *name, char *title, char *class, char *head, 240void cgit_tree_link(char *name, char *title, char *class, char *head,
241 char *rev, char *path) 241 char *rev, char *path)
242{ 242{
243 reporevlink("tree", name, title, class, head, rev, path); 243 reporevlink("tree", name, title, class, head, rev, path);
244} 244}
245 245
246void cgit_plain_link(char *name, char *title, char *class, char *head,
247 char *rev, char *path)
248{
249 reporevlink("plain", name, title, class, head, rev, path);
250}
251
246void cgit_log_link(char *name, char *title, char *class, char *head, 252void cgit_log_link(char *name, char *title, char *class, char *head,
247 char *rev, char *path, int ofs, char *grep, char *pattern) 253 char *rev, char *path, int ofs, char *grep, char *pattern)
248{ 254{
249 char *delim; 255 char *delim;
250 256
251 delim = repolink(title, class, "log", head, path); 257 delim = repolink(title, class, "log", head, path);
252 if (rev && strcmp(rev, ctx.qry.head)) { 258 if (rev && strcmp(rev, ctx.qry.head)) {
253 html(delim); 259 html(delim);
254 html("id="); 260 html("id=");
255 html_attr(rev); 261 html_attr(rev);
256 delim = "&"; 262 delim = "&";
257 } 263 }
258 if (grep && pattern) { 264 if (grep && pattern) {
259 html(delim); 265 html(delim);
260 html("qt="); 266 html("qt=");
261 html_attr(grep); 267 html_attr(grep);
diff --git a/ui-shared.h b/ui-shared.h
index 07da4b4..c5ce056 100644
--- a/ui-shared.h
+++ b/ui-shared.h
@@ -1,29 +1,31 @@
1#ifndef UI_SHARED_H 1#ifndef UI_SHARED_H
2#define UI_SHARED_H 2#define UI_SHARED_H
3 3
4extern char *cgit_repourl(const char *reponame); 4extern char *cgit_repourl(const char *reponame);
5extern char *cgit_fileurl(const char *reponame, const char *pagename, 5extern char *cgit_fileurl(const char *reponame, const char *pagename,
6 const char *filename, const char *query); 6 const char *filename, const char *query);
7extern char *cgit_pageurl(const char *reponame, const char *pagename, 7extern char *cgit_pageurl(const char *reponame, const char *pagename,
8 const char *query); 8 const char *query);
9 9
10extern void cgit_index_link(char *name, char *title, char *class, 10extern void cgit_index_link(char *name, char *title, char *class,
11 char *pattern, int ofs); 11 char *pattern, int ofs);
12extern void cgit_tree_link(char *name, char *title, char *class, char *head, 12extern void cgit_tree_link(char *name, char *title, char *class, char *head,
13 char *rev, char *path); 13 char *rev, char *path);
14extern void cgit_plain_link(char *name, char *title, char *class, char *head,
15 char *rev, char *path);
14extern void cgit_log_link(char *name, char *title, char *class, char *head, 16extern void cgit_log_link(char *name, char *title, char *class, char *head,
15 char *rev, char *path, int ofs, char *grep, 17 char *rev, char *path, int ofs, char *grep,
16 char *pattern); 18 char *pattern);
17extern void cgit_commit_link(char *name, char *title, char *class, char *head, 19extern void cgit_commit_link(char *name, char *title, char *class, char *head,
18 char *rev); 20 char *rev);
19extern void cgit_patch_link(char *name, char *title, char *class, char *head, 21extern void cgit_patch_link(char *name, char *title, char *class, char *head,
20 char *rev); 22 char *rev);
21extern void cgit_refs_link(char *name, char *title, char *class, char *head, 23extern void cgit_refs_link(char *name, char *title, char *class, char *head,
22 char *rev, char *path); 24 char *rev, char *path);
23extern void cgit_snapshot_link(char *name, char *title, char *class, 25extern void cgit_snapshot_link(char *name, char *title, char *class,
24 char *head, char *rev, char *archivename); 26 char *head, char *rev, char *archivename);
25extern void cgit_diff_link(char *name, char *title, char *class, char *head, 27extern void cgit_diff_link(char *name, char *title, char *class, char *head,
26 char *new_rev, char *old_rev, char *path); 28 char *new_rev, char *old_rev, char *path);
27extern void cgit_object_link(struct object *obj); 29extern void cgit_object_link(struct object *obj);
28 30
29extern void cgit_print_error(char *msg); 31extern void cgit_print_error(char *msg);
diff --git a/ui-tree.c b/ui-tree.c
index 9a837e2..79332fc 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -22,36 +22,36 @@ static void print_object(const unsigned char *sha1, char *path)
22 const char *linefmt = "<tr><td class='no'><a id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a></td><td class='txt'>"; 22 const char *linefmt = "<tr><td class='no'><a id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a></td><td class='txt'>";
23 23
24 type = sha1_object_info(sha1, &size); 24 type = sha1_object_info(sha1, &size);
25 if (type == OBJ_BAD) { 25 if (type == OBJ_BAD) {
26 cgit_print_error(fmt("Bad object name: %s", 26 cgit_print_error(fmt("Bad object name: %s",
27 sha1_to_hex(sha1))); 27 sha1_to_hex(sha1)));
28 return; 28 return;
29 } 29 }
30 30
31 buf = read_sha1_file(sha1, &type, &size); 31 buf = read_sha1_file(sha1, &type, &size);
32 if (!buf) { 32 if (!buf) {
33 cgit_print_error(fmt("Error reading object %s", 33 cgit_print_error(fmt("Error reading object %s",
34 sha1_to_hex(sha1))); 34 sha1_to_hex(sha1)));
35 return; 35 return;
36 } 36 }
37 37
38 html(" blob: <a href='"); 38 html(" (");
39 html_attr(cgit_pageurl(ctx.qry.repo, "blob", 39 cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
40 fmt("id=%s&path=%s", sha1_to_hex(sha1), path))); 40 curr_rev, path);
41 htmlf("'>%s</a>",sha1_to_hex(sha1)); 41 htmlf(")<br/>blob: %s", sha1_to_hex(sha1));
42 42
43 html("<table summary='blob content' class='blob'>\n"); 43 html("<table summary='blob content' class='blob'>\n");
44 idx = 0; 44 idx = 0;
45 start = 0; 45 start = 0;
46 lineno = 0; 46 lineno = 0;
47 while(idx < size) { 47 while(idx < size) {
48 if (buf[idx] == '\n') { 48 if (buf[idx] == '\n') {
49 buf[idx] = '\0'; 49 buf[idx] = '\0';
50 htmlf(linefmt, ++lineno); 50 htmlf(linefmt, ++lineno);
51 html_txt(buf + start); 51 html_txt(buf + start);
52 html("</td></tr>\n"); 52 html("</td></tr>\n");
53 start = idx + 1; 53 start = idx + 1;
54 } 54 }
55 idx++; 55 idx++;
56 } 56 }
57 htmlf(linefmt, ++lineno); 57 htmlf(linefmt, ++lineno);