about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--cgit.c12
-rw-r--r--cgit.h10
-rw-r--r--ui-diff.c8
-rw-r--r--ui-shared.c8
4 files changed, 24 insertions, 14 deletions
diff --git a/cgit.c b/cgit.c
index 8c4517d..db60107 100644
--- a/cgit.c
+++ b/cgit.c
@@ -237,7 +237,7 @@ static void config_cb(const char *name, const char *value)
 	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"))
@@ -312,9 +312,13 @@ static void querystring_cb(const char *name, const char *value)
 		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")) {
@@ -372,7 +376,7 @@ static void prepare_context(void)
 	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");
diff --git a/cgit.h b/cgit.h
index 0badc64..0eb5ed5 100644
--- a/cgit.h
+++ b/cgit.h
@@ -53,6 +53,10 @@ 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;
 
@@ -150,7 +154,7 @@ struct reflist {
 struct cgit_query {
 	int has_symref;
 	int has_sha1;
-	int has_ssdiff;
+	int has_difftype;
 	char *raw;
 	char *repo;
 	char *page;
@@ -168,7 +172,7 @@ struct cgit_query {
 	int nohead;
 	char *sort;
 	int showmsg;
-	int ssdiff;
+	diff_type difftype;
 	int show_all;
 	int context;
 	int ignorews;
@@ -245,7 +249,7 @@ struct cgit_config {
 	int summary_branches;
 	int summary_log;
 	int summary_tags;
-	int ssdiff;
+	diff_type difftype;
 	int branch_sort;
 	int commit_sort;
 	struct string_list mimetypes;
diff --git a/ui-diff.c b/ui-diff.c
index 49bd748..a4ade4d 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -345,8 +345,8 @@ void cgit_print_diff_ctrls()
 	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>");
@@ -362,6 +362,7 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
 {
 	struct commit *commit, *commit2;
 	const unsigned char *old_tree_sha1, *new_tree_sha1;
+	diff_type difftype;
 
 	if (!new_rev)
 		new_rev = ctx.qry.head;
@@ -420,7 +421,8 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
 		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();
diff --git a/ui-shared.c b/ui-shared.c
index 68e0d7c..6243d1b 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -346,9 +346,9 @@ void cgit_commit_link(char *name, const char *title, const char *class,
 		html_url_arg(rev);
 		delim = "&amp;";
 	}
-	if (ctx.qry.ssdiff) {
+	if (ctx.qry.difftype) {
 		html(delim);
-		html("ss=1");
+		htmlf("dt=%d", ctx.qry.difftype);
 		delim = "&amp;";
 	}
 	if (ctx.qry.context > 0 && ctx.qry.context != 3) {
@@ -402,9 +402,9 @@ void cgit_diff_link(const char *name, const char *title, const char *class,
 		html_url_arg(old_rev);
 		delim = "&amp;";
 	}
-	if (ctx.qry.ssdiff) {
+	if (ctx.qry.difftype) {
 		html(delim);
-		html("ss=1");
+		htmlf("dt=%d", ctx.qry.difftype);
 		delim = "&amp;";
 	}
 	if (ctx.qry.context > 0 && ctx.qry.context != 3) {