about summary refs log tree commit diff
path: root/cgit.c
diff options
context:
space:
mode:
authorRagnar Ouchterlony <ragnar@lysator.liu.se>2009-09-14 20:19:02 +0200
committerLars Hjemli <hjemli@gmail.com>2009-09-16 20:17:56 +0200
commitc358aa3dfebf4fc1f3005dd960aa5c1c020eed76 (patch)
tree475fa421d673b270c7d1bde872b96425abfafce8 /cgit.c
parentFirst version of side-by-side diff. (diff)
downloadcgit-pink-c358aa3dfebf4fc1f3005dd960aa5c1c020eed76.tar.gz
cgit-pink-c358aa3dfebf4fc1f3005dd960aa5c1c020eed76.zip
Add possibility to switch between unidiff and side-by-side-diff.
A new config option side-by-side-diffs added, defaulting to 0,
meaning unidiff. Also a query option (ss) is used toggle this.

In the commit page you can switch between the two diff formats by
clicking on the link on the "commit"-row, to the right of (patch).

In the diff page you can switch by using the link at the start
of the page.

All commit-links and diff-links will remember the choice.

Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.c')
-rw-r--r--cgit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index bd37788..ff678fb 100644
--- a/cgit.c
+++ b/cgit.c
@@ -182,6 +182,8 @@ void config_cb(const char *name, const char *value)
 		ctx.cfg.summary_branches = atoi(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);
 	else if (!strcmp(name, "agefile"))
 		ctx.cfg.agefile = xstrdup(value);
 	else if (!strcmp(name, "renamelimit"))
@@ -238,6 +240,8 @@ 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, "ss")) {
+		ctx.qry.ssdiff = atoi(value);
 	}
 }
 
@@ -279,6 +283,7 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->cfg.summary_branches = 10;
 	ctx->cfg.summary_log = 10;
 	ctx->cfg.summary_tags = 10;
+	ctx->cfg.ssdiff = 0;
 	ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG"));
 	ctx->env.http_host = xstrdupn(getenv("HTTP_HOST"));
 	ctx->env.https = xstrdupn(getenv("HTTPS"));