struct cgit_cmd: Differentiate between various usages of ctx.qry.path

For many commands/pages (e.g. 'tree', 'diff', 'plain', etc.), the
ctx.qry.path argument is interpreted as a path within the "virtual" project
directory structure. However, for some other commands (notably 'refs', and
the clone-related commands) ctx.qry.path is used in a different context (as
a more or less "real" path within the '.git' directory).

This patch differentiates between these two usages of ctx.qry.path, by
introducing a new variable - ctx.qry.vpath - which is equal to ctx.qry.path
in the former case, and NULL in the latter.

This will become useful in future patches when we want various pages and the
links between them to preserve existing in-project paths.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Johan Herland
2010-06-10 01:09:26 +02:00
committed by Lars Hjemli
szülő 0e34c6d1ef
commit 0ff143df70
4 fájl változott, egészen pontosan 30 új sor hozzáadva és 22 régi sor törölve

6
cgit.c
Fájl megtekintése

@@ -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);