1 /* shared.c: global vars + some callback functions
3 * Copyright (C) 2006 Lars Hjemli
5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text)
11 char *cgit_root
= "/usr/src/git";
12 char *cgit_root_title
= "Git repository browser";
13 char *cgit_css
= "/cgit.css";
14 char *cgit_logo
= "/git-logo.png";
15 char *cgit_logo_link
= "http://www.kernel.org/pub/software/scm/git/docs/";
16 char *cgit_virtual_root
= NULL
;
18 char *cgit_cache_root
= "/var/cache/cgit";
21 int cgit_max_lock_attempts
= 5;
22 int cgit_cache_root_ttl
= 5;
23 int cgit_cache_repo_ttl
= 5;
24 int cgit_cache_dynamic_ttl
= 5;
25 int cgit_cache_static_ttl
= -1;
26 int cgit_cache_max_create_time
= 5;
28 char *cgit_repo_name
= NULL
;
29 char *cgit_repo_desc
= NULL
;
30 char *cgit_repo_owner
= NULL
;
32 int cgit_query_has_symref
= 0;
33 int cgit_query_has_sha1
= 0;
35 char *cgit_querystring
= NULL
;
36 char *cgit_query_repo
= NULL
;
37 char *cgit_query_page
= NULL
;
38 char *cgit_query_head
= NULL
;
39 char *cgit_query_search
= NULL
;
40 char *cgit_query_sha1
= NULL
;
41 char *cgit_query_sha2
= NULL
;
42 int cgit_query_ofs
= 0;
46 void cgit_global_config_cb(const char *name
, const char *value
)
48 if (!strcmp(name
, "root"))
49 cgit_root
= xstrdup(value
);
50 else if (!strcmp(name
, "root-title"))
51 cgit_root_title
= xstrdup(value
);
52 else if (!strcmp(name
, "css"))
53 cgit_css
= xstrdup(value
);
54 else if (!strcmp(name
, "logo"))
55 cgit_logo
= xstrdup(value
);
56 else if (!strcmp(name
, "logo-link"))
57 cgit_logo_link
= xstrdup(value
);
58 else if (!strcmp(name
, "virtual-root"))
59 cgit_virtual_root
= xstrdup(value
);
60 else if (!strcmp(name
, "nocache"))
61 cgit_nocache
= atoi(value
);
62 else if (!strcmp(name
, "cache-root"))
63 cgit_cache_root
= xstrdup(value
);
64 else if (!strcmp(name
, "cache-root-ttl"))
65 cgit_cache_root_ttl
= atoi(value
);
66 else if (!strcmp(name
, "cache-repo-ttl"))
67 cgit_cache_repo_ttl
= atoi(value
);
68 else if (!strcmp(name
, "cache-static-ttl"))
69 cgit_cache_static_ttl
= atoi(value
);
70 else if (!strcmp(name
, "cache-dynamic-ttl"))
71 cgit_cache_dynamic_ttl
= atoi(value
);
74 void cgit_repo_config_cb(const char *name
, const char *value
)
76 if (!strcmp(name
, "name"))
77 cgit_repo_name
= xstrdup(value
);
78 else if (!strcmp(name
, "desc"))
79 cgit_repo_desc
= xstrdup(value
);
80 else if (!strcmp(name
, "owner"))
81 cgit_repo_owner
= xstrdup(value
);
84 void cgit_querystring_cb(const char *name
, const char *value
)
86 if (!strcmp(name
,"r")) {
87 cgit_query_repo
= xstrdup(value
);
88 } else if (!strcmp(name
, "p")) {
89 cgit_query_page
= xstrdup(value
);
90 } else if (!strcmp(name
, "q")) {
91 cgit_query_search
= xstrdup(value
);
92 } else if (!strcmp(name
, "h")) {
93 cgit_query_head
= xstrdup(value
);
94 cgit_query_has_symref
= 1;
95 } else if (!strcmp(name
, "id")) {
96 cgit_query_sha1
= xstrdup(value
);
97 cgit_query_has_sha1
= 1;
98 } else if (!strcmp(name
, "id2")) {
99 cgit_query_sha2
= xstrdup(value
);
100 cgit_query_has_sha1
= 1;
101 } else if (!strcmp(name
, "ofs")) {
102 cgit_query_ofs
= atoi(value
);
106 void *cgit_free_commitinfo(struct commitinfo
*info
)
109 free(info
->author_email
);
110 free(info
->committer
);
111 free(info
->committer_email
);
119 if (c
>= 'a' && c
<= 'f')
121 else if (c
>= 'A' && c
<= 'F')
123 else if (c
>= '0' && c
<= '9')