summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2006-12-21 23:58:18 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2006-12-21 23:58:18 (UTC)
commit9d8d9b61238df3a855504825e5f735d00289f12b (patch) (unidiff)
treeee4e5b6712abb684b920f1f69683eb2b43c6fd8d
parent378cae639849ba9f020666d1cf6dad6e08bfaf0e (diff)
downloadcgit-9d8d9b61238df3a855504825e5f735d00289f12b.zip
cgit-9d8d9b61238df3a855504825e5f735d00289f12b.tar.gz
cgit-9d8d9b61238df3a855504825e5f735d00289f12b.tar.bz2
Only show first 80 characters of commit subject in log and summary
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.css2
-rw-r--r--cgit.h1
-rw-r--r--html.c28
-rw-r--r--ui-log.c4
-rw-r--r--ui-summary.c4
5 files changed, 34 insertions, 5 deletions
diff --git a/cgit.css b/cgit.css
index 7b8e468..85815c1 100644
--- a/cgit.css
+++ b/cgit.css
@@ -95,17 +95,17 @@ td.filemode {
95 95
96td.blob { 96td.blob {
97 white-space: pre; 97 white-space: pre;
98 font-family: courier; 98 font-family: courier;
99 font-size: 100%; 99 font-size: 100%;
100 background-color: white; 100 background-color: white;
101} 101}
102 102
103table.log td { 103table.nowrap td {
104 white-space: nowrap; 104 white-space: nowrap;
105} 105}
106 106
107table.commit-info { 107table.commit-info {
108 border-collapse: collapse; 108 border-collapse: collapse;
109 margin-top: 1.5em; 109 margin-top: 1.5em;
110} 110}
111table.commit-info th { 111table.commit-info th {
diff --git a/cgit.h b/cgit.h
index bba2d6c..362b435 100644
--- a/cgit.h
+++ b/cgit.h
@@ -68,16 +68,17 @@ extern void cgit_querystring_cb(const char *name, const char *value);
68 68
69extern void *cgit_free_commitinfo(struct commitinfo *info); 69extern void *cgit_free_commitinfo(struct commitinfo *info);
70 70
71extern char *fmt(const char *format,...); 71extern char *fmt(const char *format,...);
72 72
73extern void html(const char *txt); 73extern void html(const char *txt);
74extern void htmlf(const char *format,...); 74extern void htmlf(const char *format,...);
75extern void html_txt(char *txt); 75extern void html_txt(char *txt);
76extern void html_ntxt(int len, char *txt);
76extern void html_attr(char *txt); 77extern void html_attr(char *txt);
77extern void html_link_open(char *url, char *title, char *class); 78extern void html_link_open(char *url, char *title, char *class);
78extern void html_link_close(void); 79extern void html_link_close(void);
79extern void html_filemode(unsigned short mode); 80extern void html_filemode(unsigned short mode);
80 81
81extern int cgit_read_config(const char *filename, configfn fn); 82extern int cgit_read_config(const char *filename, configfn fn);
82extern int cgit_parse_query(char *txt, configfn fn); 83extern int cgit_parse_query(char *txt, configfn fn);
83extern struct commitinfo *cgit_parse_commit(struct commit *commit); 84extern struct commitinfo *cgit_parse_commit(struct commit *commit);
diff --git a/html.c b/html.c
index 8a69659..957b326 100644
--- a/html.c
+++ b/html.c
@@ -60,16 +60,44 @@ void html_txt(char *txt)
60 txt = t+1; 60 txt = t+1;
61 } 61 }
62 t++; 62 t++;
63 } 63 }
64 if (t!=txt) 64 if (t!=txt)
65 html(txt); 65 html(txt);
66} 66}
67 67
68void html_ntxt(int len, char *txt)
69{
70 char *t = txt;
71 while(*t && len--){
72 int c = *t;
73 if (c=='<' || c=='>' || c=='&') {
74 *t = '\0';
75 html(txt);
76 *t = c;
77 if (c=='>')
78 html("&gt;");
79 else if (c=='<')
80 html("&lt;");
81 else if (c=='&')
82 html("&amp;");
83 txt = t+1;
84 }
85 t++;
86 }
87 if (t!=txt) {
88 char c = *t;
89 *t = '\0';
90 html(txt);
91 *t = c;
92 }
93 if (len<0)
94 html("...");
95}
68 96
69void html_attr(char *txt) 97void html_attr(char *txt)
70{ 98{
71 char *t = txt; 99 char *t = txt;
72 while(*t){ 100 while(*t){
73 int c = *t; 101 int c = *t;
74 if (c=='<' || c=='>' || c=='\'') { 102 if (c=='<' || c=='>' || c=='\'') {
75 *t = '\0'; 103 *t = '\0';
diff --git a/ui-log.c b/ui-log.c
index def96f6..f3b16e7 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -18,17 +18,17 @@ void print_commit(struct 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_txt(info->subject); 26 html_ntxt(80, 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
@@ -43,17 +43,17 @@ void cgit_print_log(const char *tip, int ofs, int cnt)
43 rev.abbrev = DEFAULT_ABBREV; 43 rev.abbrev = DEFAULT_ABBREV;
44 rev.commit_format = CMIT_FMT_DEFAULT; 44 rev.commit_format = CMIT_FMT_DEFAULT;
45 rev.verbose_header = 1; 45 rev.verbose_header = 1;
46 rev.show_root_diff = 0; 46 rev.show_root_diff = 0;
47 setup_revisions(2, argv, &rev, NULL); 47 setup_revisions(2, argv, &rev, NULL);
48 prepare_revision_walk(&rev); 48 prepare_revision_walk(&rev);
49 49
50 html("<h2>Log</h2>"); 50 html("<h2>Log</h2>");
51 html("<table class='list log'>"); 51 html("<table class='list nowrap'>");
52 html("<tr><th class='left'>Date</th>" 52 html("<tr><th class='left'>Date</th>"
53 "<th class='left'>Message</th>" 53 "<th class='left'>Message</th>"
54 "<th class='left'>Author</th></tr>\n"); 54 "<th class='left'>Author</th></tr>\n");
55 55
56 if (ofs<0) 56 if (ofs<0)
57 ofs = 0; 57 ofs = 0;
58 58
59 for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; i++) { 59 for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; i++) {
diff --git a/ui-summary.c b/ui-summary.c
index 638c8f6..de95053 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -26,17 +26,17 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
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 url = cgit_pageurl(cgit_query_repo, "commit", 31 url = cgit_pageurl(cgit_query_repo, "commit",
32 fmt("id=%s", sha1_to_hex(sha1))); 32 fmt("id=%s", sha1_to_hex(sha1)));
33 html_link_open(url, NULL, NULL); 33 html_link_open(url, NULL, NULL);
34 html_txt(info->subject); 34 html_ntxt(80, info->subject);
35 html_link_close(); 35 html_link_close();
36 html("</td><td>"); 36 html("</td><td>");
37 html_txt(info->author); 37 html_txt(info->author);
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);
@@ -44,17 +44,17 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
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 void cgit_print_branches() 50static void cgit_print_branches()
51{ 51{
52 html("<table class='list'>"); 52 html("<table class='list nowrap'>");
53 html("<tr><th class='left'>Branch</th>" 53 html("<tr><th class='left'>Branch</th>"
54 "<th class='left'>Updated</th>" 54 "<th class='left'>Updated</th>"
55 "<th class='left'>Commit subject</th>" 55 "<th class='left'>Commit subject</th>"
56 "<th class='left'>Author</th></tr>\n"); 56 "<th class='left'>Author</th></tr>\n");
57 for_each_branch_ref(cgit_print_branch_cb, NULL); 57 for_each_branch_ref(cgit_print_branch_cb, NULL);
58 html("</table>"); 58 html("</table>");
59} 59}
60 60