Diffstat (limited to 'html.c')
| -rw-r--r-- | html.c | 31 |
1 files changed, 19 insertions, 12 deletions
@@ -6,13 +6,7 @@ * (see COPYING for full license text) */ -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> - -int htmlfd = STDOUT_FILENO; +#include "cgit.h" char *fmt(const char *format, ...) { @@ -27,10 +21,8 @@ char *fmt(const char *format, ...) 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); - } + if (len>sizeof(buf[bufidx])) + die("[html.c] string truncated: %s", format); return buf[bufidx]; } @@ -168,10 +160,25 @@ void html_link_close(void) void html_fileperm(unsigned short mode) { - htmlf("%c%c%c", (mode & 4 ? 'r' : '-'), + 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 if (S_ISGITLINK(mode)) + html("m"); + else + html("-"); + html_fileperm(mode >> 6); + html_fileperm(mode >> 3); + html_fileperm(mode); +} + int html_include(const char *filename) { FILE *f; |