From: Lars Hjemli Date: Mon, 23 May 2011 21:29:24 +0000 (+0200) Subject: Merge branch 'lh/panel' X-Git-Url: https://gitweb.ps.run/ps-cgit/commitdiff_plain/2ffeecb7a6827dcf0f81cf543ed312155f6e8f83?ds=sidebyside;hp=-c Merge branch 'lh/panel' --- 2ffeecb7a6827dcf0f81cf543ed312155f6e8f83 diff --combined cmd.c index d114eb3,05d5aaf..5a3d157 --- a/cmd.c +++ b/cmd.c @@@ -56,7 -56,7 +56,7 @@@ static void commit_fn(struct cgit_conte static void diff_fn(struct cgit_context *ctx) { - cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path); + cgit_print_diff(ctx->qry.sha1, ctx->qry.sha2, ctx->qry.path, 1); } static void info_fn(struct cgit_context *ctx) @@@ -130,31 -130,31 +130,31 @@@ static void tree_fn(struct cgit_contex cgit_print_tree(ctx->qry.sha1, ctx->qry.path); } -#define def_cmd(name, want_repo, want_layout, want_vpath) \ - {#name, name##_fn, want_repo, want_layout, want_vpath} +#define def_cmd(name, want_repo, want_layout, want_vpath, is_clone) \ + {#name, name##_fn, want_repo, want_layout, want_vpath, is_clone} struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx) { static struct cgit_cmd cmds[] = { - def_cmd(HEAD, 1, 0, 0), - def_cmd(atom, 1, 0, 0), - def_cmd(about, 0, 1, 0), - def_cmd(blob, 1, 0, 0), - def_cmd(commit, 1, 1, 1), - def_cmd(diff, 1, 1, 1), - def_cmd(info, 1, 0, 0), - def_cmd(log, 1, 1, 1), - def_cmd(ls_cache, 0, 0, 0), - def_cmd(objects, 1, 0, 0), - def_cmd(patch, 1, 0, 1), - def_cmd(plain, 1, 0, 0), - def_cmd(refs, 1, 1, 0), - def_cmd(repolist, 0, 0, 0), - def_cmd(snapshot, 1, 0, 0), - def_cmd(stats, 1, 1, 1), - def_cmd(summary, 1, 1, 0), - def_cmd(tag, 1, 1, 0), - def_cmd(tree, 1, 1, 1), + def_cmd(HEAD, 1, 0, 0, 1), + def_cmd(atom, 1, 0, 0, 0), + def_cmd(about, 0, 1, 0, 0), + def_cmd(blob, 1, 0, 0, 0), + def_cmd(commit, 1, 1, 1, 0), + def_cmd(diff, 1, 1, 1, 0), + def_cmd(info, 1, 0, 0, 1), + def_cmd(log, 1, 1, 1, 0), + def_cmd(ls_cache, 0, 0, 0, 0), + def_cmd(objects, 1, 0, 0, 1), + def_cmd(patch, 1, 0, 1, 0), + def_cmd(plain, 1, 0, 0, 0), + def_cmd(refs, 1, 1, 0, 0), + def_cmd(repolist, 0, 0, 0, 0), + def_cmd(snapshot, 1, 0, 0, 0), + def_cmd(stats, 1, 1, 1, 0), + def_cmd(summary, 1, 1, 0, 0), + def_cmd(tag, 1, 1, 0, 0), + def_cmd(tree, 1, 1, 1, 0), }; int i; diff --combined html.c index a0f6db4,ae1cef9..4a18a57 --- a/html.c +++ b/html.c @@@ -18,7 -18,7 +18,7 @@@ static const char* url_escape_table[256 "%00", "%01", "%02", "%03", "%04", "%05", "%06", "%07", "%08", "%09", "%0a", "%0b", "%0c", "%0d", "%0e", "%0f", "%10", "%11", "%12", "%13", "%14", "%15", "%16", "%17", "%18", "%19", "%1a", "%1b", "%1c", "%1d", - "%1e", "%1f", "+", 0, "%22", "%23", 0, "%25", "%26", "%27", 0, 0, 0, + "%1e", "%1f", "%20", 0, "%22", "%23", 0, "%25", "%26", "%27", 0, 0, 0, "%2b", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%3c", "%3d", "%3e", "%3f", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "%5c", 0, "%5e", 0, "%60", 0, 0, 0, 0, 0, @@@ -162,9 -162,9 +162,9 @@@ void html_url_path(const char *txt while(t && *t){ int c = *t; const char *e = url_escape_table[c]; - if (e && c!='+' && c!='&' && c!='+') { + if (e && c!='+' && c!='&') { html_raw(txt, t - txt); - html_raw(e, 3); + html(e); txt = t+1; } t++; @@@ -179,11 -179,9 +179,11 @@@ void html_url_arg(const char *txt while(t && *t){ int c = *t; const char *e = url_escape_table[c]; + if (c == ' ') + e = "+"; if (e) { html_raw(txt, t - txt); - html_raw(e, strlen(e)); + html(e); txt = t+1; } t++; @@@ -213,6 -211,14 +213,14 @@@ void html_option(const char *value, con html("\n"); } + void html_intoption(int value, const char *text, int selected_value) + { + htmlf(""); + } + void html_link_open(const char *url, const char *title, const char *class) { html("\n"); html("author"); html_txt(info->author); @@@ -64,11 -65,6 +65,6 @@@ cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp, prefix, 0); html(" ("); cgit_patch_link("patch", NULL, NULL, NULL, tmp, prefix); - html(") ("); - if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff)) - cgit_commit_link("unidiff", NULL, NULL, ctx.qry.head, tmp, prefix, 1); - else - cgit_commit_link("side-by-side diff", NULL, NULL, ctx.qry.head, tmp, prefix, 1); html(")\n"); html("tree"); tmp = xstrdup(hex); @@@ -110,7 -106,7 +106,7 @@@ html("\n"); html("
"); if (ctx.repo->commit_filter) - cgit_open_filter(ctx.repo->commit_filter); + cgit_open_filter(ctx.repo->commit_filter, ctx.repo); html_txt(info->subject); if (ctx.repo->commit_filter) cgit_close_filter(ctx.repo->commit_filter); @@@ -118,7 -114,7 +114,7 @@@ html("
"); html("
"); if (ctx.repo->commit_filter) - cgit_open_filter(ctx.repo->commit_filter); + cgit_open_filter(ctx.repo->commit_filter, ctx.repo); html_txt(info->msg); if (ctx.repo->commit_filter) cgit_close_filter(ctx.repo->commit_filter); @@@ -127,7 -123,7 +123,7 @@@ html("
Notes
"); html("
"); if (ctx.repo->commit_filter) - cgit_open_filter(ctx.repo->commit_filter); + cgit_open_filter(ctx.repo->commit_filter, ctx.repo); html_txt(notes.buf); if (ctx.repo->commit_filter) cgit_close_filter(ctx.repo->commit_filter); @@@ -139,7 -135,7 +135,7 @@@ tmp = sha1_to_hex(commit->parents->item->object.sha1); else tmp = NULL; - cgit_print_diff(ctx.qry.sha1, tmp, prefix); + cgit_print_diff(ctx.qry.sha1, tmp, prefix, 0); } strbuf_release(¬es); cgit_free_commitinfo(info); diff --combined ui-diff.c index d21541b,b7767b3..868ceec --- a/ui-diff.c +++ b/ui-diff.c @@@ -167,7 -167,7 +167,7 @@@ static void inspect_filepair(struct dif void cgit_print_diffstat(const unsigned char *old_sha1, const unsigned char *new_sha1, const char *prefix) { - int i, save_context = ctx.qry.context; + int i; html("
"); cgit_diff_link("Diffstat", NULL, NULL, ctx.qry.head, ctx.qry.sha1, @@@ -177,19 -177,6 +177,6 @@@ html_txt(prefix); html("')"); } - html(" ("); - ctx.qry.context = (save_context > 0 ? save_context : 3) << 1; - cgit_self_link("more", NULL, NULL, &ctx); - html("/"); - ctx.qry.context = (save_context > 3 ? save_context : 3) >> 1; - cgit_self_link("less", NULL, NULL, &ctx); - ctx.qry.context = save_context; - html(" context)"); - html(" ("); - ctx.qry.ignorews = (ctx.qry.ignorews + 1) % 2; - cgit_self_link(ctx.qry.ignorews ? "ignore" : "show", NULL, NULL, &ctx); - ctx.qry.ignorews = (ctx.qry.ignorews + 1) % 2; - html(" whitespace changes)"); html("
"); html(""); max_changes = 0; @@@ -278,19 -265,6 +265,6 @@@ static void header(unsigned char *sha1 html(""); } - static void print_ssdiff_link() - { - if (!strcmp(ctx.qry.page, "diff")) { - if (use_ssdiff) - cgit_diff_link("Unidiff", NULL, NULL, ctx.qry.head, - ctx.qry.sha1, ctx.qry.sha2, ctx.qry.path, 1); - else - cgit_diff_link("Side-by-side diff", NULL, NULL, - ctx.qry.head, ctx.qry.sha1, - ctx.qry.sha2, ctx.qry.path, 1); - } - } - static void filepair_cb(struct diff_filepair *pair) { unsigned long old_size = 0; @@@ -330,7 -304,56 +304,56 @@@ cgit_ssdiff_footer(); } - void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefix) + void cgit_print_diff_ctrls() + { + int i, curr; + + html("
"); + html("diff options"); + html("
"); + cgit_add_hidden_formfields(1, 0, ctx.qry.page); + html("
"); + html(""); + html(""); + html(""); + html(""); + html(""); + html(""); + html(""); + html(""); + html(""); + html(""); + html("
context:"); + html(""); + html("
space:"); + html(""); + html("
mode:"); + html("
"); + html(""); + html("
"); + html(""); + html("
"); + } + + void cgit_print_diff(const char *new_rev, const char *old_rev, + const char *prefix, int show_ctrls) { enum object_type type; unsigned long size; @@@ -345,10 -368,8 +368,10 @@@ return; } commit = lookup_commit_reference(new_rev_sha1); - if (!commit || parse_commit(commit)) + if (!commit || parse_commit(commit)) { cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(new_rev_sha1))); + return; + } if (old_rev) get_sha1(old_rev, old_rev_sha1); @@@ -364,16 -385,16 +387,18 @@@ return; } commit2 = lookup_commit_reference(old_rev_sha1); - if (!commit2 || parse_commit(commit2)) + if (!commit2 || parse_commit(commit2)) { cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(old_rev_sha1))); + return; + } } if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff)) use_ssdiff = 1; - print_ssdiff_link(); + if (show_ctrls) + cgit_print_diff_ctrls(); + cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix); if (use_ssdiff) {