]> gitweb.ps.run Git - ps-cgit/blobdiff - cgit.c
ui-commit: Preserve path limit in links to commit page
[ps-cgit] / cgit.c
diff --git a/cgit.c b/cgit.c
index e46c00a48e9e97f78a38d41b87b1a98f088e941f..2c3ad73e064b556a23629194b9ca0a0a696186ee 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -260,7 +260,7 @@ char *xstrdupn(const char *str)
 
 static void prepare_context(struct cgit_context *ctx)
 {
-       memset(ctx, 0, sizeof(ctx));
+       memset(ctx, 0, sizeof(*ctx));
        ctx->cfg.agefile = "info/web/last-modified";
        ctx->cfg.nocache = 0;
        ctx->cfg.cache_size = 0;
@@ -424,6 +424,12 @@ static void process_request(void *cbdata)
                return;
        }
 
+       /* If cmd->want_vpath is set, assume ctx->qry.path contains a "virtual"
+        * in-project path limit to be made available at ctx->qry.vpath.
+        * Otherwise, no path limit is in effect (ctx->qry.vpath = NULL).
+        */
+       ctx->qry.vpath = cmd->want_vpath ? ctx->qry.path : NULL;
+
        if (cmd->want_repo && !ctx->repo) {
                cgit_print_http_headers(ctx);
                cgit_print_docstart(ctx);