|
diff --git a/cgit.c b/cgit.c index bd37788..ff678fb 100644 --- a/ cgit.c+++ b/ cgit.c |
|
@@ -173,24 +173,26 @@ void config_cb(const char *name, const char *value) |
173 | if (!ctx.cfg.nocache && ctx.cfg.cache_size) |
173 | if (!ctx.cfg.nocache && ctx.cfg.cache_size) |
174 | process_cached_repolist(value); |
174 | process_cached_repolist(value); |
175 | else |
175 | else |
176 | scan_tree(value, repo_config); |
176 | scan_tree(value, repo_config); |
177 | else if (!strcmp(name, "source-filter")) |
177 | else if (!strcmp(name, "source-filter")) |
178 | ctx.cfg.source_filter = new_filter(value, 1); |
178 | ctx.cfg.source_filter = new_filter(value, 1); |
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); |
191 | else if (!strcmp(name, "clone-prefix")) |
193 | else if (!strcmp(name, "clone-prefix")) |
192 | ctx.cfg.clone_prefix = xstrdup(value); |
194 | ctx.cfg.clone_prefix = xstrdup(value); |
193 | else if (!strcmp(name, "local-time")) |
195 | else if (!strcmp(name, "local-time")) |
194 | ctx.cfg.local_time = atoi(value); |
196 | ctx.cfg.local_time = atoi(value); |
195 | else if (!prefixcmp(name, "mimetype.")) |
197 | else if (!prefixcmp(name, "mimetype.")) |
196 | add_mimetype(name + 9, value); |
198 | add_mimetype(name + 9, value); |
@@ -229,24 +231,26 @@ static void querystring_cb(const char *name, const char *value) |
229 | } else if (!strcmp(name, "path")) { |
231 | } else if (!strcmp(name, "path")) { |
230 | ctx.qry.path = trim_end(value, '/'); |
232 | ctx.qry.path = trim_end(value, '/'); |
231 | } else if (!strcmp(name, "name")) { |
233 | } else if (!strcmp(name, "name")) { |
232 | ctx.qry.name = xstrdup(value); |
234 | ctx.qry.name = xstrdup(value); |
233 | } else if (!strcmp(name, "mimetype")) { |
235 | } else if (!strcmp(name, "mimetype")) { |
234 | ctx.qry.mimetype = xstrdup(value); |
236 | ctx.qry.mimetype = xstrdup(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); |
247 | } |
251 | } |
248 | |
252 | |
249 | static void prepare_context(struct cgit_context *ctx) |
253 | static void prepare_context(struct cgit_context *ctx) |
250 | { |
254 | { |
251 | memset(ctx, 0, sizeof(ctx)); |
255 | memset(ctx, 0, sizeof(ctx)); |
252 | ctx->cfg.agefile = "info/web/last-modified"; |
256 | ctx->cfg.agefile = "info/web/last-modified"; |
@@ -270,24 +274,25 @@ static void prepare_context(struct cgit_context *ctx) |
270 | ctx->cfg.max_repodesc_len = 80; |
274 | ctx->cfg.max_repodesc_len = 80; |
271 | ctx->cfg.max_stats = 0; |
275 | ctx->cfg.max_stats = 0; |
272 | ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s"; |
276 | ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s"; |
273 | ctx->cfg.renamelimit = -1; |
277 | ctx->cfg.renamelimit = -1; |
274 | ctx->cfg.robots = "index, nofollow"; |
278 | ctx->cfg.robots = "index, nofollow"; |
275 | ctx->cfg.root_title = "Git repository browser"; |
279 | ctx->cfg.root_title = "Git repository browser"; |
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")); |
288 | ctx->env.request_method = xstrdupn(getenv("REQUEST_METHOD")); |
293 | ctx->env.request_method = xstrdupn(getenv("REQUEST_METHOD")); |
289 | ctx->env.script_name = xstrdupn(getenv("SCRIPT_NAME")); |
294 | ctx->env.script_name = xstrdupn(getenv("SCRIPT_NAME")); |
290 | ctx->env.server_name = xstrdupn(getenv("SERVER_NAME")); |
295 | ctx->env.server_name = xstrdupn(getenv("SERVER_NAME")); |
291 | ctx->env.server_port = xstrdupn(getenv("SERVER_PORT")); |
296 | ctx->env.server_port = xstrdupn(getenv("SERVER_PORT")); |
292 | ctx->page.mimetype = "text/html"; |
297 | ctx->page.mimetype = "text/html"; |
293 | ctx->page.charset = PAGE_ENCODING; |
298 | ctx->page.charset = PAGE_ENCODING; |
|