author | Lars Hjemli <hjemli@gmail.com> | 2008-09-01 20:40:55 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-09-01 20:40:55 (UTC) |
commit | d532c4d1612c94347427fa1afda6afb7c34e512a (patch) (side-by-side diff) | |
tree | 53f3f86ba8e78051bee96cb65a6219ef43d9adab /html.c | |
parent | 288d502b3d8e7fa916104b486bbb146521e5c716 (diff) | |
parent | 885096c189574b1cf2e0897cc05aadd7b092a677 (diff) | |
download | cgit-d532c4d1612c94347427fa1afda6afb7c34e512a.zip cgit-d532c4d1612c94347427fa1afda6afb7c34e512a.tar.gz cgit-d532c4d1612c94347427fa1afda6afb7c34e512a.tar.bz2 |
Merge branch 'lh/plain'
* lh/plain:
Supply status description to html_status()
ui-tree: link to plain view instead of blob view
Implement plain view
-rw-r--r-- | html.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -1,104 +1,109 @@ /* html.c: helper functions for html output * * Copyright (C) 2006 Lars Hjemli * * Licensed under GNU General Public License v2 * (see COPYING for full license text) */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <errno.h> int htmlfd = STDOUT_FILENO; char *fmt(const char *format, ...) { static char buf[8][1024]; static int bufidx; int len; va_list args; bufidx++; bufidx &= 7; va_start(args, format); len = vsnprintf(buf[bufidx], sizeof(buf[bufidx]), format, args); va_end(args); if (len>sizeof(buf[bufidx])) { fprintf(stderr, "[html.c] string truncated: %s\n", format); exit(1); } return buf[bufidx]; } +void html_raw(const char *data, size_t size) +{ + write(htmlfd, data, size); +} + void html(const char *txt) { write(htmlfd, txt, strlen(txt)); } void htmlf(const char *format, ...) { static char buf[65536]; va_list args; va_start(args, format); vsnprintf(buf, sizeof(buf), format, args); va_end(args); html(buf); } -void html_status(int code, int more_headers) +void html_status(int code, const char *msg, int more_headers) { - htmlf("Status: %d\n", code); + 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("..."); } |