diff options
Diffstat (limited to '')
| -rw-r--r-- | ui-summary.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/ui-summary.c b/ui-summary.c index abf914e..ffad4f2 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -98,6 +98,7 @@ void cgit_print_summary()  void cgit_print_repo_readme(char *path)  {  	char *slash, *tmp, *colon, *ref; +	int free_filename = 0;  	if (!ctx.repo->readme || !(*ctx.repo->readme))  		return; @@ -134,6 +135,7 @@ void cgit_print_repo_readme(char *path)  				return;  			slash = colon;  		} +		free_filename = 1;  		tmp = xmalloc(slash - ctx.repo->readme + 1 + strlen(path) + 1);  		strncpy(tmp, ctx.repo->readme, slash - ctx.repo->readme + 1);  		strcpy(tmp + (slash - ctx.repo->readme + 1), path); @@ -144,13 +146,19 @@ void cgit_print_repo_readme(char *path)  	 * filesystem, while applying the about-filter.  	 */  	html("<div id='summary'>"); -	if (ctx.repo->about_filter) +	if (ctx.repo->about_filter) { +		ctx.repo->about_filter->argv[1] = tmp;  		cgit_open_filter(ctx.repo->about_filter); +	}  	if (ref)  		cgit_print_file(tmp, ref);  	else  		html_include(tmp); -	if (ctx.repo->about_filter) +	if (ctx.repo->about_filter) {  		cgit_close_filter(ctx.repo->about_filter); +		ctx.repo->about_filter->argv[1] = NULL; +	}  	html("</div>"); +	if (free_filename) +		free(tmp);  } | 
