From 0d169ada2ba81210ab1191a5f2212662e90db77e Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Sat, 9 Dec 2006 15:18:17 +0100 Subject: Import cgit prototype from git tree This enables basic cgit functionality, using libgit.a and xdiff/lib.a from git + a custom "git.h" + openssl for sha1 routines. Signed-off-by: Lars Hjemli --- html.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 html.c (limited to 'html.c') diff --git a/html.c b/html.c new file mode 100644 index 0000000..5780dc1 --- /dev/null +++ b/html.c @@ -0,0 +1,100 @@ +#include "cgit.h" + +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])) + die("[html.c] string truncated: %s", format); + return buf[bufidx]; +} + +void html(const char *txt) +{ + fputs(txt, stdout); +} + +void htmlf(const char *format, ...) +{ + va_list args; + + va_start(args, format); + vprintf(format, args); + va_end(args); +} + +void html_txt(char *txt) +{ + char *t = txt; + while(*t){ + 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) + html(txt); +} + + +void html_attr(char *txt) +{ + char *t = txt; + while(*t){ + int c = *t; + if (c=='<' || c=='>' || c=='\'') { + *t = '\0'; + html(txt); + *t = c; + if (c=='>') + html(">"); + else if (c=='<') + html("<"); + else if (c=='\'') + html(""e;"); + txt = t+1; + } + t++; + } + if (t!=txt) + html(txt); +} + +void html_link_open(char *url, char *title, char *class) +{ + html(""); +} + +void html_link_close(void) +{ + html(""); +} -- cgit v1.2.3-70-g09d2