author | Lars Hjemli <hjemli@gmail.com> | 2008-08-06 09:07:13 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-08-06 09:21:30 (UTC) |
commit | 65b7b876aaaf50fc15060533359d6561f4f1819a (patch) (side-by-side diff) | |
tree | c5cfe73456cf31afb13bcb12c5331fa711f89d71 /ui-tree.c | |
parent | e5da4bca54574522b28f88cab0dc8ebad9e35a73 (diff) | |
download | cgit-65b7b876aaaf50fc15060533359d6561f4f1819a.zip cgit-65b7b876aaaf50fc15060533359d6561f4f1819a.tar.gz cgit-65b7b876aaaf50fc15060533359d6561f4f1819a.tar.bz2 |
ui-tree: link to plain view instead of blob view
The urls for plain view makes it possible to download blobs without knowing
their SHA1, but the function needs to be promoted and the link from tree
view seems like a perfect fit.
PS: Although hidden, the blob view still is nice for direct blob access so
there's no point in removing it.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-tree.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -6,68 +6,68 @@ * (see COPYING for full license text) */ #include "cgit.h" #include "html.h" #include "ui-shared.h" char *curr_rev; char *match_path; int header = 0; static void print_object(const unsigned char *sha1, char *path) { enum object_type type; char *buf; unsigned long size, lineno, start, idx; 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'>"; type = sha1_object_info(sha1, &size); if (type == OBJ_BAD) { cgit_print_error(fmt("Bad object name: %s", sha1_to_hex(sha1))); return; } buf = read_sha1_file(sha1, &type, &size); if (!buf) { cgit_print_error(fmt("Error reading object %s", sha1_to_hex(sha1))); return; } - html(" blob: <a href='"); - html_attr(cgit_pageurl(ctx.qry.repo, "blob", - fmt("id=%s&path=%s", sha1_to_hex(sha1), path))); - htmlf("'>%s</a>",sha1_to_hex(sha1)); + html(" ("); + cgit_plain_link("plain", NULL, NULL, ctx.qry.head, + curr_rev, path); + htmlf(")<br/>blob: %s", sha1_to_hex(sha1)); html("<table summary='blob content' class='blob'>\n"); idx = 0; start = 0; lineno = 0; while(idx < size) { if (buf[idx] == '\n') { buf[idx] = '\0'; htmlf(linefmt, ++lineno); html_txt(buf + start); html("</td></tr>\n"); start = idx + 1; } idx++; } htmlf(linefmt, ++lineno); html_txt(buf + start); html("</td></tr>\n"); html("</table>\n"); } static int ls_item(const unsigned char *sha1, const char *base, int baselen, const char *pathname, unsigned int mode, int stage, void *cbdata) { char *name; char *fullpath; enum object_type type; unsigned long size = 0; name = xstrdup(pathname); |