aboutsummaryrefslogtreecommitdiff
path: root/shared.c
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'shared.c')
-rw-r--r--shared.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/shared.c b/shared.c
index 67eb67b..539d533 100644
--- a/shared.c
+++ b/shared.c
@@ -40,6 +40,18 @@ void cgit_prepare_context(struct cgit_context *ctx)
ctx->page.filename = NULL;
}
+int cgit_get_cmd_index(const char *cmd)
+{
+ static char *cmds[] = {"log", "commit", "diff", "tree", "blob",
+ "snapshot", "tag", "refs", "patch", NULL};
+ int i;
+
+ for(i = 0; cmds[i]; i++)
+ if (!strcmp(cmd, cmds[i]))
+ return i + 1;
+ return 0;
+}
+
int chk_zero(int result, char *msg)
{
if (result != 0)
@@ -204,6 +216,7 @@ void cgit_querystring_cb(const char *name, const char *value)
ctx.repo = cgit_get_repoinfo(value);
} else if (!strcmp(name, "p")) {
ctx.qry.page = xstrdup(value);
+ cgit_cmd = cgit_get_cmd_index(value);
} else if (!strcmp(name, "url")) {
cgit_parse_url(value);
} else if (!strcmp(name, "qt")) {