diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2011-05-23 23:28:38 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2011-05-23 23:28:38 +0200 | 
| commit | ab350a77b1d3b0e251cc28329f2e16f0566e521e (patch) | |
| tree | 1af2b0760858fcd87ce1e628465f9b60af7815e3 /cgit.c | |
| parent | Merge branch 'stable' (diff) | |
| parent | shared.c: use execvp() to execute filter commands (diff) | |
| download | cgit-ab350a77b1d3b0e251cc28329f2e16f0566e521e.tar.gz cgit-ab350a77b1d3b0e251cc28329f2e16f0566e521e.tar.bz2 cgit-ab350a77b1d3b0e251cc28329f2e16f0566e521e.zip | |
Merge branch 'fh/filter-api'
Conflicts:
	cgit.c
Diffstat (limited to '')
| -rw-r--r-- | cgit.c | 27 | 
1 files changed, 20 insertions, 7 deletions
| @@ -26,14 +26,27 @@ void add_mimetype(const char *name, const char *value)  	item->util = xstrdup(value);  } -struct cgit_filter *new_filter(const char *cmd, int extra_args) +struct cgit_filter *new_filter(const char *cmd, filter_type filtertype)  {  	struct cgit_filter *f;  	int args_size = 0; +	int extra_args;  	if (!cmd || !cmd[0])  		return NULL; +	switch (filtertype) { +		case SOURCE: +			extra_args = 1; +			break; + +		case ABOUT: +		case COMMIT: +		default: +			extra_args = 0; +			break; +	} +  	f = xmalloc(sizeof(struct cgit_filter));  	f->cmd = xstrdup(cmd);  	args_size = (2 + extra_args) * sizeof(char *); @@ -83,11 +96,11 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)  		repo->logo_link = xstrdup(value);  	else if (ctx.cfg.enable_filter_overrides) {  		if (!strcmp(name, "about-filter")) -			repo->about_filter = new_filter(value, 0); +			repo->about_filter = new_filter(value, ABOUT);  		else if (!strcmp(name, "commit-filter")) -			repo->commit_filter = new_filter(value, 0); +			repo->commit_filter = new_filter(value, COMMIT);  		else if (!strcmp(name, "source-filter")) -			repo->source_filter = new_filter(value, 1); +			repo->source_filter = new_filter(value, SOURCE);  	}  } @@ -180,9 +193,9 @@ void config_cb(const char *name, const char *value)  	else if (!strcmp(name, "cache-dynamic-ttl"))  		ctx.cfg.cache_dynamic_ttl = atoi(value);  	else if (!strcmp(name, "about-filter")) -		ctx.cfg.about_filter = new_filter(value, 0); +		ctx.cfg.about_filter = new_filter(value, ABOUT);  	else if (!strcmp(name, "commit-filter")) -		ctx.cfg.commit_filter = new_filter(value, 0); +		ctx.cfg.commit_filter = new_filter(value, COMMIT);  	else if (!strcmp(name, "embedded"))  		ctx.cfg.embedded = atoi(value);  	else if (!strcmp(name, "max-atom-items")) @@ -212,7 +225,7 @@ void config_cb(const char *name, const char *value)  	else if (!strcmp(name, "section-from-path"))  		ctx.cfg.section_from_path = atoi(value);  	else if (!strcmp(name, "source-filter")) -		ctx.cfg.source_filter = new_filter(value, 1); +		ctx.cfg.source_filter = new_filter(value, SOURCE);  	else if (!strcmp(name, "summary-log"))  		ctx.cfg.summary_log = atoi(value);  	else if (!strcmp(name, "summary-branches")) | 
