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) { | 
