X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/36bdb2171f7154fcdf1a24d38c8ce3bd7e448cb1..dcb16f0d11305b4d7cb6357c5c0e21ad67f69871:/parsing.c diff --git a/parsing.c b/parsing.c index d740d38..5b4b1f4 100644 --- a/parsing.c +++ b/parsing.c @@ -1,4 +1,4 @@ -/* config.c: parsing of config files +/* parsing.c: parsing of config files * * Copyright (C) 2006-2014 cgit Development Team * @@ -17,7 +17,8 @@ */ void cgit_parse_url(const char *url) { - char *cmd, *p; + char *c, *cmd, *p; + struct cgit_repo *repo; ctx.repo = NULL; if (!url || url[0] == '\0') @@ -29,16 +30,20 @@ void cgit_parse_url(const char *url) return; } - cmd = strchr(url, '/'); - while (!ctx.repo && cmd) { - cmd[0] = '\0'; - ctx.repo = cgit_get_repoinfo(url); - if (ctx.repo == NULL) { - cmd[0] = '/'; - cmd = strchr(cmd + 1, '/'); - continue; + cmd = NULL; + c = strchr(url, '/'); + while (c) { + c[0] = '\0'; + repo = cgit_get_repoinfo(url); + if (repo) { + ctx.repo = repo; + cmd = c; } + c[0] = '/'; + c = strchr(c + 1, '/'); + } + if (ctx.repo) { ctx.qry.repo = ctx.repo->url; p = strchr(cmd + 1, '/'); if (p) { @@ -156,7 +161,7 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) } if (p && !prefixcmp(p, "committer ")) { - p = parse_user(p + 9, &ret->committer, &ret->committer_email, + p = parse_user(p + 10, &ret->committer, &ret->committer_email, &ret->committer_date); }