1*3ba68654Swdenk #include <stdio.h> 2*3ba68654Swdenk #include <stdlib.h> 3*3ba68654Swdenk #include <string.h> 4*3ba68654Swdenk #include <errno.h> 5*3ba68654Swdenk #include "error.h" 6*3ba68654Swdenk 7*3ba68654Swdenk char *pname; 8*3ba68654Swdenk 9*3ba68654Swdenk void 10*3ba68654Swdenk Warning(char *fmt, ...) 11*3ba68654Swdenk { 12*3ba68654Swdenk va_list args; 13*3ba68654Swdenk 14*3ba68654Swdenk fprintf(stderr, "%s: WARNING: ", pname); 15*3ba68654Swdenk 16*3ba68654Swdenk va_start(args, fmt); 17*3ba68654Swdenk vfprintf(stderr, fmt, args); 18*3ba68654Swdenk va_end(args); 19*3ba68654Swdenk 20*3ba68654Swdenk fprintf(stderr, "\n"); 21*3ba68654Swdenk } 22*3ba68654Swdenk 23*3ba68654Swdenk void 24*3ba68654Swdenk Error(char *fmt, ...) 25*3ba68654Swdenk { 26*3ba68654Swdenk va_list args; 27*3ba68654Swdenk 28*3ba68654Swdenk fprintf(stderr, "%s: ERROR: ", pname); 29*3ba68654Swdenk 30*3ba68654Swdenk va_start(args, fmt); 31*3ba68654Swdenk vfprintf(stderr, fmt, args); 32*3ba68654Swdenk va_end(args); 33*3ba68654Swdenk 34*3ba68654Swdenk fprintf(stderr, "\n"); 35*3ba68654Swdenk 36*3ba68654Swdenk exit(1); 37*3ba68654Swdenk } 38*3ba68654Swdenk 39*3ba68654Swdenk void 40*3ba68654Swdenk Perror(char *fmt, ...) 41*3ba68654Swdenk { 42*3ba68654Swdenk va_list args; 43*3ba68654Swdenk int e = errno; 44*3ba68654Swdenk char *p; 45*3ba68654Swdenk 46*3ba68654Swdenk fprintf(stderr, "%s: ERROR: ", pname); 47*3ba68654Swdenk 48*3ba68654Swdenk va_start(args, fmt); 49*3ba68654Swdenk vfprintf(stderr, fmt, args); 50*3ba68654Swdenk va_end(args); 51*3ba68654Swdenk 52*3ba68654Swdenk if ((p = strerror(e)) == NULL || *p == '\0') 53*3ba68654Swdenk fprintf(stderr, ": Unknown Error (%d)\n", e); 54*3ba68654Swdenk else 55*3ba68654Swdenk fprintf(stderr, ": %s\n", p); 56*3ba68654Swdenk 57*3ba68654Swdenk exit(1); 58*3ba68654Swdenk } 59