diff options
-rw-r--r-- | cgit.c | 12 | ||||
-rw-r--r-- | cgit.h | 10 | ||||
-rw-r--r-- | ui-diff.c | 8 | ||||
-rw-r--r-- | ui-shared.c | 8 |
4 files changed, 24 insertions, 14 deletions
@@ -237,7 +237,7 @@ static void config_cb(const char *name, const char *value) | |||
237 | else if (!strcmp(name, "summary-tags")) | 237 | else if (!strcmp(name, "summary-tags")) |
238 | ctx.cfg.summary_tags = atoi(value); | 238 | ctx.cfg.summary_tags = atoi(value); |
239 | else if (!strcmp(name, "side-by-side-diffs")) | 239 | else if (!strcmp(name, "side-by-side-diffs")) |
240 | ctx.cfg.ssdiff = atoi(value); | 240 | ctx.cfg.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED; |
241 | else if (!strcmp(name, "agefile")) | 241 | else if (!strcmp(name, "agefile")) |
242 | ctx.cfg.agefile = xstrdup(value); | 242 | ctx.cfg.agefile = xstrdup(value); |
243 | else if (!strcmp(name, "mimetype-file")) | 243 | else if (!strcmp(name, "mimetype-file")) |
@@ -312,9 +312,13 @@ static void querystring_cb(const char *name, const char *value) | |||
312 | ctx.qry.showmsg = atoi(value); | 312 | ctx.qry.showmsg = atoi(value); |
313 | } else if (!strcmp(name, "period")) { | 313 | } else if (!strcmp(name, "period")) { |
314 | ctx.qry.period = xstrdup(value); | 314 | ctx.qry.period = xstrdup(value); |
315 | } else if (!strcmp(name, "dt")) { | ||
316 | ctx.qry.difftype = atoi(value); | ||
317 | ctx.qry.has_difftype = 1; | ||
315 | } else if (!strcmp(name, "ss")) { | 318 | } else if (!strcmp(name, "ss")) { |
316 | ctx.qry.ssdiff = atoi(value); | 319 | /* No longer generated, but there may be links out there. */ |
317 | ctx.qry.has_ssdiff = 1; | 320 | ctx.qry.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED; |
321 | ctx.qry.has_difftype = 1; | ||
318 | } else if (!strcmp(name, "all")) { | 322 | } else if (!strcmp(name, "all")) { |
319 | ctx.qry.show_all = atoi(value); | 323 | ctx.qry.show_all = atoi(value); |
320 | } else if (!strcmp(name, "context")) { | 324 | } else if (!strcmp(name, "context")) { |
@@ -372,7 +376,7 @@ static void prepare_context(void) | |||
372 | ctx.cfg.summary_log = 10; | 376 | ctx.cfg.summary_log = 10; |
373 | ctx.cfg.summary_tags = 10; | 377 | ctx.cfg.summary_tags = 10; |
374 | ctx.cfg.max_atom_items = 10; | 378 | ctx.cfg.max_atom_items = 10; |
375 | ctx.cfg.ssdiff = 0; | 379 | ctx.cfg.difftype = DIFF_UNIFIED; |
376 | ctx.env.cgit_config = getenv("CGIT_CONFIG"); | 380 | ctx.env.cgit_config = getenv("CGIT_CONFIG"); |
377 | ctx.env.http_host = getenv("HTTP_HOST"); | 381 | ctx.env.http_host = getenv("HTTP_HOST"); |
378 | ctx.env.https = getenv("HTTPS"); | 382 | ctx.env.https = getenv("HTTPS"); |
@@ -53,6 +53,10 @@ typedef void (*filepair_fn)(struct diff_filepair *pair); | |||
53 | typedef void (*linediff_fn)(char *line, int len); | 53 | typedef void (*linediff_fn)(char *line, int len); |
54 | 54 | ||
55 | typedef enum { | 55 | typedef enum { |
56 | DIFF_UNIFIED, DIFF_SSDIFF | ||
57 | } diff_type; | ||
58 | |||
59 | typedef enum { | ||
56 | ABOUT, COMMIT, SOURCE, EMAIL, AUTH | 60 | ABOUT, COMMIT, SOURCE, EMAIL, AUTH |
57 | } filter_type; | 61 | } filter_type; |
58 | 62 | ||
@@ -150,7 +154,7 @@ struct reflist { | |||
150 | struct cgit_query { | 154 | struct cgit_query { |
151 | int has_symref; | 155 | int has_symref; |
152 | int has_sha1; | 156 | int has_sha1; |
153 | int has_ssdiff; | 157 | int has_difftype; |
154 | char *raw; | 158 | char *raw; |
155 | char *repo; | 159 | char *repo; |
156 | char *page; | 160 | char *page; |
@@ -168,7 +172,7 @@ struct cgit_query { | |||
168 | int nohead; | 172 | int nohead; |
169 | char *sort; | 173 | char *sort; |
170 | int showmsg; | 174 | int showmsg; |
171 | int ssdiff; | 175 | diff_type difftype; |
172 | int show_all; | 176 | int show_all; |
173 | int context; | 177 | int context; |
174 | int ignorews; | 178 | int ignorews; |
@@ -245,7 +249,7 @@ struct cgit_config { | |||
245 | int summary_branches; | 249 | int summary_branches; |
246 | int summary_log; | 250 | int summary_log; |
247 | int summary_tags; | 251 | int summary_tags; |
248 | int ssdiff; | 252 | diff_type difftype; |
249 | int branch_sort; | 253 | int branch_sort; |
250 | int commit_sort; | 254 | int commit_sort; |
251 | struct string_list mimetypes; | 255 | struct string_list mimetypes; |
@@ -345,8 +345,8 @@ void cgit_print_diff_ctrls() | |||
345 | html("</tr><tr>"); | 345 | html("</tr><tr>"); |
346 | html("<td class='label'>mode:</td>"); | 346 | html("<td class='label'>mode:</td>"); |
347 | html("<td class='ctrl'>"); | 347 | html("<td class='ctrl'>"); |
348 | html("<select name='ss' onchange='this.form.submit();'>"); | 348 | html("<select name='dt' onchange='this.form.submit();'>"); |
349 | curr = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff; | 349 | curr = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype; |
350 | html_intoption(0, "unified", curr); | 350 | html_intoption(0, "unified", curr); |
351 | html_intoption(1, "ssdiff", curr); | 351 | html_intoption(1, "ssdiff", curr); |
352 | html("</select></td></tr>"); | 352 | html("</select></td></tr>"); |
@@ -362,6 +362,7 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, | |||
362 | { | 362 | { |
363 | struct commit *commit, *commit2; | 363 | struct commit *commit, *commit2; |
364 | const unsigned char *old_tree_sha1, *new_tree_sha1; | 364 | const unsigned char *old_tree_sha1, *new_tree_sha1; |
365 | diff_type difftype; | ||
365 | 366 | ||
366 | if (!new_rev) | 367 | if (!new_rev) |
367 | new_rev = ctx.qry.head; | 368 | new_rev = ctx.qry.head; |
@@ -420,7 +421,8 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, | |||
420 | return; | 421 | return; |
421 | } | 422 | } |
422 | 423 | ||
423 | use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff; | 424 | difftype = ctx.qry.has_difftype ? ctx.qry.difftype : ctx.cfg.difftype; |
425 | use_ssdiff = difftype == DIFF_SSDIFF; | ||
424 | 426 | ||
425 | if (show_ctrls) | 427 | if (show_ctrls) |
426 | cgit_print_diff_ctrls(); | 428 | 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, | |||
346 | html_url_arg(rev); | 346 | html_url_arg(rev); |
347 | delim = "&"; | 347 | delim = "&"; |
348 | } | 348 | } |
349 | if (ctx.qry.ssdiff) { | 349 | if (ctx.qry.difftype) { |
350 | html(delim); | 350 | html(delim); |
351 | html("ss=1"); | 351 | htmlf("dt=%d", ctx.qry.difftype); |
352 | delim = "&"; | 352 | delim = "&"; |
353 | } | 353 | } |
354 | if (ctx.qry.context > 0 && ctx.qry.context != 3) { | 354 | 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, | |||
402 | html_url_arg(old_rev); | 402 | html_url_arg(old_rev); |
403 | delim = "&"; | 403 | delim = "&"; |
404 | } | 404 | } |
405 | if (ctx.qry.ssdiff) { | 405 | if (ctx.qry.difftype) { |
406 | html(delim); | 406 | html(delim); |
407 | html("ss=1"); | 407 | htmlf("dt=%d", ctx.qry.difftype); |
408 | delim = "&"; | 408 | delim = "&"; |
409 | } | 409 | } |
410 | if (ctx.qry.context > 0 && ctx.qry.context != 3) { | 410 | if (ctx.qry.context > 0 && ctx.qry.context != 3) { |