]> gitweb.ps.run Git - ps-cgit/commitdiff
Enable default value for head parameter
authorLars Hjemli <hjemli@gmail.com>
Tue, 15 May 2007 22:14:51 +0000 (00:14 +0200)
committerLars Hjemli <hjemli@gmail.com>
Tue, 15 May 2007 22:16:00 +0000 (00:16 +0200)
Pages which expect head to be specified in the querystring can now be
given a default value, configurable per repository (via repo.defbranch,
which defaults to "master").

Currently, only the log page actually works without parameters, but the
defbranch is bound to be exploited.

This also removes some dead code from shared.c

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.c
cgit.h
shared.c

diff --git a/cgit.c b/cgit.c
index 3c11ff0a8f9021a20bf20771a617c7c53ebe6aac..b282a67d17bd24e7bf16610e5c7ce48b775c7e70 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -65,6 +65,9 @@ static void cgit_print_repo_page(struct cacheitem *item)
        char *title;
        int show_search;
 
+       if (!cgit_query_head)
+               cgit_query_head = cgit_repo->defbranch;
+
        if (chdir(cgit_repo->path)) {
                title = fmt("%s - %s", cgit_root_title, "Bad request");
                cgit_print_docstart(title, item);
diff --git a/cgit.h b/cgit.h
index f5906ad5ba8762de364caa6ced99810a6f8bd170..ac710a6d2a74fa6feb20d8cff918070ac38a4464 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -35,6 +35,7 @@ struct repoinfo {
        char *path;
        char *desc;
        char *owner;
+       char *defbranch;
        char *module_link;
        int snapshots;
 };
index 8505397a60c63e0f67f6ba4763f56d12f261459e..a1e1acd7dda0bc5f254a9c1d0a5e21848003a71a 100644 (file)
--- a/shared.c
+++ b/shared.c
@@ -32,10 +32,6 @@ int cgit_cache_max_create_time =  5;
 int cgit_max_msg_len = 60;
 int cgit_max_commit_count = 50;
 
-char *cgit_repo_name    = NULL;
-char *cgit_repo_desc    = NULL;
-char *cgit_repo_owner   = NULL;
-
 int cgit_query_has_symref = 0;
 int cgit_query_has_sha1   = 0;
 
@@ -86,6 +82,7 @@ struct repoinfo *add_repo(const char *url)
        ret->path = NULL;
        ret->desc = NULL;
        ret->owner = NULL;
+       ret->defbranch = "master";
        ret->snapshots = cgit_snapshots;
        ret->module_link = cgit_module_link;
        return ret;
@@ -133,6 +130,8 @@ void cgit_global_config_cb(const char *name, const char *value)
                cgit_repo->desc = xstrdup(value);
        else if (cgit_repo && !strcmp(name, "repo.owner"))
                cgit_repo->owner = xstrdup(value);
+       else if (cgit_repo && !strcmp(name, "repo.defbranch"))
+               cgit_repo->defbranch = xstrdup(value);
        else if (cgit_repo && !strcmp(name, "repo.snapshots"))
                cgit_repo->snapshots = atoi(value);
        else if (cgit_repo && !strcmp(name, "repo.module-link"))
@@ -141,16 +140,6 @@ void cgit_global_config_cb(const char *name, const char *value)
                cgit_read_config(value, cgit_global_config_cb);
 }
 
-void cgit_repo_config_cb(const char *name, const char *value)
-{
-       if (!strcmp(name, "name"))
-               cgit_repo_name = xstrdup(value);
-       else if (!strcmp(name, "desc"))
-               cgit_repo_desc = xstrdup(value);
-       else if (!strcmp(name, "owner"))
-               cgit_repo_owner = xstrdup(value);
-}
-
 void cgit_querystring_cb(const char *name, const char *value)
 {
        if (!strcmp(name,"r")) {