diff options
| -rw-r--r-- | cgit.c | 4 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | cgitrc.5.txt | 10 | ||||
| -rw-r--r-- | shared.c | 1 | ||||
| -rw-r--r-- | ui-commit.c | 12 | 
5 files changed, 24 insertions, 5 deletions
| @@ -62,6 +62,8 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)  		repo->enable_log_linecount = ctx.cfg.enable_log_linecount * atoi(value);  	else if (!strcmp(name, "enable-remote-branches"))  		repo->enable_remote_branches = atoi(value); +	else if (!strcmp(name, "enable-subject-links")) +		repo->enable_subject_links = atoi(value);  	else if (!strcmp(name, "max-stats"))  		repo->max_stats = cgit_find_stats_period(value, NULL);  	else if (!strcmp(name, "module-link")) @@ -141,6 +143,8 @@ void config_cb(const char *name, const char *value)  		ctx.cfg.enable_log_linecount = atoi(value);  	else if (!strcmp(name, "enable-remote-branches"))  		ctx.cfg.enable_remote_branches = atoi(value); +	else if (!strcmp(name, "enable-subject-links")) +		ctx.cfg.enable_subject_links = atoi(value);  	else if (!strcmp(name, "enable-tree-linenumbers"))  		ctx.cfg.enable_tree_linenumbers = atoi(value);  	else if (!strcmp(name, "max-stats")) @@ -73,6 +73,7 @@ struct cgit_repo {  	int enable_log_filecount;  	int enable_log_linecount;  	int enable_remote_branches; +	int enable_subject_links;  	int max_stats;  	time_t mtime;  	struct cgit_filter *about_filter; @@ -181,6 +182,7 @@ struct cgit_config {  	int enable_log_filecount;  	int enable_log_linecount;  	int enable_remote_branches; +	int enable_subject_links;  	int enable_tree_linenumbers;  	int local_time;  	int max_repo_count; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index d74d9e7..fcd4308 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -115,6 +115,12 @@ enable-remote-branches::  	in the summary and refs views. Default value: "0". See also:  	"repo.enable-remote-branches". +enable-subject-links:: +	Flag which, when set to "1", will make cgit use the subject of the +	parent commit as link text when generating links to parent commits +	in commit view. Default value: "0". See also: +	"repo.enable-subject-links". +  enable-tree-linenumbers::  	Flag which, when set to "1", will make cgit generate linenumber links  	for plaintext blobs printed in the tree view. Default value: "1". @@ -321,6 +327,10 @@ repo.enable-remote-branches::  	Flag which, when set to "1", will make cgit display remote branches  	in the summary and refs views. Default value: <enable-remote-branches>. +repo.enable-subject-links:: +	A flag which can be used to override the global setting +	`enable-subject-links'. Default value: none. +  repo.max-stats::  	Override the default maximum statistics period. Valid values are equal  	to the values specified for the global "max-stats" setting. Default @@ -60,6 +60,7 @@ struct cgit_repo *cgit_add_repo(const char *url)  	ret->enable_log_filecount = ctx.cfg.enable_log_filecount;  	ret->enable_log_linecount = ctx.cfg.enable_log_linecount;  	ret->enable_remote_branches = ctx.cfg.enable_remote_branches; +	ret->enable_subject_links = ctx.cfg.enable_subject_links;  	ret->max_stats = ctx.cfg.max_stats;  	ret->module_link = ctx.cfg.module_link;  	ret->readme = NULL; diff --git a/ui-commit.c b/ui-commit.c index 4d4970f..41313b9 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -18,7 +18,7 @@ void cgit_print_commit(char *hex)  	struct commitinfo *info, *parent_info;  	struct commit_list *p;  	unsigned char sha1[20]; -	char *tmp; +	char *tmp, *tmp2;  	int parents = 0;  	if (!hex) @@ -82,10 +82,12 @@ void cgit_print_commit(char *hex)  		}  		html("<tr><th>parent</th>"  		     "<td colspan='2' class='sha1'>"); -		parent_info = cgit_parse_commit(parent); -		tmp = sha1_to_hex(p->item->object.sha1); -		cgit_commit_link(parent_info->subject, NULL, NULL, -				 ctx.qry.head, tmp, 0); +		tmp = tmp2 = sha1_to_hex(p->item->object.sha1); +		if (ctx.repo->enable_subject_links) { +			parent_info = cgit_parse_commit(parent); +			tmp2 = parent_info->subject; +		} +		cgit_commit_link(tmp2, NULL, NULL, ctx.qry.head, tmp, 0);  		html(" (");  		cgit_diff_link("diff", NULL, NULL, ctx.qry.head, hex,  			       sha1_to_hex(p->item->object.sha1), NULL, 0); | 
