diff options
| -rw-r--r-- | ui-diff.c | 10 | ||||
| -rw-r--r-- | ui-shared.c | 14 | 
2 files changed, 23 insertions, 1 deletions
| @@ -156,13 +156,21 @@ static void inspect_filepair(struct diff_filepair *pair)  void cgit_print_diffstat(const unsigned char *old_sha1,  			 const unsigned char *new_sha1, const char *prefix)  { -	int i; +	int i, save_context = ctx.qry.context;  	html("<div class='diffstat-header'>");  	cgit_diff_link("Diffstat", NULL, NULL, ctx.qry.head, ctx.qry.sha1,  		       ctx.qry.sha2, NULL, 0);  	if (prefix)  		htmlf(" (limited to '%s')", prefix); +	html(" ("); +	ctx.qry.context = (save_context > 0 ? save_context : 3) << 1; +	cgit_self_link("more", NULL, NULL, &ctx); +	html("/"); +	ctx.qry.context = (save_context > 3 ? save_context : 3) >> 1; +	cgit_self_link("less", NULL, NULL, &ctx); +	ctx.qry.context = save_context; +	html(" context)");  	html("</div>");  	html("<table summary='diffstat' class='diffstat'>");  	max_changes = 0; diff --git a/ui-shared.c b/ui-shared.c index e991799..c99bcec 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -341,6 +341,13 @@ void cgit_commit_link(char *name, const char *title, const char *class,  	if ((ctx.qry.ssdiff && !toggle_ssdiff) || (!ctx.qry.ssdiff && toggle_ssdiff)) {  		html(delim);  		html("ss=1"); +		delim = "&"; +	} +	if (ctx.qry.context > 0 && ctx.qry.context != 3) { +		html(delim); +		html("context="); +		htmlf("%d", ctx.qry.context); +		delim = "&";  	}  	html("'>");  	html_txt(name); @@ -382,6 +389,13 @@ void cgit_diff_link(const char *name, const char *title, const char *class,  	if ((ctx.qry.ssdiff && !toggle_ssdiff) || (!ctx.qry.ssdiff && toggle_ssdiff)) {  		html(delim);  		html("ss=1"); +		delim = "&"; +	} +	if (ctx.qry.context > 0 && ctx.qry.context != 3) { +		html(delim); +		html("context="); +		htmlf("%d", ctx.qry.context); +		delim = "&";  	}  	html("'>");  	html_txt(name); | 
