+/* 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 "cgit.h"
char *fmt(const char *format, ...)
void html(const char *txt)
{
- fputs(txt, stdout);
+ write(htmlfd, txt, strlen(txt));
}
void htmlf(const char *format, ...)
{
+ static char buf[65536];
va_list args;
va_start(args, format);
- vprintf(format, args);
+ vsnprintf(buf, sizeof(buf), format, args);
va_end(args);
+ html(buf);
}
void html_txt(char *txt)
{
html("</a>");
}
+
+void html_fileperm(unsigned short mode)
+{
+ htmlf("%c%c%c", (mode & 4 ? 'r' : '-'),
+ (mode & 2 ? 'w' : '-'), (mode & 1 ? 'x' : '-'));
+}
+
+void html_filemode(unsigned short mode)
+{
+ if (S_ISDIR(mode))
+ html("d");
+ else if (S_ISLNK(mode))
+ html("l");
+ else
+ html("-");
+ html_fileperm(mode >> 6);
+ html_fileperm(mode >> 3);
+ html_fileperm(mode);
+}
+