ref: 2296ee3d37775d6cfd87ed27dfee46cb9b85b12b
dir: /unix/otfsys.c/
#include "otfsys.h" #include <stdarg.h> #include <time.h> #define ERRMAX 512 static char errstr[ERRMAX]; char * otferrstr(void) { return errstr; } void werrstr(char *fmt, ...) { va_list a; char f[ERRMAX], buf[ERRMAX]; int n, withr; va_start(a, fmt); n = snprintf(f, sizeof(f), "%s", fmt); if((withr = (n >= 2 && f[n-2] == '%' && f[n-1] == 'r')) != 0) f[n-2] = 0; n = vsnprintf(buf, sizeof(buf), f, a); va_end(a); if(withr) snprintf(buf+n, sizeof(buf)-n, "%s", errstr); snprintf(errstr, sizeof(errstr), "%s", buf); } char * fmttime(long long v) { static char buf[32]; time_t t = v; struct tm *tm; buf[0] = 0; if((tm = gmtime(&t)) != nil) strftime(buf, sizeof(buf), "%c", tm); return buf; }