summaryrefslogtreecommitdiffabout
path: root/cgit.c
authorLars Hjemli <hjemli@gmail.com>2006-12-10 21:41:14 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2006-12-10 21:41:14 (UTC)
commit7640d90b73c01b16bb04ce4c541f52cbaae5f82a (patch) (unidiff)
treea0ec3e5222dbb0cff965487def39f5781e5cb231 /cgit.c
parent25105d7ecaba474d4b7c364ebb586aac3dfc5abb (diff)
downloadcgit-7640d90b73c01b16bb04ce4c541f52cbaae5f82a.zip
cgit-7640d90b73c01b16bb04ce4c541f52cbaae5f82a.tar.gz
cgit-7640d90b73c01b16bb04ce4c541f52cbaae5f82a.tar.bz2
Add license file and copyright notices
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 09c857c..808ffe9 100644
--- a/cgit.c
+++ b/cgit.c
@@ -1,96 +1,104 @@
1/* cgit.c: cgi for the git scm
2 *
3 * Copyright (C) 2006 Lars Hjemli
4 *
5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text)
7 */
8
1#include "cgit.h" 9#include "cgit.h"
2 10
3static const char cgit_doctype[] = 11static const char cgit_doctype[] =
4"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n" 12"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n"
5" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; 13" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
6 14
7static const char cgit_error[] = 15static const char cgit_error[] =
8"<div class='error'>%s</div>"; 16"<div class='error'>%s</div>";
9 17
10static const char cgit_lib_error[] = 18static const char cgit_lib_error[] =
11"<div class='error'>%s: %s</div>"; 19"<div class='error'>%s: %s</div>";
12 20
13int htmlfd = 0; 21int htmlfd = 0;
14 22
15char *cgit_root = "/usr/src/git"; 23char *cgit_root = "/usr/src/git";
16char *cgit_root_title = "Git repository browser"; 24char *cgit_root_title = "Git repository browser";
17char *cgit_css = "/cgit.css"; 25char *cgit_css = "/cgit.css";
18char *cgit_logo = "/git-logo.png"; 26char *cgit_logo = "/git-logo.png";
19char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; 27char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/";
20char *cgit_virtual_root = NULL; 28char *cgit_virtual_root = NULL;
21 29
22char *cgit_cache_root = "/var/cache/cgit"; 30char *cgit_cache_root = "/var/cache/cgit";
23 31
24int cgit_cache_root_ttl = 5; 32int cgit_cache_root_ttl = 5;
25int cgit_cache_repo_ttl = 5; 33int cgit_cache_repo_ttl = 5;
26int cgit_cache_dynamic_ttl = 5; 34int cgit_cache_dynamic_ttl = 5;
27int cgit_cache_static_ttl = -1; 35int cgit_cache_static_ttl = -1;
28int cgit_cache_max_create_time = 5; 36int cgit_cache_max_create_time = 5;
29 37
30char *cgit_repo_name = NULL; 38char *cgit_repo_name = NULL;
31char *cgit_repo_desc = NULL; 39char *cgit_repo_desc = NULL;
32char *cgit_repo_owner = NULL; 40char *cgit_repo_owner = NULL;
33 41
34int cgit_query_has_symref = 0; 42int cgit_query_has_symref = 0;
35int cgit_query_has_sha1 = 0; 43int cgit_query_has_sha1 = 0;
36 44
37char *cgit_querystring = NULL; 45char *cgit_querystring = NULL;
38char *cgit_query_repo = NULL; 46char *cgit_query_repo = NULL;
39char *cgit_query_page = NULL; 47char *cgit_query_page = NULL;
40char *cgit_query_head = NULL; 48char *cgit_query_head = NULL;
41char *cgit_query_sha1 = NULL; 49char *cgit_query_sha1 = NULL;
42 50
43struct cacheitem cacheitem; 51struct cacheitem cacheitem;
44 52
45int cgit_parse_query(char *txt, configfn fn) 53int cgit_parse_query(char *txt, configfn fn)
46{ 54{
47 char *t, *value = NULL, c; 55 char *t, *value = NULL, c;
48 56
49 if (!txt) 57 if (!txt)
50 return 0; 58 return 0;
51 59
52 t = txt = xstrdup(txt); 60 t = txt = xstrdup(txt);
53 61
54 while((c=*t) != '\0') { 62 while((c=*t) != '\0') {
55 if (c=='=') { 63 if (c=='=') {
56 *t = '\0'; 64 *t = '\0';
57 value = t+1; 65 value = t+1;
58 } else if (c=='&') { 66 } else if (c=='&') {
59 *t = '\0'; 67 *t = '\0';
60 (*fn)(txt, value); 68 (*fn)(txt, value);
61 txt = t+1; 69 txt = t+1;
62 value = NULL; 70 value = NULL;
63 } 71 }
64 t++; 72 t++;
65 } 73 }
66 if (t!=txt) 74 if (t!=txt)
67 (*fn)(txt, value); 75 (*fn)(txt, value);
68 return 0; 76 return 0;
69} 77}
70 78
71void cgit_global_config_cb(const char *name, const char *value) 79void cgit_global_config_cb(const char *name, const char *value)
72{ 80{
73 if (!strcmp(name, "root")) 81 if (!strcmp(name, "root"))
74 cgit_root = xstrdup(value); 82 cgit_root = xstrdup(value);
75 else if (!strcmp(name, "root-title")) 83 else if (!strcmp(name, "root-title"))
76 cgit_root_title = xstrdup(value); 84 cgit_root_title = xstrdup(value);
77 else if (!strcmp(name, "css")) 85 else if (!strcmp(name, "css"))
78 cgit_css = xstrdup(value); 86 cgit_css = xstrdup(value);
79 else if (!strcmp(name, "logo")) 87 else if (!strcmp(name, "logo"))
80 cgit_logo = xstrdup(value); 88 cgit_logo = xstrdup(value);
81 else if (!strcmp(name, "logo-link")) 89 else if (!strcmp(name, "logo-link"))
82 cgit_logo_link = xstrdup(value); 90 cgit_logo_link = xstrdup(value);
83 else if (!strcmp(name, "virtual-root")) 91 else if (!strcmp(name, "virtual-root"))
84 cgit_virtual_root = xstrdup(value); 92 cgit_virtual_root = xstrdup(value);
85} 93}
86 94
87void cgit_repo_config_cb(const char *name, const char *value) 95void cgit_repo_config_cb(const char *name, const char *value)
88{ 96{
89 if (!strcmp(name, "name")) 97 if (!strcmp(name, "name"))
90 cgit_repo_name = xstrdup(value); 98 cgit_repo_name = xstrdup(value);
91 else if (!strcmp(name, "desc")) 99 else if (!strcmp(name, "desc"))
92 cgit_repo_desc = xstrdup(value); 100 cgit_repo_desc = xstrdup(value);
93 else if (!strcmp(name, "owner")) 101 else if (!strcmp(name, "owner"))
94 cgit_repo_owner = xstrdup(value); 102 cgit_repo_owner = xstrdup(value);
95} 103}
96 104