aboutsummaryrefslogtreecommitdiff
path: root/ui-shared.c
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'ui-shared.c')
-rw-r--r--ui-shared.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 686fde0..9eb48a9 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -494,6 +494,21 @@ void cgit_diff_link(const char *name, const char *title, const char *class,
html_url_arg(old_rev);
delim = "&";
}
+ /*
+ * Emit the ref offsets after the refs so that they follow the
+ * refs through file-level links; a zero offset means the ref
+ * itself.
+ */
+ if (ctx.qry.idoff) {
+ html(delim);
+ htmlf("idoff=%d", ctx.qry.idoff);
+ delim = "&";
+ }
+ if (ctx.qry.id2off) {
+ html(delim);
+ htmlf("id2off=%d", ctx.qry.id2off);
+ delim = "&";
+ }
if (ctx.qry.difftype) {
html(delim);
htmlf("dt=%d", ctx.qry.difftype);
@@ -1051,6 +1066,10 @@ void cgit_add_hidden_formfields(int incl_head, int incl_search,
html_hidden("id", ctx.qry.oid);
if (ctx.qry.oid2)
html_hidden("id2", ctx.qry.oid2);
+ if (ctx.qry.idoff)
+ html_hidden("idoff", fmt("%d", ctx.qry.idoff));
+ if (ctx.qry.id2off)
+ html_hidden("id2off", fmt("%d", ctx.qry.id2off));
if (ctx.qry.showmsg)
html_hidden("showmsg", "1");