summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-diff.c10
-rw-r--r--ui-shared.c14
2 files changed, 23 insertions, 1 deletions
diff --git a/ui-diff.c b/ui-diff.c
index d3a3b2c..e0a72f7 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -157,5 +157,5 @@ 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'>");
@@ -164,4 +164,12 @@ void cgit_print_diffstat(const unsigned char *old_sha1,
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'>");
diff --git a/ui-shared.c b/ui-shared.c
index e991799..c99bcec 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -342,4 +342,11 @@ void cgit_commit_link(char *name, const char *title, const char *class,
html(delim);
html("ss=1");
+ delim = "&amp;";
+ }
+ if (ctx.qry.context > 0 && ctx.qry.context != 3) {
+ html(delim);
+ html("context=");
+ htmlf("%d", ctx.qry.context);
+ delim = "&amp;";
}
html("'>");
@@ -383,4 +390,11 @@ void cgit_diff_link(const char *name, const char *title, const char *class,
html(delim);
html("ss=1");
+ delim = "&amp;";
+ }
+ if (ctx.qry.context > 0 && ctx.qry.context != 3) {
+ html(delim);
+ html("context=");
+ htmlf("%d", ctx.qry.context);
+ delim = "&amp;";
}
html("'>");