merge: Add june's cgit patches to //third_party/cgit
june maintains some patches on https://git.causal.agency/cgit/log/ that seem sensible to include in this tree.
This commit is contained in:
commit
d657e878fa
3 changed files with 29 additions and 4 deletions
4
third_party/cgit/ui-blame.c
vendored
4
third_party/cgit/ui-blame.c
vendored
|
@ -151,6 +151,10 @@ static void print_object(const struct object_id *oid, const char *path,
|
||||||
cgit_tree_link("tree", NULL, NULL, ctx.qry.head, rev, path);
|
cgit_tree_link("tree", NULL, NULL, ctx.qry.head, rev, path);
|
||||||
html(")\n");
|
html(")\n");
|
||||||
|
|
||||||
|
if (buffer_is_binary(buf, size)) {
|
||||||
|
html("<div class='error'>blob is binary.</div>");
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
|
if (ctx.cfg.max_blob_size && size / 1024 > ctx.cfg.max_blob_size) {
|
||||||
htmlf("<div class='error'>blob size (%ldKB)"
|
htmlf("<div class='error'>blob size (%ldKB)"
|
||||||
" exceeds display size limit (%dKB).</div>",
|
" exceeds display size limit (%dKB).</div>",
|
||||||
|
|
1
third_party/cgit/ui-commit.c
vendored
1
third_party/cgit/ui-commit.c
vendored
|
@ -43,6 +43,7 @@ void cgit_print_commit(char *hex, const char *prefix)
|
||||||
|
|
||||||
load_ref_decorations(NULL, DECORATE_FULL_REFS);
|
load_ref_decorations(NULL, DECORATE_FULL_REFS);
|
||||||
|
|
||||||
|
ctx.page.title = fmtalloc("%s - %s", info->subject, ctx.page.title);
|
||||||
cgit_print_layout_start();
|
cgit_print_layout_start();
|
||||||
cgit_print_diff_ctrls();
|
cgit_print_diff_ctrls();
|
||||||
html("<table summary='commit info' class='commit-info'>\n");
|
html("<table summary='commit info' class='commit-info'>\n");
|
||||||
|
|
28
third_party/cgit/ui-tree.c
vendored
28
third_party/cgit/ui-tree.c
vendored
|
@ -89,6 +89,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
|
||||||
enum object_type type;
|
enum object_type type;
|
||||||
char *buf;
|
char *buf;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
int is_binary;
|
||||||
|
|
||||||
type = oid_object_info(the_repository, oid, &size);
|
type = oid_object_info(the_repository, oid, &size);
|
||||||
if (type == OBJ_BAD) {
|
if (type == OBJ_BAD) {
|
||||||
|
@ -103,6 +104,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
|
||||||
"Error reading object %s", oid_to_hex(oid));
|
"Error reading object %s", oid_to_hex(oid));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
is_binary = buffer_is_binary(buf, size);
|
||||||
|
|
||||||
cgit_set_title_from_path(path);
|
cgit_set_title_from_path(path);
|
||||||
|
|
||||||
|
@ -110,7 +112,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
|
||||||
htmlf("blob: %s (", oid_to_hex(oid));
|
htmlf("blob: %s (", oid_to_hex(oid));
|
||||||
cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
|
cgit_plain_link("plain", NULL, NULL, ctx.qry.head,
|
||||||
rev, path);
|
rev, path);
|
||||||
if (ctx.repo->enable_blame) {
|
if (ctx.repo->enable_blame && !is_binary) {
|
||||||
html(") (");
|
html(") (");
|
||||||
cgit_blame_link("blame", NULL, NULL, ctx.qry.head,
|
cgit_blame_link("blame", NULL, NULL, ctx.qry.head,
|
||||||
rev, path);
|
rev, path);
|
||||||
|
@ -123,7 +125,7 @@ static void print_object(const struct object_id *oid, const char *path, const ch
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buffer_is_binary(buf, size))
|
if (is_binary)
|
||||||
print_binary_buffer(buf, size);
|
print_binary_buffer(buf, size);
|
||||||
else
|
else
|
||||||
print_text_buffer(basename, buf, size);
|
print_text_buffer(basename, buf, size);
|
||||||
|
@ -204,9 +206,11 @@ static int ls_item(const struct object_id *oid, struct strbuf *base,
|
||||||
struct walk_tree_context *walk_tree_ctx = cbdata;
|
struct walk_tree_context *walk_tree_ctx = cbdata;
|
||||||
char *name;
|
char *name;
|
||||||
struct strbuf fullpath = STRBUF_INIT;
|
struct strbuf fullpath = STRBUF_INIT;
|
||||||
|
struct strbuf linkpath = STRBUF_INIT;
|
||||||
struct strbuf class = STRBUF_INIT;
|
struct strbuf class = STRBUF_INIT;
|
||||||
enum object_type type;
|
enum object_type type;
|
||||||
unsigned long size = 0;
|
unsigned long size = 0;
|
||||||
|
char *buf;
|
||||||
|
|
||||||
name = xstrdup(pathname);
|
name = xstrdup(pathname);
|
||||||
strbuf_addf(&fullpath, "%s%s%s", ctx.qry.path ? ctx.qry.path : "",
|
strbuf_addf(&fullpath, "%s%s%s", ctx.qry.path ? ctx.qry.path : "",
|
||||||
|
@ -218,8 +222,7 @@ static int ls_item(const struct object_id *oid, struct strbuf *base,
|
||||||
htmlf("<tr><td colspan='3'>Bad object: %s %s</td></tr>",
|
htmlf("<tr><td colspan='3'>Bad object: %s %s</td></tr>",
|
||||||
name,
|
name,
|
||||||
oid_to_hex(oid));
|
oid_to_hex(oid));
|
||||||
free(name);
|
goto cleanup;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,6 +242,21 @@ static int ls_item(const struct object_id *oid, struct strbuf *base,
|
||||||
cgit_tree_link(name, NULL, class.buf, ctx.qry.head,
|
cgit_tree_link(name, NULL, class.buf, ctx.qry.head,
|
||||||
walk_tree_ctx->curr_rev, fullpath.buf);
|
walk_tree_ctx->curr_rev, fullpath.buf);
|
||||||
}
|
}
|
||||||
|
if (S_ISLNK(mode)) {
|
||||||
|
html(" -> ");
|
||||||
|
buf = read_object_file(oid, &type, &size);
|
||||||
|
if (!buf) {
|
||||||
|
htmlf("Error reading object: %s", oid_to_hex(oid));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
strbuf_addbuf(&linkpath, &fullpath);
|
||||||
|
strbuf_addf(&linkpath, "/../%s", buf);
|
||||||
|
strbuf_normalize_path(&linkpath);
|
||||||
|
cgit_tree_link(buf, NULL, class.buf, ctx.qry.head,
|
||||||
|
walk_tree_ctx->curr_rev, linkpath.buf);
|
||||||
|
free(buf);
|
||||||
|
strbuf_release(&linkpath);
|
||||||
|
}
|
||||||
htmlf("</td><td class='ls-size'>%li</td>", size);
|
htmlf("</td><td class='ls-size'>%li</td>", size);
|
||||||
|
|
||||||
html("<td>");
|
html("<td>");
|
||||||
|
@ -255,6 +273,8 @@ static int ls_item(const struct object_id *oid, struct strbuf *base,
|
||||||
cgit_blame_link("blame", NULL, "button", ctx.qry.head,
|
cgit_blame_link("blame", NULL, "button", ctx.qry.head,
|
||||||
walk_tree_ctx->curr_rev, fullpath.buf);
|
walk_tree_ctx->curr_rev, fullpath.buf);
|
||||||
html("</td></tr>\n");
|
html("</td></tr>\n");
|
||||||
|
|
||||||
|
cleanup:
|
||||||
free(name);
|
free(name);
|
||||||
strbuf_release(&fullpath);
|
strbuf_release(&fullpath);
|
||||||
strbuf_release(&class);
|
strbuf_release(&class);
|
||||||
|
|
Loading…
Reference in a new issue