Author: Lars Hjemli <hjemli@gmail.com>
Only show first 80 characters of commit subject in log and summary Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.css | 2 +- cgit.h | 1 + html.c | 28 ++++++++++++++++++++++++++++ ui-log.c | 4 ++-- ui-summary.c | 4 ++--
diff --git a/cgit.css b/cgit.css index 7b8e468f179c0d616ea0ec20a57a9339b44c1505..85815c1afda284b8e0bf4e88e3d0ba48ba5f5c4b 100644 --- a/cgit.css +++ b/cgit.css @@ -100,7 +100,7 @@ font-size: 100%; background-color: white; } -table.log td { +table.nowrap td { white-space: nowrap; } diff --git a/cgit.h b/cgit.h index bba2d6c506373ba3ed3c5cdacac34a3d5b076968..362b43514a40f1befbcf781159ed1d02ddec032c 100644 --- a/cgit.h +++ b/cgit.h @@ -73,6 +73,7 @@ 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); diff --git a/html.c b/html.c index 8a6965970ae903dd434e490cfabbad27f39f900b..957b3268be1a49a5a1d336d3412a4e71d4ca5959 100644 --- a/html.c +++ b/html.c @@ -65,6 +65,34 @@ 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) { diff --git a/ui-log.c b/ui-log.c index def96f6d44f49b0806eaee2f86dd9a47d24bdbf8..f3b16e71e3a764ffc9a8c6e0485baa209b79d82d 100644 --- a/ui-log.c +++ b/ui-log.c @@ -23,7 +23,7 @@ html(""); 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); @@ -48,7 +48,7 @@ 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"); diff --git a/ui-summary.c b/ui-summary.c index 638c8f6c5ca740d7f2bc6b7d6043cfcc81b5d80a..de95053a6a1d415b4245926c22e06e60a634bfc5 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -31,7 +31,7 @@ html(" "); 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); @@ -49,7 +49,7 @@ } 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>"