summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2007-05-13 15:15:06 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-05-13 15:15:06 (UTC)
commitc6cf3a424a0860d69b290254d9b19d35527b2d27 (patch) (unidiff)
tree2874f2c42e907cba1187ae32ee686daebc2de59e
parent80e577c3ef2a73becabff7e9c9c242f317a87de9 (diff)
downloadcgit-c6cf3a424a0860d69b290254d9b19d35527b2d27.zip
cgit-c6cf3a424a0860d69b290254d9b19d35527b2d27.tar.gz
cgit-c6cf3a424a0860d69b290254d9b19d35527b2d27.tar.bz2
Add max-commit-count parameter to cgitrc
This enabled customizing number of commits shown per page in log view. It also changes the default from 100 to 50, mainly due to the more cpu intensive log pages (number of files/lines changed) but also since 100 log messages requires excessive scrolling. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c4
-rw-r--r--cgit.h1
-rw-r--r--cgitrc4
-rw-r--r--shared.c3
4 files changed, 10 insertions, 2 deletions
diff --git a/cgit.c b/cgit.c
index 28bab8d..aee7ba3 100644
--- a/cgit.c
+++ b/cgit.c
@@ -78,66 +78,66 @@ static void cgit_print_repo_page(struct cacheitem *item)
78 title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc); 78 title = fmt("%s - %s", cgit_repo->name, cgit_repo->desc);
79 show_search = 0; 79 show_search = 0;
80 setenv("GIT_DIR", cgit_repo->path, 1); 80 setenv("GIT_DIR", cgit_repo->path, 1);
81 81
82 if (cgit_query_page) { 82 if (cgit_query_page) {
83 if (cgit_repo->snapshots && !strcmp(cgit_query_page, "snapshot")) { 83 if (cgit_repo->snapshots && !strcmp(cgit_query_page, "snapshot")) {
84 cgit_print_snapshot(item, cgit_query_sha1, "zip", 84 cgit_print_snapshot(item, cgit_query_sha1, "zip",
85 cgit_repo->url, cgit_query_name); 85 cgit_repo->url, cgit_query_name);
86 return; 86 return;
87 } 87 }
88 if (!strcmp(cgit_query_page, "blob")) { 88 if (!strcmp(cgit_query_page, "blob")) {
89 cgit_print_blob(item, cgit_query_sha1, cgit_query_path); 89 cgit_print_blob(item, cgit_query_sha1, cgit_query_path);
90 return; 90 return;
91 } 91 }
92 } 92 }
93 93
94 if (cgit_query_page && !strcmp(cgit_query_page, "log")) 94 if (cgit_query_page && !strcmp(cgit_query_page, "log"))
95 show_search = 1; 95 show_search = 1;
96 96
97 cgit_print_docstart(title, item); 97 cgit_print_docstart(title, item);
98 98
99 99
100 if (!cgit_query_page) { 100 if (!cgit_query_page) {
101 cgit_print_pageheader("summary", show_search); 101 cgit_print_pageheader("summary", show_search);
102 cgit_print_summary(); 102 cgit_print_summary();
103 cgit_print_docend(); 103 cgit_print_docend();
104 return; 104 return;
105 } 105 }
106 106
107 cgit_print_pageheader(cgit_query_page, show_search); 107 cgit_print_pageheader(cgit_query_page, show_search);
108 108
109 if (!strcmp(cgit_query_page, "log")) { 109 if (!strcmp(cgit_query_page, "log")) {
110 cgit_print_log(cgit_query_head, cgit_query_ofs, 100, 110 cgit_print_log(cgit_query_head, cgit_query_ofs,
111 cgit_query_search); 111 cgit_max_commit_count, cgit_query_search);
112 } else if (!strcmp(cgit_query_page, "tree")) { 112 } else if (!strcmp(cgit_query_page, "tree")) {
113 cgit_print_tree(cgit_query_sha1, cgit_query_path); 113 cgit_print_tree(cgit_query_sha1, cgit_query_path);
114 } else if (!strcmp(cgit_query_page, "commit")) { 114 } else if (!strcmp(cgit_query_page, "commit")) {
115 cgit_print_commit(cgit_query_sha1); 115 cgit_print_commit(cgit_query_sha1);
116 } else if (!strcmp(cgit_query_page, "view")) { 116 } else if (!strcmp(cgit_query_page, "view")) {
117 cgit_print_view(cgit_query_sha1, cgit_query_path); 117 cgit_print_view(cgit_query_sha1, cgit_query_path);
118 } else if (!strcmp(cgit_query_page, "diff")) { 118 } else if (!strcmp(cgit_query_page, "diff")) {
119 cgit_print_diff(cgit_query_sha1, cgit_query_sha2); 119 cgit_print_diff(cgit_query_sha1, cgit_query_sha2);
120 } else { 120 } else {
121 cgit_print_error("Invalid request"); 121 cgit_print_error("Invalid request");
122 } 122 }
123 cgit_print_docend(); 123 cgit_print_docend();
124} 124}
125 125
126static void cgit_fill_cache(struct cacheitem *item, int use_cache) 126static void cgit_fill_cache(struct cacheitem *item, int use_cache)
127{ 127{
128 static char buf[PATH_MAX]; 128 static char buf[PATH_MAX];
129 int stdout2; 129 int stdout2;
130 130
131 getcwd(buf, sizeof(buf)); 131 getcwd(buf, sizeof(buf));
132 item->st.st_mtime = time(NULL); 132 item->st.st_mtime = time(NULL);
133 133
134 if (use_cache) { 134 if (use_cache) {
135 stdout2 = chk_positive(dup(STDOUT_FILENO), 135 stdout2 = chk_positive(dup(STDOUT_FILENO),
136 "Preserving STDOUT"); 136 "Preserving STDOUT");
137 chk_zero(close(STDOUT_FILENO), "Closing STDOUT"); 137 chk_zero(close(STDOUT_FILENO), "Closing STDOUT");
138 chk_positive(dup2(item->fd, STDOUT_FILENO), "Dup2(cachefile)"); 138 chk_positive(dup2(item->fd, STDOUT_FILENO), "Dup2(cachefile)");
139 } 139 }
140 140
141 if (cgit_query_repo) 141 if (cgit_query_repo)
142 cgit_print_repo_page(item); 142 cgit_print_repo_page(item);
143 else 143 else
diff --git a/cgit.h b/cgit.h
index 43de375..46f3173 100644
--- a/cgit.h
+++ b/cgit.h
@@ -58,64 +58,65 @@ struct commitinfo {
58}; 58};
59 59
60struct taginfo { 60struct taginfo {
61 char *tagger; 61 char *tagger;
62 char *tagger_email; 62 char *tagger_email;
63 int tagger_date; 63 int tagger_date;
64 char *msg; 64 char *msg;
65}; 65};
66 66
67extern const char cgit_version[]; 67extern const char cgit_version[];
68 68
69extern struct repolist cgit_repolist; 69extern struct repolist cgit_repolist;
70extern struct repoinfo *cgit_repo; 70extern struct repoinfo *cgit_repo;
71 71
72extern char *cgit_root_title; 72extern char *cgit_root_title;
73extern char *cgit_css; 73extern char *cgit_css;
74extern char *cgit_logo; 74extern char *cgit_logo;
75extern char *cgit_logo_link; 75extern char *cgit_logo_link;
76extern char *cgit_module_link; 76extern char *cgit_module_link;
77extern char *cgit_virtual_root; 77extern char *cgit_virtual_root;
78extern char *cgit_cache_root; 78extern char *cgit_cache_root;
79 79
80extern int cgit_nocache; 80extern int cgit_nocache;
81extern int cgit_snapshots; 81extern int cgit_snapshots;
82extern int cgit_max_lock_attempts; 82extern int cgit_max_lock_attempts;
83extern int cgit_cache_root_ttl; 83extern int cgit_cache_root_ttl;
84extern int cgit_cache_repo_ttl; 84extern int cgit_cache_repo_ttl;
85extern int cgit_cache_dynamic_ttl; 85extern int cgit_cache_dynamic_ttl;
86extern int cgit_cache_static_ttl; 86extern int cgit_cache_static_ttl;
87extern int cgit_cache_max_create_time; 87extern int cgit_cache_max_create_time;
88 88
89extern int cgit_max_msg_len; 89extern int cgit_max_msg_len;
90extern int cgit_max_commit_count;
90 91
91extern char *cgit_repo_name; 92extern char *cgit_repo_name;
92extern char *cgit_repo_desc; 93extern char *cgit_repo_desc;
93extern char *cgit_repo_owner; 94extern char *cgit_repo_owner;
94 95
95extern int cgit_query_has_symref; 96extern int cgit_query_has_symref;
96extern int cgit_query_has_sha1; 97extern int cgit_query_has_sha1;
97 98
98extern char *cgit_querystring; 99extern char *cgit_querystring;
99extern char *cgit_query_repo; 100extern char *cgit_query_repo;
100extern char *cgit_query_page; 101extern char *cgit_query_page;
101extern char *cgit_query_search; 102extern char *cgit_query_search;
102extern char *cgit_query_head; 103extern char *cgit_query_head;
103extern char *cgit_query_sha1; 104extern char *cgit_query_sha1;
104extern char *cgit_query_sha2; 105extern char *cgit_query_sha2;
105extern char *cgit_query_path; 106extern char *cgit_query_path;
106extern char *cgit_query_name; 107extern char *cgit_query_name;
107extern int cgit_query_ofs; 108extern int cgit_query_ofs;
108 109
109extern int htmlfd; 110extern int htmlfd;
110 111
111extern void cgit_global_config_cb(const char *name, const char *value); 112extern void cgit_global_config_cb(const char *name, const char *value);
112extern void cgit_repo_config_cb(const char *name, const char *value); 113extern void cgit_repo_config_cb(const char *name, const char *value);
113extern void cgit_querystring_cb(const char *name, const char *value); 114extern void cgit_querystring_cb(const char *name, const char *value);
114 115
115extern int chk_zero(int result, char *msg); 116extern int chk_zero(int result, char *msg);
116extern int chk_positive(int result, char *msg); 117extern int chk_positive(int result, char *msg);
117 118
118extern int hextoint(char c); 119extern int hextoint(char c);
119 120
120extern void *cgit_free_commitinfo(struct commitinfo *info); 121extern void *cgit_free_commitinfo(struct commitinfo *info);
121 122
diff --git a/cgitrc b/cgitrc
index f217b39..019781e 100644
--- a/cgitrc
+++ b/cgitrc
@@ -26,64 +26,68 @@
26## RewriteRule ^/git/$ /cgit/cgit.cgi [L,QSA] 26## RewriteRule ^/git/$ /cgit/cgit.cgi [L,QSA]
27## RewriteRule ^/git/([^/]+)/$ /cgit/cgit.cgi?r=$1 [L,QSA] 27## RewriteRule ^/git/([^/]+)/$ /cgit/cgit.cgi?r=$1 [L,QSA]
28## RewriteRule ^/git/([^/]+)/([^/]+)/$ /cgit/cgit.cgi?r=$1&p=$2 [L,QSA] 28## RewriteRule ^/git/([^/]+)/([^/]+)/$ /cgit/cgit.cgi?r=$1&p=$2 [L,QSA]
29## 29##
30## This setting is disabled by default. 30## This setting is disabled by default.
31#virtual-root=/git 31#virtual-root=/git
32 32
33 33
34## Set the title printed on the root page 34## Set the title printed on the root page
35#root-title=Git repository browser 35#root-title=Git repository browser
36 36
37 37
38## Link to css file 38## Link to css file
39#css=/cgit/cgit.css 39#css=/cgit/cgit.css
40 40
41 41
42## Link to logo file 42## Link to logo file
43#logo=/cgit/git-logo.png 43#logo=/cgit/git-logo.png
44 44
45 45
46## Url loaded when clicking the logo 46## Url loaded when clicking the logo
47#logo-link=http://www.kernel.org/pub/software/scm/git/docs/ 47#logo-link=http://www.kernel.org/pub/software/scm/git/docs/
48 48
49 49
50## Url loaded when clicking a submodule link 50## Url loaded when clicking a submodule link
51#module-link=./?repo=%s&page=commit&id=%s 51#module-link=./?repo=%s&page=commit&id=%s
52 52
53 53
54## Number of chars shown of commit subject message (in log view) 54## Number of chars shown of commit subject message (in log view)
55#max-message-length=60 55#max-message-length=60
56 56
57 57
58## Number of commits per page in log view
59#max-commit-count=50
60
61
58## Root of cached output 62## Root of cached output
59#cache-root=/var/cache/cgit 63#cache-root=/var/cache/cgit
60 64
61 65
62## 66##
63## Time-To-Live settings: specifies how long (in minutes) different pages 67## Time-To-Live settings: specifies how long (in minutes) different pages
64## should be cached (0 for instant expiration, -1 for immortal pages) 68## should be cached (0 for instant expiration, -1 for immortal pages)
65## 69##
66 70
67## ttl for root page 71## ttl for root page
68#cache-root-ttl=5 72#cache-root-ttl=5
69 73
70## ttl for repo summary page 74## ttl for repo summary page
71#cache-repo-ttl=5 75#cache-repo-ttl=5
72 76
73## ttl for other dynamic pages 77## ttl for other dynamic pages
74#cache-dynamic-ttl=5 78#cache-dynamic-ttl=5
75 79
76## ttl for static pages (addressed by SHA-1) 80## ttl for static pages (addressed by SHA-1)
77#cache-static-ttl=-1 81#cache-static-ttl=-1
78 82
79 83
80 84
81## Example repository entry. Required values are repo.url and repo.path (each 85## Example repository entry. Required values are repo.url and repo.path (each
82## repository section must start with repo.url). 86## repository section must start with repo.url).
83#repo.url=cgit 87#repo.url=cgit
84#repo.name=cgit 88#repo.name=cgit
85#repo.desc=the caching cgi for git 89#repo.desc=the caching cgi for git
86#repo.path=/pub/git/cgit 90#repo.path=/pub/git/cgit
87#repo.owner=Lars Hjemli 91#repo.owner=Lars Hjemli
88 #repo.snapshots=1 # override a sitewide snapshot-setting 92 #repo.snapshots=1 # override a sitewide snapshot-setting
89 #repo.module-link=/git/%s/commit/?id=%s # override the standard module-link 93 #repo.module-link=/git/%s/commit/?id=%s # override the standard module-link
diff --git a/shared.c b/shared.c
index 801f68d..ffecac8 100644
--- a/shared.c
+++ b/shared.c
@@ -1,64 +1,65 @@
1/* shared.c: global vars + some callback functions 1/* shared.c: global vars + some callback functions
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10 10
11struct repolist cgit_repolist; 11struct repolist cgit_repolist;
12struct repoinfo *cgit_repo; 12struct repoinfo *cgit_repo;
13 13
14char *cgit_root_title = "Git repository browser"; 14char *cgit_root_title = "Git repository browser";
15char *cgit_css = "/cgit.css"; 15char *cgit_css = "/cgit.css";
16char *cgit_logo = "/git-logo.png"; 16char *cgit_logo = "/git-logo.png";
17char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; 17char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/";
18char *cgit_module_link = "./?repo=%s&page=commit&id=%s"; 18char *cgit_module_link = "./?repo=%s&page=commit&id=%s";
19char *cgit_virtual_root = NULL; 19char *cgit_virtual_root = NULL;
20 20
21char *cgit_cache_root = "/var/cache/cgit"; 21char *cgit_cache_root = "/var/cache/cgit";
22 22
23int cgit_nocache = 0; 23int cgit_nocache = 0;
24int cgit_snapshots = 0; 24int cgit_snapshots = 0;
25int cgit_max_lock_attempts = 5; 25int cgit_max_lock_attempts = 5;
26int cgit_cache_root_ttl = 5; 26int cgit_cache_root_ttl = 5;
27int cgit_cache_repo_ttl = 5; 27int cgit_cache_repo_ttl = 5;
28int cgit_cache_dynamic_ttl = 5; 28int cgit_cache_dynamic_ttl = 5;
29int cgit_cache_static_ttl = -1; 29int cgit_cache_static_ttl = -1;
30int cgit_cache_max_create_time = 5; 30int cgit_cache_max_create_time = 5;
31 31
32int cgit_max_msg_len = 60; 32int cgit_max_msg_len = 60;
33int cgit_max_commit_count = 50;
33 34
34char *cgit_repo_name = NULL; 35char *cgit_repo_name = NULL;
35char *cgit_repo_desc = NULL; 36char *cgit_repo_desc = NULL;
36char *cgit_repo_owner = NULL; 37char *cgit_repo_owner = NULL;
37 38
38int cgit_query_has_symref = 0; 39int cgit_query_has_symref = 0;
39int cgit_query_has_sha1 = 0; 40int cgit_query_has_sha1 = 0;
40 41
41char *cgit_querystring = NULL; 42char *cgit_querystring = NULL;
42char *cgit_query_repo = NULL; 43char *cgit_query_repo = NULL;
43char *cgit_query_page = NULL; 44char *cgit_query_page = NULL;
44char *cgit_query_head = NULL; 45char *cgit_query_head = NULL;
45char *cgit_query_search = NULL; 46char *cgit_query_search = NULL;
46char *cgit_query_sha1 = NULL; 47char *cgit_query_sha1 = NULL;
47char *cgit_query_sha2 = NULL; 48char *cgit_query_sha2 = NULL;
48char *cgit_query_path = NULL; 49char *cgit_query_path = NULL;
49char *cgit_query_name = NULL; 50char *cgit_query_name = NULL;
50int cgit_query_ofs = 0; 51int cgit_query_ofs = 0;
51 52
52int htmlfd = 0; 53int htmlfd = 0;
53 54
54int chk_zero(int result, char *msg) 55int chk_zero(int result, char *msg)
55{ 56{
56 if (result != 0) 57 if (result != 0)
57 die("%s: %s", msg, strerror(errno)); 58 die("%s: %s", msg, strerror(errno));
58 return result; 59 return result;
59} 60}
60 61
61int chk_positive(int result, char *msg) 62int chk_positive(int result, char *msg)
62{ 63{
63 if (result <= 0) 64 if (result <= 0)
64 die("%s: %s", msg, strerror(errno)); 65 die("%s: %s", msg, strerror(errno));
@@ -91,64 +92,66 @@ struct repoinfo *add_repo(const char *url)
91} 92}
92 93
93void cgit_global_config_cb(const char *name, const char *value) 94void cgit_global_config_cb(const char *name, const char *value)
94{ 95{
95 if (!strcmp(name, "root-title")) 96 if (!strcmp(name, "root-title"))
96 cgit_root_title = xstrdup(value); 97 cgit_root_title = xstrdup(value);
97 else if (!strcmp(name, "css")) 98 else if (!strcmp(name, "css"))
98 cgit_css = xstrdup(value); 99 cgit_css = xstrdup(value);
99 else if (!strcmp(name, "logo")) 100 else if (!strcmp(name, "logo"))
100 cgit_logo = xstrdup(value); 101 cgit_logo = xstrdup(value);
101 else if (!strcmp(name, "logo-link")) 102 else if (!strcmp(name, "logo-link"))
102 cgit_logo_link = xstrdup(value); 103 cgit_logo_link = xstrdup(value);
103 else if (!strcmp(name, "module-link")) 104 else if (!strcmp(name, "module-link"))
104 cgit_module_link = xstrdup(value); 105 cgit_module_link = xstrdup(value);
105 else if (!strcmp(name, "virtual-root")) 106 else if (!strcmp(name, "virtual-root"))
106 cgit_virtual_root = xstrdup(value); 107 cgit_virtual_root = xstrdup(value);
107 else if (!strcmp(name, "nocache")) 108 else if (!strcmp(name, "nocache"))
108 cgit_nocache = atoi(value); 109 cgit_nocache = atoi(value);
109 else if (!strcmp(name, "snapshots")) 110 else if (!strcmp(name, "snapshots"))
110 cgit_snapshots = atoi(value); 111 cgit_snapshots = atoi(value);
111 else if (!strcmp(name, "cache-root")) 112 else if (!strcmp(name, "cache-root"))
112 cgit_cache_root = xstrdup(value); 113 cgit_cache_root = xstrdup(value);
113 else if (!strcmp(name, "cache-root-ttl")) 114 else if (!strcmp(name, "cache-root-ttl"))
114 cgit_cache_root_ttl = atoi(value); 115 cgit_cache_root_ttl = atoi(value);
115 else if (!strcmp(name, "cache-repo-ttl")) 116 else if (!strcmp(name, "cache-repo-ttl"))
116 cgit_cache_repo_ttl = atoi(value); 117 cgit_cache_repo_ttl = atoi(value);
117 else if (!strcmp(name, "cache-static-ttl")) 118 else if (!strcmp(name, "cache-static-ttl"))
118 cgit_cache_static_ttl = atoi(value); 119 cgit_cache_static_ttl = atoi(value);
119 else if (!strcmp(name, "cache-dynamic-ttl")) 120 else if (!strcmp(name, "cache-dynamic-ttl"))
120 cgit_cache_dynamic_ttl = atoi(value); 121 cgit_cache_dynamic_ttl = atoi(value);
121 else if (!strcmp(name, "max-message-length")) 122 else if (!strcmp(name, "max-message-length"))
122 cgit_max_msg_len = atoi(value); 123 cgit_max_msg_len = atoi(value);
124 else if (!strcmp(name, "max-commit-count"))
125 cgit_max_commit_count = atoi(value);
123 else if (!strcmp(name, "repo.url")) 126 else if (!strcmp(name, "repo.url"))
124 cgit_repo = add_repo(value); 127 cgit_repo = add_repo(value);
125 else if (!strcmp(name, "repo.name")) 128 else if (!strcmp(name, "repo.name"))
126 cgit_repo->name = xstrdup(value); 129 cgit_repo->name = xstrdup(value);
127 else if (cgit_repo && !strcmp(name, "repo.path")) 130 else if (cgit_repo && !strcmp(name, "repo.path"))
128 cgit_repo->path = xstrdup(value); 131 cgit_repo->path = xstrdup(value);
129 else if (cgit_repo && !strcmp(name, "repo.desc")) 132 else if (cgit_repo && !strcmp(name, "repo.desc"))
130 cgit_repo->desc = xstrdup(value); 133 cgit_repo->desc = xstrdup(value);
131 else if (cgit_repo && !strcmp(name, "repo.owner")) 134 else if (cgit_repo && !strcmp(name, "repo.owner"))
132 cgit_repo->owner = xstrdup(value); 135 cgit_repo->owner = xstrdup(value);
133 else if (cgit_repo && !strcmp(name, "repo.snapshots")) 136 else if (cgit_repo && !strcmp(name, "repo.snapshots"))
134 cgit_repo->snapshots = atoi(value); 137 cgit_repo->snapshots = atoi(value);
135 else if (cgit_repo && !strcmp(name, "repo.module-link")) 138 else if (cgit_repo && !strcmp(name, "repo.module-link"))
136 cgit_repo->module_link= xstrdup(value); 139 cgit_repo->module_link= xstrdup(value);
137} 140}
138 141
139void cgit_repo_config_cb(const char *name, const char *value) 142void cgit_repo_config_cb(const char *name, const char *value)
140{ 143{
141 if (!strcmp(name, "name")) 144 if (!strcmp(name, "name"))
142 cgit_repo_name = xstrdup(value); 145 cgit_repo_name = xstrdup(value);
143 else if (!strcmp(name, "desc")) 146 else if (!strcmp(name, "desc"))
144 cgit_repo_desc = xstrdup(value); 147 cgit_repo_desc = xstrdup(value);
145 else if (!strcmp(name, "owner")) 148 else if (!strcmp(name, "owner"))
146 cgit_repo_owner = xstrdup(value); 149 cgit_repo_owner = xstrdup(value);
147} 150}
148 151
149void cgit_querystring_cb(const char *name, const char *value) 152void cgit_querystring_cb(const char *name, const char *value)
150{ 153{
151 if (!strcmp(name,"r")) { 154 if (!strcmp(name,"r")) {
152 cgit_query_repo = xstrdup(value); 155 cgit_query_repo = xstrdup(value);
153 } else if (!strcmp(name, "p")) { 156 } else if (!strcmp(name, "p")) {
154 cgit_query_page = xstrdup(value); 157 cgit_query_page = xstrdup(value);