summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.c5
-rw-r--r--cgit.h2
-rw-r--r--cgitrc.5.txt4
-rw-r--r--cmd.c2
-rw-r--r--ui-atom.c4
5 files changed, 15 insertions, 2 deletions
diff --git a/cgit.c b/cgit.c
index 6ccf4aa..38bc136 100644
--- a/cgit.c
+++ b/cgit.c
@@ -166,12 +166,14 @@ void config_cb(const char *name, const char *value)
166 else if (!strcmp(name, "about-filter")) 166 else if (!strcmp(name, "about-filter"))
167 ctx.cfg.about_filter = new_filter(value, 0); 167 ctx.cfg.about_filter = new_filter(value, 0);
168 else if (!strcmp(name, "commit-filter")) 168 else if (!strcmp(name, "commit-filter"))
169 ctx.cfg.commit_filter = new_filter(value, 0); 169 ctx.cfg.commit_filter = new_filter(value, 0);
170 else if (!strcmp(name, "embedded")) 170 else if (!strcmp(name, "embedded"))
171 ctx.cfg.embedded = atoi(value); 171 ctx.cfg.embedded = atoi(value);
172 else if (!strcmp(name, "max-atom-items"))
173 ctx.cfg.max_atom_items = atoi(value);
172 else if (!strcmp(name, "max-message-length")) 174 else if (!strcmp(name, "max-message-length"))
173 ctx.cfg.max_msg_len = atoi(value); 175 ctx.cfg.max_msg_len = atoi(value);
174 else if (!strcmp(name, "max-repodesc-length")) 176 else if (!strcmp(name, "max-repodesc-length"))
175 ctx.cfg.max_repodesc_len = atoi(value); 177 ctx.cfg.max_repodesc_len = atoi(value);
176 else if (!strcmp(name, "max-blob-size")) 178 else if (!strcmp(name, "max-blob-size"))
177 ctx.cfg.max_blob_size = atoi(value); 179 ctx.cfg.max_blob_size = atoi(value);
@@ -251,12 +253,14 @@ static void querystring_cb(const char *name, const char *value)
251 } else if (!strcmp(name, "showmsg")) { 253 } else if (!strcmp(name, "showmsg")) {
252 ctx.qry.showmsg = atoi(value); 254 ctx.qry.showmsg = atoi(value);
253 } else if (!strcmp(name, "period")) { 255 } else if (!strcmp(name, "period")) {
254 ctx.qry.period = xstrdup(value); 256 ctx.qry.period = xstrdup(value);
255 } else if (!strcmp(name, "ss")) { 257 } else if (!strcmp(name, "ss")) {
256 ctx.qry.ssdiff = atoi(value); 258 ctx.qry.ssdiff = atoi(value);
259 } else if (!strcmp(name, "all")) {
260 ctx.qry.show_all = atoi(value);
257 } 261 }
258} 262}
259 263
260char *xstrdupn(const char *str) 264char *xstrdupn(const char *str)
261{ 265{
262 return (str ? xstrdup(str) : NULL); 266 return (str ? xstrdup(str) : NULL);
@@ -293,12 +297,13 @@ static void prepare_context(struct cgit_context *ctx)
293 ctx->cfg.root_desc = "a fast webinterface for the git dscm"; 297 ctx->cfg.root_desc = "a fast webinterface for the git dscm";
294 ctx->cfg.script_name = CGIT_SCRIPT_NAME; 298 ctx->cfg.script_name = CGIT_SCRIPT_NAME;
295 ctx->cfg.section = ""; 299 ctx->cfg.section = "";
296 ctx->cfg.summary_branches = 10; 300 ctx->cfg.summary_branches = 10;
297 ctx->cfg.summary_log = 10; 301 ctx->cfg.summary_log = 10;
298 ctx->cfg.summary_tags = 10; 302 ctx->cfg.summary_tags = 10;
303 ctx->cfg.max_atom_items = 10;
299 ctx->cfg.ssdiff = 0; 304 ctx->cfg.ssdiff = 0;
300 ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG")); 305 ctx->env.cgit_config = xstrdupn(getenv("CGIT_CONFIG"));
301 ctx->env.http_host = xstrdupn(getenv("HTTP_HOST")); 306 ctx->env.http_host = xstrdupn(getenv("HTTP_HOST"));
302 ctx->env.https = xstrdupn(getenv("HTTPS")); 307 ctx->env.https = xstrdupn(getenv("HTTPS"));
303 ctx->env.no_http = xstrdupn(getenv("NO_HTTP")); 308 ctx->env.no_http = xstrdupn(getenv("NO_HTTP"));
304 ctx->env.path_info = xstrdupn(getenv("PATH_INFO")); 309 ctx->env.path_info = xstrdupn(getenv("PATH_INFO"));
diff --git a/cgit.h b/cgit.h
index 9b1e3f8..8884f9e 100644
--- a/cgit.h
+++ b/cgit.h
@@ -143,12 +143,13 @@ struct cgit_query {
143 char *period; 143 char *period;
144 int ofs; 144 int ofs;
145 int nohead; 145 int nohead;
146 char *sort; 146 char *sort;
147 int showmsg; 147 int showmsg;
148 int ssdiff; 148 int ssdiff;
149 int show_all;
149}; 150};
150 151
151struct cgit_config { 152struct cgit_config {
152 char *agefile; 153 char *agefile;
153 char *cache_root; 154 char *cache_root;
154 char *clone_prefix; 155 char *clone_prefix;
@@ -182,12 +183,13 @@ struct cgit_config {
182 int enable_log_filecount; 183 int enable_log_filecount;
183 int enable_log_linecount; 184 int enable_log_linecount;
184 int enable_remote_branches; 185 int enable_remote_branches;
185 int enable_subject_links; 186 int enable_subject_links;
186 int enable_tree_linenumbers; 187 int enable_tree_linenumbers;
187 int local_time; 188 int local_time;
189 int max_atom_items;
188 int max_repo_count; 190 int max_repo_count;
189 int max_commit_count; 191 int max_commit_count;
190 int max_lock_attempts; 192 int max_lock_attempts;
191 int max_msg_len; 193 int max_msg_len;
192 int max_repodesc_len; 194 int max_repodesc_len;
193 int max_blob_size; 195 int max_blob_size;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index fcd4308..5c24381 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -169,12 +169,16 @@ logo::
169 169
170logo-link:: 170logo-link::
171 Url loaded when clicking on the cgit logo image. If unspecified the 171 Url loaded when clicking on the cgit logo image. If unspecified the
172 calculated url of the repository index page will be used. Default 172 calculated url of the repository index page will be used. Default
173 value: none. 173 value: none.
174 174
175max-atom-items::
176 Specifies the number of items to display in atom feeds view. Default
177 value: "10".
178
175max-commit-count:: 179max-commit-count::
176 Specifies the number of entries to list per page in "log" view. Default 180 Specifies the number of entries to list per page in "log" view. Default
177 value: "50". 181 value: "50".
178 182
179max-message-length:: 183max-message-length::
180 Specifies the maximum number of commit message characters to display in 184 Specifies the maximum number of commit message characters to display in
diff --git a/cmd.c b/cmd.c
index 766f903..ad784fc 100644
--- a/cmd.c
+++ b/cmd.c
@@ -30,13 +30,13 @@ static void HEAD_fn(struct cgit_context *ctx)
30{ 30{
31 cgit_clone_head(ctx); 31 cgit_clone_head(ctx);
32} 32}
33 33
34static void atom_fn(struct cgit_context *ctx) 34static void atom_fn(struct cgit_context *ctx)
35{ 35{
36 cgit_print_atom(ctx->qry.head, ctx->qry.path, 10); 36 cgit_print_atom(ctx->qry.head, ctx->qry.path, ctx->cfg.max_atom_items);
37} 37}
38 38
39static void about_fn(struct cgit_context *ctx) 39static void about_fn(struct cgit_context *ctx)
40{ 40{
41 if (ctx->repo) 41 if (ctx->repo)
42 cgit_print_repo_readme(ctx->qry.path); 42 cgit_print_repo_readme(ctx->qry.path);
diff --git a/ui-atom.c b/ui-atom.c
index 808b2d0..9f049ae 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -82,13 +82,15 @@ void cgit_print_atom(char *tip, char *path, int max_count)
82 char *host; 82 char *host;
83 const char *argv[] = {NULL, tip, NULL, NULL, NULL}; 83 const char *argv[] = {NULL, tip, NULL, NULL, NULL};
84 struct commit *commit; 84 struct commit *commit;
85 struct rev_info rev; 85 struct rev_info rev;
86 int argc = 2; 86 int argc = 2;
87 87
88 if (!tip) 88 if (ctx.qry.show_all)
89 argv[1] = "--all";
90 else if (!tip)
89 argv[1] = ctx.qry.head; 91 argv[1] = ctx.qry.head;
90 92
91 if (path) { 93 if (path) {
92 argv[argc++] = "--"; 94 argv[argc++] = "--";
93 argv[argc++] = path; 95 argv[argc++] = path;
94 } 96 }