]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-shared.c
Add support for 'section-from-path' option
[ps-cgit] / ui-shared.c
index 372b9e7758b016c4f1420aade0e5a31b2a4c982a..ae29615a32d04ac8c3e933815e61b64543fdecee 100644 (file)
@@ -341,6 +341,18 @@ 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 = "&";
+       }
+       if (ctx.qry.ignorews) {
+               html(delim);
+               html("ignorews=1");
+               delim = "&";
        }
        html("'>");
        html_txt(name);
@@ -382,6 +394,18 @@ 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 = "&";
+       }
+       if (ctx.qry.ignorews) {
+               html(delim);
+               html("ignorews=1");
+               delim = "&";
        }
        html("'>");
        html_txt(name);
@@ -790,16 +814,17 @@ void cgit_print_pageheader(struct cgit_context *ctx)
                cgit_refs_link("refs", NULL, hc(ctx, "refs"), ctx->qry.head,
                               ctx->qry.sha1, NULL);
                cgit_log_link("log", NULL, hc(ctx, "log"), ctx->qry.head,
-                             NULL, NULL, 0, NULL, NULL, ctx->qry.showmsg);
+                             NULL, ctx->qry.vpath, 0, NULL, NULL,
+                             ctx->qry.showmsg);
                cgit_tree_link("tree", NULL, hc(ctx, "tree"), ctx->qry.head,
-                              ctx->qry.sha1, NULL);
+                              ctx->qry.sha1, ctx->qry.vpath);
                cgit_commit_link("commit", NULL, hc(ctx, "commit"),
-                                ctx->qry.head, ctx->qry.sha1, NULL, 0);
+                                ctx->qry.head, ctx->qry.sha1, ctx->qry.vpath, 0);
                cgit_diff_link("diff", NULL, hc(ctx, "diff"), ctx->qry.head,
-                              ctx->qry.sha1, ctx->qry.sha2, NULL, 0);
+                              ctx->qry.sha1, ctx->qry.sha2, ctx->qry.vpath, 0);
                if (ctx->repo->max_stats)
                        cgit_stats_link("stats", NULL, hc(ctx, "stats"),
-                                       ctx->qry.head, NULL);
+                                       ctx->qry.head, ctx->qry.vpath);
                if (ctx->repo->readme)
                        reporevlink("about", "about", NULL,
                                    hc(ctx, "about"), ctx->qry.head, NULL,
@@ -815,6 +840,7 @@ void cgit_print_pageheader(struct cgit_context *ctx)
                html_option("grep", "log msg", ctx->qry.grep);
                html_option("author", "author", ctx->qry.grep);
                html_option("committer", "committer", ctx->qry.grep);
+               html_option("range", "range", ctx->qry.grep);
                html("</select>\n");
                html("<input class='txt' type='text' size='10' name='q' value='");
                html_attr(ctx->qry.search);