]> git.cameronkatri.com Git - cgit.git/blobdiff - cgit.c
Merge branch 'lh/stats'
[cgit.git] / cgit.c
diff --git a/cgit.c b/cgit.c
index 57e11cdfb0b1095c2bd9b742a12f79793e4841a0..608cab658425e5c11270ac3d1690a842eec71891 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -159,6 +159,10 @@ static void querystring_cb(const char *name, const char *value)
                ctx.qry.name = xstrdup(value);
        } else if (!strcmp(name, "mimetype")) {
                ctx.qry.mimetype = xstrdup(value);
+       } else if (!strcmp(name, "s")){
+               ctx.qry.sort = xstrdup(value);
+       } else if (!strcmp(name, "showmsg")) {
+               ctx.qry.showmsg = atoi(value);
        } else if (!strcmp(name, "period")) {
                ctx.qry.period = xstrdup(value);
        }
@@ -297,7 +301,6 @@ static void process_request(void *cbdata)
        cmd = cgit_get_cmd(ctx);
        if (!cmd) {
                ctx->page.title = "cgit error";
-               ctx->repo = NULL;
                cgit_print_http_headers(ctx);
                cgit_print_docstart(ctx);
                cgit_print_pageheader(ctx);
@@ -443,28 +446,29 @@ int main(int argc, const char **argv)
        ctx.repo = NULL;
        http_parse_querystring(ctx.qry.raw, querystring_cb);
 
-       /* If virtual-root isn't specified in cgitrc and no url
-        * parameter is specified on the querystring, lets pretend
-        * that virtualroot equals SCRIPT_NAME and use PATH_INFO as
-        * url. This allows cgit to work with virtual urls without
-        * the need for rewriterules in the webserver (as long as
-        * PATH_INFO is included in the cache lookup key).
+       /* If virtual-root isn't specified in cgitrc, lets pretend
+        * that virtual-root equals SCRIPT_NAME.
         */
-       if (!ctx.cfg.virtual_root && !ctx.qry.url) {
+       if (!ctx.cfg.virtual_root)
                ctx.cfg.virtual_root = ctx.cfg.script_name;
-               path = getenv("PATH_INFO");
-               if (path) {
-                       if (path[0] == '/')
-                               path++;
-                       ctx.qry.url = xstrdup(path);
-                       if (ctx.qry.raw) {
-                               qry = ctx.qry.raw;
-                               ctx.qry.raw = xstrdup(fmt("%s?%s", path, qry));
-                               free(qry);
-                       } else
-                               ctx.qry.raw = ctx.qry.url;
-                       cgit_parse_url(ctx.qry.url);
-               }
+
+       /* If no url parameter is specified on the querystring, lets
+        * use PATH_INFO as url. This allows cgit to work with virtual
+        * urls without the need for rewriterules in the webserver (as
+        * long as PATH_INFO is included in the cache lookup key).
+        */
+       path = getenv("PATH_INFO");
+       if (!ctx.qry.url && path) {
+               if (path[0] == '/')
+                       path++;
+               ctx.qry.url = xstrdup(path);
+               if (ctx.qry.raw) {
+                       qry = ctx.qry.raw;
+                       ctx.qry.raw = xstrdup(fmt("%s?%s", path, qry));
+                       free(qry);
+               } else
+                       ctx.qry.raw = ctx.qry.url;
+               cgit_parse_url(ctx.qry.url);
        }
 
        ttl = calc_ttl();