about summary refs log tree commit diff
path: root/shared.c
diff options
context:
space:
mode:
Diffstat (limited to 'shared.c')
-rw-r--r--shared.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/shared.c b/shared.c
index 84aa281..f063894 100644
--- a/shared.c
+++ b/shared.c
@@ -26,6 +26,8 @@ char *cgit_virtual_root = NULL;
 char *cgit_script_name  = CGIT_SCRIPT_NAME;
 char *cgit_cache_root   = CGIT_CACHE_ROOT;
 char *cgit_repo_group   = NULL;
+char *cgit_robots       = "index, nofollow";
+char *cgit_clone_prefix = NULL;
 
 int cgit_nocache               =  0;
 int cgit_snapshots             =  0;
@@ -68,7 +70,7 @@ int htmlfd = 0;
 int cgit_get_cmd_index(const char *cmd)
 {
 	static char *cmds[] = {"log", "commit", "diff", "tree", "blob",
-			       "snapshot", "tag", "refs", NULL};
+			       "snapshot", "tag", "refs", "patch", NULL};
 	int i;
 
 	for(i = 0; cmds[i]; i++)
@@ -197,6 +199,10 @@ void cgit_global_config_cb(const char *name, const char *value)
 		cgit_agefile = xstrdup(value);
 	else if (!strcmp(name, "renamelimit"))
 		cgit_renamelimit = atoi(value);
+	else if (!strcmp(name, "robots"))
+		cgit_robots = xstrdup(value);
+	else if (!strcmp(name, "clone-prefix"))
+		cgit_clone_prefix = xstrdup(value);
 	else if (!strcmp(name, "repo.group"))
 		cgit_repo_group = xstrdup(value);
 	else if (!strcmp(name, "repo.url"))
@@ -205,6 +211,8 @@ void cgit_global_config_cb(const char *name, const char *value)
 		cgit_repo->name = xstrdup(value);
 	else if (cgit_repo && !strcmp(name, "repo.path"))
 		cgit_repo->path = trim_end(value, '/');
+	else if (cgit_repo && !strcmp(name, "repo.clone-url"))
+		cgit_repo->clone_url = xstrdup(value);
 	else if (cgit_repo && !strcmp(name, "repo.desc"))
 		cgit_repo->desc = xstrdup(value);
 	else if (cgit_repo && !strcmp(name, "repo.owner"))
@@ -267,6 +275,8 @@ void *cgit_free_commitinfo(struct commitinfo *info)
 	free(info->committer);
 	free(info->committer_email);
 	free(info->subject);
+	free(info->msg);
+	free(info->msg_encoding);
 	free(info);
 	return NULL;
 }
@@ -482,7 +492,7 @@ void cgit_diff_tree(const unsigned char *old_sha1,
 	opt.output_format = DIFF_FORMAT_CALLBACK;
 	opt.detect_rename = 1;
 	opt.rename_limit = cgit_renamelimit;
-	opt.recursive = 1;
+	DIFF_OPT_SET(&opt, RECURSIVE);
 	opt.format_callback = cgit_diff_tree_cb;
 	opt.format_callback_data = fn;
 	if (prefix) {