]> granicus.if.org Git - cgit/commitdiff
Move global variables + callback functions into shared.c
authorLars Hjemli <hjemli@gmail.com>
Mon, 11 Dec 2006 16:25:41 +0000 (17:25 +0100)
committerLars Hjemli <hjemli@gmail.com>
Mon, 11 Dec 2006 16:25:51 +0000 (17:25 +0100)
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Makefile
cgit.c
cgit.h
shared.c [new file with mode: 0644]

index 4e532d0f948efc0a30b60e302ca103d9463007ae..c02963718f28bf5782379f76d9078a21e563d172 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,8 @@ INSTALL_CSS = /var/www/htdocs/cgit.css
 CACHE_ROOT = /var/cache/cgit
 
 EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto
-OBJECTS = cache.o parsing.o html.o ui-shared.o ui-repolist.o ui-summary.o \
-       ui-log.o ui-view.c
+OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \
+       ui-summary.o ui-log.o ui-view.c
 
 CFLAGS += -Wall
 
diff --git a/cgit.c b/cgit.c
index 52d9bd3acd505cd3e739b1c590813b11b1d050ac..d1abaa052135a8be8f0a13c0ccb9e7c53c4c8347 100644 (file)
--- a/cgit.c
+++ b/cgit.c
 
 const char cgit_version[] = CGIT_VERSION;
 
-int htmlfd = 0;
-
-char *cgit_root         = "/usr/src/git";
-char *cgit_root_title   = "Git repository browser";
-char *cgit_css          = "/cgit.css";
-char *cgit_logo         = "/git-logo.png";
-char *cgit_logo_link    = "http://www.kernel.org/pub/software/scm/git/docs/";
-char *cgit_virtual_root = NULL;
-
-char *cgit_cache_root   = "/var/cache/cgit";
-
-int cgit_max_lock_attempts     =  5;
-int cgit_cache_root_ttl        =  5;
-int cgit_cache_repo_ttl        =  5;
-int cgit_cache_dynamic_ttl     =  5;
-int cgit_cache_static_ttl      = -1;
-int cgit_cache_max_create_time =  5;
-
-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;
-
-char *cgit_querystring  = NULL;
-char *cgit_query_repo   = NULL;
-char *cgit_query_page   = NULL;
-char *cgit_query_head   = NULL;
-char *cgit_query_sha1   = NULL;
-
-struct cacheitem cacheitem;
-
-void cgit_global_config_cb(const char *name, const char *value)
-{
-       if (!strcmp(name, "root"))
-               cgit_root = xstrdup(value);
-       else if (!strcmp(name, "root-title"))
-               cgit_root_title = xstrdup(value);
-       else if (!strcmp(name, "css"))
-               cgit_css = xstrdup(value);
-       else if (!strcmp(name, "logo"))
-               cgit_logo = xstrdup(value);
-       else if (!strcmp(name, "logo-link"))
-               cgit_logo_link = xstrdup(value);
-       else if (!strcmp(name, "virtual-root"))
-               cgit_virtual_root = xstrdup(value);
-}
-
-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"))
-               cgit_query_repo = xstrdup(value);
-       else if (!strcmp(name, "p"))
-               cgit_query_page = xstrdup(value);
-       else if (!strcmp(name, "h")) {
-               cgit_query_head = xstrdup(value);
-               cgit_query_has_symref = 1;
-       } else if (!strcmp(name, "id")) {
-               cgit_query_sha1 = xstrdup(value);
-               cgit_query_has_sha1 = 1;
-       }
-}
-
 static void cgit_print_repo_page(struct cacheitem *item)
 {
        if (chdir(fmt("%s/%s", cgit_root, cgit_query_repo)) || 
@@ -120,7 +46,7 @@ static void cgit_fill_cache(struct cacheitem *item)
                cgit_print_repolist(item);
 }
 
-static void cgit_refresh_cache(struct cacheitem *item)
+static void cgit_check_cache(struct cacheitem *item)
 {
        int i = 0;
 
@@ -162,10 +88,13 @@ static void cgit_print_cache(struct cacheitem *item)
 
 int main(int argc, const char **argv)
 {
+       struct cacheitem item;
+
        cgit_read_config("/etc/cgitrc", cgit_global_config_cb);
        cgit_querystring = xstrdup(getenv("QUERY_STRING"));
        cgit_parse_query(cgit_querystring, cgit_querystring_cb);
-       cgit_refresh_cache(&cacheitem);
-       cgit_print_cache(&cacheitem);
+
+       cgit_check_cache(&item);
+       cgit_print_cache(&item);
        return 0;
 }
diff --git a/cgit.h b/cgit.h
index 9c7f0b4c2ac8f93e25bdc398a06a59817deecfad..c1dcc9716b743a608cf80163845cb73755682fec 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -47,6 +47,10 @@ extern char *cgit_query_sha1;
 
 extern int htmlfd;
 
+extern void cgit_global_config_cb(const char *name, const char *value);
+extern void cgit_repo_config_cb(const char *name, const char *value);
+extern void cgit_querystring_cb(const char *name, const char *value);
+
 extern char *fmt(const char *format,...);
 
 extern void html(const char *txt);
@@ -79,7 +83,4 @@ extern void cgit_print_summary();
 extern void cgit_print_log(const char *tip, int ofs, int cnt);
 extern void cgit_print_view(char *hex);
 
-extern void cgit_repo_config_cb(const char *name, const char *value);
-
-
 #endif /* CGIT_H */
diff --git a/shared.c b/shared.c
new file mode 100644 (file)
index 0000000..c58a2ff
--- /dev/null
+++ b/shared.c
@@ -0,0 +1,74 @@
+#include "cgit.h"
+
+char *cgit_root         = "/usr/src/git";
+char *cgit_root_title   = "Git repository browser";
+char *cgit_css          = "/cgit.css";
+char *cgit_logo         = "/git-logo.png";
+char *cgit_logo_link    = "http://www.kernel.org/pub/software/scm/git/docs/";
+char *cgit_virtual_root = NULL;
+
+char *cgit_cache_root   = "/var/cache/cgit";
+
+int cgit_max_lock_attempts     =  5;
+int cgit_cache_root_ttl        =  5;
+int cgit_cache_repo_ttl        =  5;
+int cgit_cache_dynamic_ttl     =  5;
+int cgit_cache_static_ttl      = -1;
+int cgit_cache_max_create_time =  5;
+
+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;
+
+char *cgit_querystring  = NULL;
+char *cgit_query_repo   = NULL;
+char *cgit_query_page   = NULL;
+char *cgit_query_head   = NULL;
+char *cgit_query_sha1   = NULL;
+
+int htmlfd = 0;
+
+void cgit_global_config_cb(const char *name, const char *value)
+{
+       if (!strcmp(name, "root"))
+               cgit_root = xstrdup(value);
+       else if (!strcmp(name, "root-title"))
+               cgit_root_title = xstrdup(value);
+       else if (!strcmp(name, "css"))
+               cgit_css = xstrdup(value);
+       else if (!strcmp(name, "logo"))
+               cgit_logo = xstrdup(value);
+       else if (!strcmp(name, "logo-link"))
+               cgit_logo_link = xstrdup(value);
+       else if (!strcmp(name, "virtual-root"))
+               cgit_virtual_root = xstrdup(value);
+}
+
+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"))
+               cgit_query_repo = xstrdup(value);
+       else if (!strcmp(name, "p"))
+               cgit_query_page = xstrdup(value);
+       else if (!strcmp(name, "h")) {
+               cgit_query_head = xstrdup(value);
+               cgit_query_has_symref = 1;
+       } else if (!strcmp(name, "id")) {
+               cgit_query_sha1 = xstrdup(value);
+               cgit_query_has_sha1 = 1;
+       }
+}
+