author | Ragnar Ouchterlony <ragnar@lysator.liu.se> | 2009-09-14 18:19:02 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-09-16 18:17:56 (UTC) |
commit | c358aa3dfebf4fc1f3005dd960aa5c1c020eed76 (patch) (unidiff) | |
tree | 475fa421d673b270c7d1bde872b96425abfafce8 /cgit.c | |
parent | 40e174d5364910750413d94b5417e57d108190ef (diff) | |
download | cgit-c358aa3dfebf4fc1f3005dd960aa5c1c020eed76.zip cgit-c358aa3dfebf4fc1f3005dd960aa5c1c020eed76.tar.gz cgit-c358aa3dfebf4fc1f3005dd960aa5c1c020eed76.tar.bz2 |
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>
-rw-r--r-- | cgit.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -179,12 +179,14 @@ void config_cb(const char *name, const char *value) | |||
179 | else if (!strcmp(name, "summary-log")) | 179 | else if (!strcmp(name, "summary-log")) |
180 | ctx.cfg.summary_log = atoi(value); | 180 | ctx.cfg.summary_log = atoi(value); |
181 | else if (!strcmp(name, "summary-branches")) | 181 | else if (!strcmp(name, "summary-branches")) |
182 | ctx.cfg.summary_branches = atoi(value); | 182 | ctx.cfg.summary_branches = atoi(value); |
183 | else if (!strcmp(name, "summary-tags")) | 183 | else if (!strcmp(name, "summary-tags")) |
184 | ctx.cfg.summary_tags = atoi(value); | 184 | ctx.cfg.summary_tags = atoi(value); |
185 | else if (!strcmp(name, "side-by-side-diffs")) | ||
186 | ctx.cfg.ssdiff = atoi(value); | ||
185 | else if (!strcmp(name, "agefile")) | 187 | else if (!strcmp(name, "agefile")) |
186 | ctx.cfg.agefile = xstrdup(value); | 188 | ctx.cfg.agefile = xstrdup(value); |
187 | else if (!strcmp(name, "renamelimit")) | 189 | else if (!strcmp(name, "renamelimit")) |
188 | ctx.cfg.renamelimit = atoi(value); | 190 | ctx.cfg.renamelimit = atoi(value); |
189 | else if (!strcmp(name, "robots")) | 191 | else if (!strcmp(name, "robots")) |
190 | ctx.cfg.robots = xstrdup(value); | 192 | ctx.cfg.robots = xstrdup(value); |
@@ -235,12 +237,14 @@ static void querystring_cb(const char *name, const char *value) | |||
235 | } else if (!strcmp(name, "s")){ | 237 | } else if (!strcmp(name, "s")){ |
236 | ctx.qry.sort = xstrdup(value); | 238 | ctx.qry.sort = xstrdup(value); |
237 | } else if (!strcmp(name, "showmsg")) { | 239 | } else if (!strcmp(name, "showmsg")) { |
238 | ctx.qry.showmsg = atoi(value); | 240 | ctx.qry.showmsg = atoi(value); |
239 | } else if (!strcmp(name, "period")) { | 241 | } else if (!strcmp(name, "period")) { |
240 | ctx.qry.period = xstrdup(value); | 242 | ctx.qry.period = xstrdup(value); |
243 | } else if (!strcmp(name, "ss")) { | ||
244 | ctx.qry.ssdiff = atoi(value); | ||
241 | } | 245 | } |
242 | } | 246 | } |
243 | 247 | ||
244 | char *xstrdupn(const char *str) | 248 | char *xstrdupn(const char *str) |
245 | { | 249 | { |
246 | return (str ? xstrdup(str) : NULL); | 250 | return (str ? xstrdup(str) : NULL); |
@@ -276,12 +280,13 @@ static void prepare_context(struct cgit_context *ctx) | |||
276 | ctx->cfg.root_desc = "a fast webinterface for the git dscm"; | 280 | ctx->cfg.root_desc = "a fast webinterface for the git dscm"; |
277 | ctx->cfg.script_name = CGIT_SCRIPT_NAME; | 281 | ctx->cfg.script_name = CGIT_SCRIPT_NAME; |
278 | ctx->cfg.section = ""; | 282 | ctx->cfg.section = ""; |
279 | ctx->cfg.summary_branches = 10; | 283 | ctx->cfg.summary_branches = 10; |
280 | ctx->cfg.summary_log = 10; | 284 | ctx->cfg.summary_log = 10; |
281 | ctx->cfg.summary_tags = 10; | 285 | ctx->cfg.summary_tags = 10; |
286 | ctx->cfg.ssdiff = 0; | ||
282 | ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG")); | 287 | ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG")); |
283 | ctx->env.http_host = xstrdupn(getenv("HTTP_HOST")); | 288 | ctx->env.http_host = xstrdupn(getenv("HTTP_HOST")); |
284 | ctx->env.https = xstrdupn(getenv("HTTPS")); | 289 | ctx->env.https = xstrdupn(getenv("HTTPS")); |
285 | ctx->env.no_http = xstrdupn(getenv("NO_HTTP")); | 290 | ctx->env.no_http = xstrdupn(getenv("NO_HTTP")); |
286 | ctx->env.path_info = xstrdupn(getenv("PATH_INFO")); | 291 | ctx->env.path_info = xstrdupn(getenv("PATH_INFO")); |
287 | ctx->env.query_string = xstrdupn(getenv("QUERY_STRING")); | 292 | ctx->env.query_string = xstrdupn(getenv("QUERY_STRING")); |