summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2007-01-28 11:17:03 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-01-28 11:17:03 (UTC)
commit7dd50c98d73bf6c579b8ce5893739a2d0ffc00d5 (patch) (unidiff)
tree17f0e21c129723468a1f291faba52580993a39b1
parentd8b0cca2606f8919208ea68549ff60c6e5fe91bb (diff)
downloadcgit-7dd50c98d73bf6c579b8ce5893739a2d0ffc00d5.zip
cgit-7dd50c98d73bf6c579b8ce5893739a2d0ffc00d5.tar.gz
cgit-7dd50c98d73bf6c579b8ce5893739a2d0ffc00d5.tar.bz2
Add parameter to adjust max message length in log listings
The parameter "max-message-length" can be specified in cgitrc, default value is 60. This affects the log message shown in repo summary and shortlog. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h2
-rw-r--r--shared.c4
-rw-r--r--ui-log.c2
-rw-r--r--ui-summary.c2
4 files changed, 8 insertions, 2 deletions
diff --git a/cgit.h b/cgit.h
index 9b517a7..a3b5385 100644
--- a/cgit.h
+++ b/cgit.h
@@ -31,48 +31,50 @@ struct taginfo {
31 char *tagger; 31 char *tagger;
32 char *tagger_email; 32 char *tagger_email;
33 int tagger_date; 33 int tagger_date;
34 char *msg; 34 char *msg;
35}; 35};
36 36
37extern const char cgit_version[]; 37extern const char cgit_version[];
38 38
39extern char *cgit_root; 39extern char *cgit_root;
40extern char *cgit_root_title; 40extern char *cgit_root_title;
41extern char *cgit_css; 41extern char *cgit_css;
42extern char *cgit_logo; 42extern char *cgit_logo;
43extern char *cgit_logo_link; 43extern char *cgit_logo_link;
44extern char *cgit_virtual_root; 44extern char *cgit_virtual_root;
45extern char *cgit_cache_root; 45extern char *cgit_cache_root;
46 46
47extern int cgit_nocache; 47extern int cgit_nocache;
48extern int cgit_max_lock_attempts; 48extern int cgit_max_lock_attempts;
49extern int cgit_cache_root_ttl; 49extern int cgit_cache_root_ttl;
50extern int cgit_cache_repo_ttl; 50extern int cgit_cache_repo_ttl;
51extern int cgit_cache_dynamic_ttl; 51extern int cgit_cache_dynamic_ttl;
52extern int cgit_cache_static_ttl; 52extern int cgit_cache_static_ttl;
53extern int cgit_cache_max_create_time; 53extern int cgit_cache_max_create_time;
54 54
55extern int cgit_max_msg_len;
56
55extern char *cgit_repo_name; 57extern char *cgit_repo_name;
56extern char *cgit_repo_desc; 58extern char *cgit_repo_desc;
57extern char *cgit_repo_owner; 59extern char *cgit_repo_owner;
58 60
59extern int cgit_query_has_symref; 61extern int cgit_query_has_symref;
60extern int cgit_query_has_sha1; 62extern int cgit_query_has_sha1;
61 63
62extern char *cgit_querystring; 64extern char *cgit_querystring;
63extern char *cgit_query_repo; 65extern char *cgit_query_repo;
64extern char *cgit_query_page; 66extern char *cgit_query_page;
65extern char *cgit_query_search; 67extern char *cgit_query_search;
66extern char *cgit_query_head; 68extern char *cgit_query_head;
67extern char *cgit_query_sha1; 69extern char *cgit_query_sha1;
68extern char *cgit_query_sha2; 70extern char *cgit_query_sha2;
69extern char *cgit_query_path; 71extern char *cgit_query_path;
70extern int cgit_query_ofs; 72extern int cgit_query_ofs;
71 73
72extern int htmlfd; 74extern int htmlfd;
73 75
74extern void cgit_global_config_cb(const char *name, const char *value); 76extern void cgit_global_config_cb(const char *name, const char *value);
75extern void cgit_repo_config_cb(const char *name, const char *value); 77extern void cgit_repo_config_cb(const char *name, const char *value);
76extern void cgit_querystring_cb(const char *name, const char *value); 78extern void cgit_querystring_cb(const char *name, const char *value);
77 79
78extern int hextoint(char c); 80extern int hextoint(char c);
diff --git a/shared.c b/shared.c
index dd711a8..8e6df31 100644
--- a/shared.c
+++ b/shared.c
@@ -4,93 +4,97 @@
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
11char *cgit_root = "/usr/src/git"; 11char *cgit_root = "/usr/src/git";
12char *cgit_root_title = "Git repository browser"; 12char *cgit_root_title = "Git repository browser";
13char *cgit_css = "/cgit.css"; 13char *cgit_css = "/cgit.css";
14char *cgit_logo = "/git-logo.png"; 14char *cgit_logo = "/git-logo.png";
15char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; 15char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/";
16char *cgit_virtual_root = NULL; 16char *cgit_virtual_root = NULL;
17 17
18char *cgit_cache_root = "/var/cache/cgit"; 18char *cgit_cache_root = "/var/cache/cgit";
19 19
20int cgit_nocache = 0; 20int cgit_nocache = 0;
21int cgit_max_lock_attempts = 5; 21int cgit_max_lock_attempts = 5;
22int cgit_cache_root_ttl = 5; 22int cgit_cache_root_ttl = 5;
23int cgit_cache_repo_ttl = 5; 23int cgit_cache_repo_ttl = 5;
24int cgit_cache_dynamic_ttl = 5; 24int cgit_cache_dynamic_ttl = 5;
25int cgit_cache_static_ttl = -1; 25int cgit_cache_static_ttl = -1;
26int cgit_cache_max_create_time = 5; 26int cgit_cache_max_create_time = 5;
27 27
28int cgit_max_msg_len = 60;
29
28char *cgit_repo_name = NULL; 30char *cgit_repo_name = NULL;
29char *cgit_repo_desc = NULL; 31char *cgit_repo_desc = NULL;
30char *cgit_repo_owner = NULL; 32char *cgit_repo_owner = NULL;
31 33
32int cgit_query_has_symref = 0; 34int cgit_query_has_symref = 0;
33int cgit_query_has_sha1 = 0; 35int cgit_query_has_sha1 = 0;
34 36
35char *cgit_querystring = NULL; 37char *cgit_querystring = NULL;
36char *cgit_query_repo = NULL; 38char *cgit_query_repo = NULL;
37char *cgit_query_page = NULL; 39char *cgit_query_page = NULL;
38char *cgit_query_head = NULL; 40char *cgit_query_head = NULL;
39char *cgit_query_search = NULL; 41char *cgit_query_search = NULL;
40char *cgit_query_sha1 = NULL; 42char *cgit_query_sha1 = NULL;
41char *cgit_query_sha2 = NULL; 43char *cgit_query_sha2 = NULL;
42char *cgit_query_path = NULL; 44char *cgit_query_path = NULL;
43int cgit_query_ofs = 0; 45int cgit_query_ofs = 0;
44 46
45int htmlfd = 0; 47int htmlfd = 0;
46 48
47void cgit_global_config_cb(const char *name, const char *value) 49void cgit_global_config_cb(const char *name, const char *value)
48{ 50{
49 if (!strcmp(name, "root")) 51 if (!strcmp(name, "root"))
50 cgit_root = xstrdup(value); 52 cgit_root = xstrdup(value);
51 else if (!strcmp(name, "root-title")) 53 else if (!strcmp(name, "root-title"))
52 cgit_root_title = xstrdup(value); 54 cgit_root_title = xstrdup(value);
53 else if (!strcmp(name, "css")) 55 else if (!strcmp(name, "css"))
54 cgit_css = xstrdup(value); 56 cgit_css = xstrdup(value);
55 else if (!strcmp(name, "logo")) 57 else if (!strcmp(name, "logo"))
56 cgit_logo = xstrdup(value); 58 cgit_logo = xstrdup(value);
57 else if (!strcmp(name, "logo-link")) 59 else if (!strcmp(name, "logo-link"))
58 cgit_logo_link = xstrdup(value); 60 cgit_logo_link = xstrdup(value);
59 else if (!strcmp(name, "virtual-root")) 61 else if (!strcmp(name, "virtual-root"))
60 cgit_virtual_root = xstrdup(value); 62 cgit_virtual_root = xstrdup(value);
61 else if (!strcmp(name, "nocache")) 63 else if (!strcmp(name, "nocache"))
62 cgit_nocache = atoi(value); 64 cgit_nocache = atoi(value);
63 else if (!strcmp(name, "cache-root")) 65 else if (!strcmp(name, "cache-root"))
64 cgit_cache_root = xstrdup(value); 66 cgit_cache_root = xstrdup(value);
65 else if (!strcmp(name, "cache-root-ttl")) 67 else if (!strcmp(name, "cache-root-ttl"))
66 cgit_cache_root_ttl = atoi(value); 68 cgit_cache_root_ttl = atoi(value);
67 else if (!strcmp(name, "cache-repo-ttl")) 69 else if (!strcmp(name, "cache-repo-ttl"))
68 cgit_cache_repo_ttl = atoi(value); 70 cgit_cache_repo_ttl = atoi(value);
69 else if (!strcmp(name, "cache-static-ttl")) 71 else if (!strcmp(name, "cache-static-ttl"))
70 cgit_cache_static_ttl = atoi(value); 72 cgit_cache_static_ttl = atoi(value);
71 else if (!strcmp(name, "cache-dynamic-ttl")) 73 else if (!strcmp(name, "cache-dynamic-ttl"))
72 cgit_cache_dynamic_ttl = atoi(value); 74 cgit_cache_dynamic_ttl = atoi(value);
75 else if (!strcmp(name, "max-message-length"))
76 cgit_max_msg_len = atoi(value);
73} 77}
74 78
75void cgit_repo_config_cb(const char *name, const char *value) 79void cgit_repo_config_cb(const char *name, const char *value)
76{ 80{
77 if (!strcmp(name, "name")) 81 if (!strcmp(name, "name"))
78 cgit_repo_name = xstrdup(value); 82 cgit_repo_name = xstrdup(value);
79 else if (!strcmp(name, "desc")) 83 else if (!strcmp(name, "desc"))
80 cgit_repo_desc = xstrdup(value); 84 cgit_repo_desc = xstrdup(value);
81 else if (!strcmp(name, "owner")) 85 else if (!strcmp(name, "owner"))
82 cgit_repo_owner = xstrdup(value); 86 cgit_repo_owner = xstrdup(value);
83} 87}
84 88
85void cgit_querystring_cb(const char *name, const char *value) 89void cgit_querystring_cb(const char *name, const char *value)
86{ 90{
87 if (!strcmp(name,"r")) { 91 if (!strcmp(name,"r")) {
88 cgit_query_repo = xstrdup(value); 92 cgit_query_repo = xstrdup(value);
89 } else if (!strcmp(name, "p")) { 93 } else if (!strcmp(name, "p")) {
90 cgit_query_page = xstrdup(value); 94 cgit_query_page = xstrdup(value);
91 } else if (!strcmp(name, "q")) { 95 } else if (!strcmp(name, "q")) {
92 cgit_query_search = xstrdup(value); 96 cgit_query_search = xstrdup(value);
93 } else if (!strcmp(name, "h")) { 97 } else if (!strcmp(name, "h")) {
94 cgit_query_head = xstrdup(value); 98 cgit_query_head = xstrdup(value);
95 cgit_query_has_symref = 1; 99 cgit_query_has_symref = 1;
96 } else if (!strcmp(name, "id")) { 100 } else if (!strcmp(name, "id")) {
diff --git a/ui-log.c b/ui-log.c
index 725f49b..24d571d 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -2,49 +2,49 @@
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
11void print_commit(struct commit *commit) 11void print_commit(struct commit *commit)
12{ 12{
13 char buf[32]; 13 char buf[32];
14 struct commitinfo *info; 14 struct commitinfo *info;
15 struct tm *time; 15 struct tm *time;
16 16
17 info = cgit_parse_commit(commit); 17 info = cgit_parse_commit(commit);
18 time = gmtime(&commit->date); 18 time = gmtime(&commit->date);
19 html("<tr><td>"); 19 html("<tr><td>");
20 strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time); 20 strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time);
21 html_txt(buf); 21 html_txt(buf);
22 html("</td><td>"); 22 html("</td><td>");
23 char *qry = fmt("id=%s", sha1_to_hex(commit->object.sha1)); 23 char *qry = fmt("id=%s", sha1_to_hex(commit->object.sha1));
24 char *url = cgit_pageurl(cgit_query_repo, "commit", qry); 24 char *url = cgit_pageurl(cgit_query_repo, "commit", qry);
25 html_link_open(url, NULL, NULL); 25 html_link_open(url, NULL, NULL);
26 html_ntxt(80, info->subject); 26 html_ntxt(cgit_max_msg_len, info->subject);
27 html_link_close(); 27 html_link_close();
28 html("</td><td>"); 28 html("</td><td>");
29 html_txt(info->author); 29 html_txt(info->author);
30 html("</td></tr>\n"); 30 html("</td></tr>\n");
31 cgit_free_commitinfo(info); 31 cgit_free_commitinfo(info);
32} 32}
33 33
34 34
35void cgit_print_log(const char *tip, int ofs, int cnt, char *grep) 35void cgit_print_log(const char *tip, int ofs, int cnt, char *grep)
36{ 36{
37 struct rev_info rev; 37 struct rev_info rev;
38 struct commit *commit; 38 struct commit *commit;
39 const char *argv[3] = {NULL, tip, NULL}; 39 const char *argv[3] = {NULL, tip, NULL};
40 int argc = 2; 40 int argc = 2;
41 int i; 41 int i;
42 42
43 if (grep) 43 if (grep)
44 argv[argc++] = fmt("--grep=%s", grep); 44 argv[argc++] = fmt("--grep=%s", grep);
45 init_revisions(&rev, NULL); 45 init_revisions(&rev, NULL);
46 rev.abbrev = DEFAULT_ABBREV; 46 rev.abbrev = DEFAULT_ABBREV;
47 rev.commit_format = CMIT_FMT_DEFAULT; 47 rev.commit_format = CMIT_FMT_DEFAULT;
48 rev.verbose_header = 1; 48 rev.verbose_header = 1;
49 rev.show_root_diff = 0; 49 rev.show_root_diff = 0;
50 setup_revisions(argc, argv, &rev, NULL); 50 setup_revisions(argc, argv, &rev, NULL);
diff --git a/ui-summary.c b/ui-summary.c
index 04d4912..5518d01 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -12,49 +12,49 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
12 int flags, void *cb_data) 12 int flags, void *cb_data)
13{ 13{
14 struct commit *commit; 14 struct commit *commit;
15 struct commitinfo *info; 15 struct commitinfo *info;
16 char buf[256], *url; 16 char buf[256], *url;
17 17
18 strncpy(buf, refname, sizeof(buf)); 18 strncpy(buf, refname, sizeof(buf));
19 commit = lookup_commit(sha1); 19 commit = lookup_commit(sha1);
20 if (commit && !parse_commit(commit)){ 20 if (commit && !parse_commit(commit)){
21 info = cgit_parse_commit(commit); 21 info = cgit_parse_commit(commit);
22 html("<tr><td>"); 22 html("<tr><td>");
23 url = cgit_pageurl(cgit_query_repo, "log", 23 url = cgit_pageurl(cgit_query_repo, "log",
24 fmt("h=%s", refname)); 24 fmt("h=%s", refname));
25 html_link_open(url, NULL, NULL); 25 html_link_open(url, NULL, NULL);
26 html_txt(buf); 26 html_txt(buf);
27 html_link_close(); 27 html_link_close();
28 html("</td><td>"); 28 html("</td><td>");
29 cgit_print_date(commit->date); 29 cgit_print_date(commit->date);
30 html("</td><td>"); 30 html("</td><td>");
31 html_txt(info->author); 31 html_txt(info->author);
32 html("</td><td>"); 32 html("</td><td>");
33 url = cgit_pageurl(cgit_query_repo, "commit", 33 url = cgit_pageurl(cgit_query_repo, "commit",
34 fmt("id=%s", sha1_to_hex(sha1))); 34 fmt("id=%s", sha1_to_hex(sha1)));
35 html_link_open(url, NULL, NULL); 35 html_link_open(url, NULL, NULL);
36 html_ntxt(80, info->subject); 36 html_ntxt(cgit_max_msg_len, info->subject);
37 html_link_close(); 37 html_link_close();
38 html("</td></tr>\n"); 38 html("</td></tr>\n");
39 cgit_free_commitinfo(info); 39 cgit_free_commitinfo(info);
40 } else { 40 } else {
41 html("<tr><td>"); 41 html("<tr><td>");
42 html_txt(buf); 42 html_txt(buf);
43 html("</td><td colspan='3'>"); 43 html("</td><td colspan='3'>");
44 htmlf("*** bad ref %s ***", sha1_to_hex(sha1)); 44 htmlf("*** bad ref %s ***", sha1_to_hex(sha1));
45 html("</td></tr>\n"); 45 html("</td></tr>\n");
46 } 46 }
47 return 0; 47 return 0;
48} 48}
49 49
50static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1, 50static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
51 int flags, void *cb_data) 51 int flags, void *cb_data)
52{ 52{
53 struct tag *tag; 53 struct tag *tag;
54 struct taginfo *info; 54 struct taginfo *info;
55 char buf[256], *page, *url; 55 char buf[256], *page, *url;
56 56
57 strncpy(buf, refname, sizeof(buf)); 57 strncpy(buf, refname, sizeof(buf));
58 tag = lookup_tag(sha1); 58 tag = lookup_tag(sha1);
59 if (tag && !parse_tag(tag) && (info = cgit_parse_tag(tag))){ 59 if (tag && !parse_tag(tag) && (info = cgit_parse_tag(tag))){
60 html("<tr><td>"); 60 html("<tr><td>");