X-Git-Url: https://git.cameronkatri.com/cgit.git/blobdiff_plain/30ccdcaa74ebc0aab2b7843b0db8251d0ddf56de..b65aa5d16fb5466da39594fc557b776706404998:/parsing.c diff --git a/parsing.c b/parsing.c index a028625..2c05c09 100644 --- a/parsing.c +++ b/parsing.c @@ -167,7 +167,8 @@ void cgit_parse_url(const char *url) p = strchr(cmd + 1, '/'); if (p) { p[0] = '\0'; - cgit_query_path = xstrdup(p + 1); + if (p[1]) + cgit_query_path = trim_end(p + 1, '/'); } cgit_cmd = cgit_get_cmd_index(cmd + 1); cgit_query_page = xstrdup(cmd + 1); @@ -199,6 +200,9 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) ret->subject = NULL; ret->msg = NULL; + if (p == NULL) + return ret; + if (strncmp(p, "tree ", 5)) die("Bad commit: %s", sha1_to_hex(commit->object.sha1)); else @@ -233,14 +237,19 @@ struct commitinfo *cgit_parse_commit(struct commit *commit) p = strchr(p, '\n') + 1; t = strchr(p, '\n'); - if (t && *t) { - ret->subject = substr(p, t); + if (t) { + if (*t == '\0') + ret->subject = strdup("** empty **"); + else + ret->subject = substr(p, t); p = t + 1; while (*p == '\n') p = strchr(p, '\n') + 1; ret->msg = p; - } + } else + ret->subject = substr(p, p+strlen(p)); + return ret; }