else if (!strcmp(name, "summary-tags"))
ctx.cfg.summary_tags = atoi(value);
else if (!strcmp(name, "side-by-side-diffs"))
- ctx.cfg.ssdiff = atoi(value);
+ ctx.cfg.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED;
else if (!strcmp(name, "agefile"))
ctx.cfg.agefile = xstrdup(value);
else if (!strcmp(name, "mimetype-file"))
ctx.qry.showmsg = atoi(value);
} else if (!strcmp(name, "period")) {
ctx.qry.period = xstrdup(value);
+ } else if (!strcmp(name, "dt")) {
+ ctx.qry.difftype = atoi(value);
+ ctx.qry.has_difftype = 1;
} else if (!strcmp(name, "ss")) {
- ctx.qry.ssdiff = atoi(value);
- ctx.qry.has_ssdiff = 1;
+ /* No longer generated, but there may be links out there. */
+ ctx.qry.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED;
+ ctx.qry.has_difftype = 1;
} else if (!strcmp(name, "all")) {
ctx.qry.show_all = atoi(value);
} else if (!strcmp(name, "context")) {
ctx.cfg.summary_log = 10;
ctx.cfg.summary_tags = 10;
ctx.cfg.max_atom_items = 10;
- ctx.cfg.ssdiff = 0;
+ ctx.cfg.difftype = DIFF_UNIFIED;
ctx.env.cgit_config = getenv("CGIT_CONFIG");
ctx.env.http_host = getenv("HTTP_HOST");
ctx.env.https = getenv("HTTPS");
typedef void (*filepair_fn)(struct diff_filepair *pair);
typedef void (*linediff_fn)(char *line, int len);
+typedef enum {
+ DIFF_UNIFIED, DIFF_SSDIFF
+} diff_type;
+
typedef enum {
ABOUT, COMMIT, SOURCE, EMAIL, AUTH
} filter_type;
struct cgit_query {
int has_symref;
int has_sha1;
- int has_ssdiff;
+ int has_difftype;
char *raw;
char *repo;
char *page;
int nohead;
char *sort;
int showmsg;
- int ssdiff;
+ diff_type difftype;
int show_all;
int context;
int ignorews;
int summary_branches;
int summary_log;
int summary_tags;
- int ssdiff;
+ diff_type difftype;
int branch_sort;
int commit_sort;
struct string_list mimetypes;
html("</tr><tr>");
html("<td class='label'>mode:</td>");
html("<td class='ctrl'>");
- html("<select name='ss' onchange='this.form.submit();'>");
- curr = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
+ html("<select name='dt' onchange='this.form.submit();'>");
+ curr = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype;
html_intoption(0, "unified", curr);
html_intoption(1, "ssdiff", curr);
html("</select></td></tr>");
{
struct commit *commit, *commit2;
const unsigned char *old_tree_sha1, *new_tree_sha1;
+ diff_type difftype;
if (!new_rev)
new_rev = ctx.qry.head;
return;
}
- use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
+ difftype = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype;
+ use_ssdiff = difftype == DIFF_SSDIFF;
if (show_ctrls)
cgit_print_diff_ctrls();
html_url_arg(rev);
delim = "&";
}
- if (ctx.qry.ssdiff) {
+ if (ctx.qry.difftype) {
html(delim);
- html("ss=1");
+ htmlf("dt=%d", ctx.qry.difftype);
delim = "&";
}
if (ctx.qry.context > 0 && ctx.qry.context != 3) {
html_url_arg(old_rev);
delim = "&";
}
- if (ctx.qry.ssdiff) {
+ if (ctx.qry.difftype) {
html(delim);
- html("ss=1");
+ htmlf("dt=%d", ctx.qry.difftype);
delim = "&";
}
if (ctx.qry.context > 0 && ctx.qry.context != 3) {