author | Lars Hjemli <hjemli@gmail.com> | 2006-12-21 23:58:18 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2006-12-21 23:58:18 (UTC) |
commit | 9d8d9b61238df3a855504825e5f735d00289f12b (patch) (side-by-side diff) | |
tree | ee4e5b6712abb684b920f1f69683eb2b43c6fd8d | |
parent | 378cae639849ba9f020666d1cf6dad6e08bfaf0e (diff) | |
download | cgit-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>
-rw-r--r-- | cgit.css | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | html.c | 28 | ||||
-rw-r--r-- | ui-log.c | 4 | ||||
-rw-r--r-- | ui-summary.c | 4 |
5 files changed, 34 insertions, 5 deletions
@@ -97,13 +97,13 @@ td.blob { white-space: pre; font-family: courier; font-size: 100%; background-color: white; } -table.log td { +table.nowrap td { white-space: nowrap; } table.commit-info { border-collapse: collapse; margin-top: 1.5em; @@ -70,12 +70,13 @@ extern void *cgit_free_commitinfo(struct commitinfo *info); extern char *fmt(const char *format,...); extern void html(const char *txt); extern void htmlf(const char *format,...); extern void html_txt(char *txt); +extern void html_ntxt(int len, char *txt); extern void html_attr(char *txt); extern void html_link_open(char *url, char *title, char *class); extern void html_link_close(void); extern void html_filemode(unsigned short mode); extern int cgit_read_config(const char *filename, configfn fn); @@ -62,12 +62,40 @@ void html_txt(char *txt) t++; } if (t!=txt) html(txt); } +void html_ntxt(int len, char *txt) +{ + char *t = txt; + while(*t && len--){ + int c = *t; + if (c=='<' || c=='>' || c=='&') { + *t = '\0'; + html(txt); + *t = c; + if (c=='>') + html(">"); + else if (c=='<') + html("<"); + else if (c=='&') + html("&"); + txt = t+1; + } + t++; + } + if (t!=txt) { + char c = *t; + *t = '\0'; + html(txt); + *t = c; + } + if (len<0) + html("..."); +} void html_attr(char *txt) { char *t = txt; while(*t){ int c = *t; @@ -20,13 +20,13 @@ void print_commit(struct commit *commit) strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time); html_txt(buf); html("</td><td>"); char *qry = fmt("id=%s", sha1_to_hex(commit->object.sha1)); char *url = cgit_pageurl(cgit_query_repo, "commit", qry); html_link_open(url, NULL, NULL); - html_txt(info->subject); + html_ntxt(80, info->subject); html_link_close(); html("</td><td>"); html_txt(info->author); html("</td></tr>\n"); cgit_free_commitinfo(info); } @@ -45,13 +45,13 @@ void cgit_print_log(const char *tip, int ofs, int cnt) rev.verbose_header = 1; rev.show_root_diff = 0; setup_revisions(2, argv, &rev, NULL); prepare_revision_walk(&rev); html("<h2>Log</h2>"); - html("<table class='list log'>"); + html("<table class='list nowrap'>"); html("<tr><th class='left'>Date</th>" "<th class='left'>Message</th>" "<th class='left'>Author</th></tr>\n"); if (ofs<0) ofs = 0; diff --git a/ui-summary.c b/ui-summary.c index 638c8f6..de95053 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -28,13 +28,13 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, html("</td><td>"); cgit_print_date(commit->date); html("</td><td>"); url = cgit_pageurl(cgit_query_repo, "commit", fmt("id=%s", sha1_to_hex(sha1))); html_link_open(url, NULL, NULL); - html_txt(info->subject); + html_ntxt(80, info->subject); html_link_close(); html("</td><td>"); html_txt(info->author); html("</td></tr>\n"); cgit_free_commitinfo(info); } else { @@ -46,13 +46,13 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, } return 0; } static void cgit_print_branches() { - html("<table class='list'>"); + html("<table class='list nowrap'>"); html("<tr><th class='left'>Branch</th>" "<th class='left'>Updated</th>" "<th class='left'>Commit subject</th>" "<th class='left'>Author</th></tr>\n"); for_each_branch_ref(cgit_print_branch_cb, NULL); html("</table>"); |