From f2ced535e9f2c2ada7f184735a07a1190a9d810f Mon Sep 17 00:00:00 2001
From: Tim Chen <timchen1@gmail.com>
Date: Tue, 3 Jan 2012 16:02:14 +0000
Subject: 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.
---
 ui-diff.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'ui-diff.c')

diff --git a/ui-diff.c b/ui-diff.c
index 383a534..f8782df 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -372,8 +372,7 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefi
 		}
 	}
 
-	if ((ctx.qry.ssdiff && !ctx.cfg.ssdiff) || (!ctx.qry.ssdiff && ctx.cfg.ssdiff))
-		use_ssdiff = 1;
+	use_ssdiff = ctx.qry.has_ssdiff ? ctx.qry.ssdiff : ctx.cfg.ssdiff;
 
 	print_ssdiff_link();
 	cgit_print_diffstat(old_rev_sha1, new_rev_sha1, prefix);
-- 
cgit v1.2.3-2-g168b