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;
}