author | Lars Hjemli <hjemli@gmail.com> | 2009-01-29 21:21:24 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-01-29 21:21:24 (UTC) |
commit | d6174b7aab476c2b6a86e59d98cf978d603045f4 (patch) (side-by-side diff) | |
tree | ccc348a5887b2ca580aabfb3eca90bbd86a24386 /html.c | |
parent | a61871a18ffa9fc28e7ab0950415404350c8c857 (diff) | |
parent | 7efcef00b5aadf22f5be80ecd7b736398cf7f6b4 (diff) | |
download | cgit-d6174b7aab476c2b6a86e59d98cf978d603045f4.zip cgit-d6174b7aab476c2b6a86e59d98cf978d603045f4.tar.gz cgit-d6174b7aab476c2b6a86e59d98cf978d603045f4.tar.bz2 |
Merge branch 'stable'
-rw-r--r-- | html.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -51,136 +51,138 @@ void htmlf(const char *format, ...) va_list args; va_start(args, format); vsnprintf(buf, sizeof(buf), format, args); va_end(args); html(buf); } void html_status(int code, const char *msg, int more_headers) { htmlf("Status: %d %s\n", code, msg); if (!more_headers) html("\n"); } void html_txt(char *txt) { char *t = txt; while(t && *t){ int c = *t; if (c=='<' || c=='>' || c=='&') { write(htmlfd, txt, t - txt); if (c=='>') html(">"); else if (c=='<') html("<"); else if (c=='&') html("&"); txt = t+1; } t++; } if (t!=txt) html(txt); } void html_ntxt(int len, char *txt) { char *t = txt; while(t && *t && len--){ int c = *t; if (c=='<' || c=='>' || c=='&') { write(htmlfd, txt, t - txt); if (c=='>') html(">"); else if (c=='<') html("<"); else if (c=='&') html("&"); txt = t+1; } t++; } if (t!=txt) write(htmlfd, txt, t - txt); if (len<0) html("..."); } void html_attr(char *txt) { char *t = txt; while(t && *t){ int c = *t; - if (c=='<' || c=='>' || c=='\'') { + if (c=='<' || c=='>' || c=='\'' || c=='\"') { write(htmlfd, txt, t - txt); if (c=='>') html(">"); else if (c=='<') html("<"); else if (c=='\'') - html(""e;"); + html("'"); + else if (c=='"') + html("""); txt = t+1; } t++; } if (t!=txt) html(txt); } void html_url_path(char *txt) { char *t = txt; while(t && *t){ int c = *t; if (c=='"' || c=='#' || c=='\'' || c=='?') { write(htmlfd, txt, t - txt); write(htmlfd, fmt("%%%2x", c), 3); txt = t+1; } t++; } if (t!=txt) html(txt); } void html_url_arg(char *txt) { char *t = txt; while(t && *t){ int c = *t; if (c=='"' || c=='#' || c=='%' || c=='&' || c=='\'' || c=='+' || c=='?') { write(htmlfd, txt, t - txt); write(htmlfd, fmt("%%%2x", c), 3); txt = t+1; } t++; } if (t!=txt) html(txt); } void html_hidden(char *name, char *value) { html("<input type='hidden' name='"); html_attr(name); html("' value='"); html_attr(value); html("'/>"); } void html_option(char *value, char *text, char *selected_value) { html("<option value='"); html_attr(value); html("'"); if (selected_value && !strcmp(selected_value, value)) html(" selected='selected'"); html(">"); html_txt(text); html("</option>\n"); } void html_link_open(char *url, char *title, char *class) { html("<a href='"); |