diff options
author | Jeff Smith <whydoubt@gmail.com> | 2017-09-27 17:43:27 -0500 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2017-09-28 15:15:45 +0200 |
commit | 1f6a28fb3b8f998cc545c982ce8625adc8bd5de9 (patch) | |
tree | 3e2e5986744caa6f3a9b3e83c8d7d50ddc8e25fd | |
parent | de297883385030f4bdcd2f5c3839d1187611b949 (diff) | |
download | cgit-1f6a28fb3b8f998cc545c982ce8625adc8bd5de9.tar.gz |
html: html_ntxt with no ellipsis
For implementing a ui-blame page, there is need for a function that
outputs a selection from a block of text, transformed for HTML output,
but with no further modifications or additions.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
-rw-r--r-- | html.c | 24 | ||||
-rw-r--r-- | html.h | 2 | ||||
-rw-r--r-- | ui-repolist.c | 3 |
3 files changed, 7 insertions, 22 deletions
@@ -124,26 +124,11 @@ void html_vtxtf(const char *format, va_list ap) void html_txt(const char *txt) { - const char *t = txt; - while (t && *t) { - int c = *t; - if (c == '<' || c == '>' || c == '&') { - html_raw(txt, t - txt); - if (c == '>') - html(">"); - else if (c == '<') - html("<"); - else if (c == '&') - html("&"); - txt = t + 1; - } - t++; - } - if (t != txt) - html(txt); + if (txt) + html_ntxt(strlen(txt), txt); } -void html_ntxt(int len, const char *txt) +int html_ntxt(int len, const char *txt) { const char *t = txt; while (t && *t && len--) { @@ -162,8 +147,7 @@ void html_ntxt(int len, const char *txt) } if (t != txt) html_raw(txt, t - txt); - if (len < 0) - html("..."); + return len; } void html_attrf(const char *fmt, ...) @@ -19,7 +19,7 @@ __attribute__((format (printf,1,2))) extern void html_attrf(const char *format,...); extern void html_txt(const char *txt); -extern void html_ntxt(int len, const char *txt); +extern int html_ntxt(int len, const char *txt); extern void html_attr(const char *txt); extern void html_url_path(const char *txt); extern void html_url_arg(const char *txt); diff --git a/ui-repolist.c b/ui-repolist.c index 7272e87..089113d 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -329,7 +329,8 @@ void cgit_print_repolist(void) repourl = cgit_repourl(ctx.repo->url); html_link_open(repourl, NULL, NULL); free(repourl); - html_ntxt(ctx.cfg.max_repodesc_len, ctx.repo->desc); + if (html_ntxt(ctx.cfg.max_repodesc_len, ctx.repo->desc) < 0) + html("..."); html_link_close(); html("</td><td>"); if (ctx.cfg.enable_index_owner) { |