forsyth20121205-174063a80cc13 years agoHistory
43 lines · 545 B · C
RawDownload
#include "lib9.h" #include <errno.h> static char errstring[ERRMAX]; enum{	Magic = 0xffffff}; voidwerrstr(char *fmt, ...){	va_list arg; 	va_start(arg, fmt);	vseprint(errstring, errstring+sizeof(errstring), fmt, arg);	va_end(arg);	errno = Magic;} voidoserrstr(char *buf, uint nerr){	char *s; 	if(errno != EINTR)		s = strerror(errno);	else		s = "interrupted";	utfecpy(buf, buf+nerr, s);} interrstr(char *buf, uint nerr){	if(errno == Magic)		utfecpy(buf, buf+nerr, errstring);	else		oserrstr(buf, nerr);	return 1;}