diff options
author | Tim Chen <timchen1@gmail.com> | 2012-01-04 01:02:14 (JST) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2012-01-04 01:02:14 (JST) |
commit | f2ced535e9f2c2ada7f184735a07a1190a9d810f (patch) | |
tree | 0272646e2e0124737d637c0d5e7a858b4ba8f003 | |
parent | 0b6a716d1b9f18e8cc00940a7962e542b9358238 (diff) | |
download | cgit-f2ced535e9f2c2ada7f184735a07a1190a9d810f.zip cgit-f2ced535e9f2c2ada7f184735a07a1190a9d810f.tar.gz |
Fix diff mode switching when side-by-side-diffs=1
When side-by-side-diffs=1 was set in cgitrc, specyfing 'ss=0' in the query-
string would not switch to unified diffs. This patch fixes the issue by
introducing a separate variable to track the occurrence of "ss" in the
querystring.
-rw-r--r-- | cgit.c | 1 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | ui-diff.c | 3 |
3 files changed, 3 insertions, 2 deletions
@@ -281,6 +281,7 @@ static void querystring_cb(const char *name, const char *value) | |||
281 | ctx.qry.period = xstrdup(value); | 281 | ctx.qry.period = xstrdup(value); |
282 | } else if (!strcmp(name, "ss")) { | 282 | } else if (!strcmp(name, "ss")) { |
283 | ctx.qry.ssdiff = atoi(value); | 283 | ctx.qry.ssdiff = atoi(value); |
284 | ctx.qry.has_ssdiff = 1; | ||
284 | } else if (!strcmp(name, "all")) { | 285 | } else if (!strcmp(name, "all")) { |
285 | ctx.qry.show_all = atoi(value); | 286 | ctx.qry.show_all = atoi(value); |
286 | } else if (!strcmp(name, "context")) { | 287 | } else if (!strcmp(name, "context")) { |
@@ -133,6 +133,7 @@ struct reflist { | |||
133 | struct cgit_query { | 133 | struct cgit_query { |
134 | int has_symref; | 134 | int has_symref; |
135 | int has_sha1; | 135 | int has_sha1; |
136 | int has_ssdiff; | ||
136 | char *raw; | 137 | char *raw; |
137 | char *repo; | 138 | char *repo; |
138 | char *page; | 139 | char *page; |
@@ -372,8 +372,7 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefi | |||
372 | } | 372 | } |
373 | } | 373 | } |
374 | 374 | ||
375 | if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff)) | 375 | use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff; |
376 | use_ssdiff = 1; | ||
377 | 376 | ||
378 | print_ssdiff_link(); | 377 | print_ssdiff_link(); |
379 | cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix); | 378 | cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix); |