16dd652faSwdenk /*
26dd652faSwdenk * (C) Copyright 2000
36dd652faSwdenk * Murray Jensen <Murray.Jensen@csiro.au>
46dd652faSwdenk *
5*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+
66dd652faSwdenk */
76dd652faSwdenk
83ba68654Swdenk #include <stdio.h>
93ba68654Swdenk #include <stdlib.h>
103ba68654Swdenk #include <string.h>
113ba68654Swdenk #include <errno.h>
123ba68654Swdenk #include "error.h"
133ba68654Swdenk
143ba68654Swdenk char *pname;
153ba68654Swdenk
163ba68654Swdenk void
Warning(char * fmt,...)173ba68654Swdenk Warning(char *fmt, ...)
183ba68654Swdenk {
193ba68654Swdenk va_list args;
203ba68654Swdenk
213ba68654Swdenk fprintf(stderr, "%s: WARNING: ", pname);
223ba68654Swdenk
233ba68654Swdenk va_start(args, fmt);
243ba68654Swdenk vfprintf(stderr, fmt, args);
253ba68654Swdenk va_end(args);
263ba68654Swdenk
273ba68654Swdenk fprintf(stderr, "\n");
283ba68654Swdenk }
293ba68654Swdenk
303ba68654Swdenk void
Error(char * fmt,...)313ba68654Swdenk Error(char *fmt, ...)
323ba68654Swdenk {
333ba68654Swdenk va_list args;
343ba68654Swdenk
353ba68654Swdenk fprintf(stderr, "%s: ERROR: ", pname);
363ba68654Swdenk
373ba68654Swdenk va_start(args, fmt);
383ba68654Swdenk vfprintf(stderr, fmt, args);
393ba68654Swdenk va_end(args);
403ba68654Swdenk
413ba68654Swdenk fprintf(stderr, "\n");
423ba68654Swdenk
433ba68654Swdenk exit(1);
443ba68654Swdenk }
453ba68654Swdenk
463ba68654Swdenk void
Perror(char * fmt,...)473ba68654Swdenk Perror(char *fmt, ...)
483ba68654Swdenk {
493ba68654Swdenk va_list args;
503ba68654Swdenk int e = errno;
513ba68654Swdenk char *p;
523ba68654Swdenk
533ba68654Swdenk fprintf(stderr, "%s: ERROR: ", pname);
543ba68654Swdenk
553ba68654Swdenk va_start(args, fmt);
563ba68654Swdenk vfprintf(stderr, fmt, args);
573ba68654Swdenk va_end(args);
583ba68654Swdenk
593ba68654Swdenk if ((p = strerror(e)) == NULL || *p == '\0')
603ba68654Swdenk fprintf(stderr, ": Unknown Error (%d)\n", e);
613ba68654Swdenk else
623ba68654Swdenk fprintf(stderr, ": %s\n", p);
633ba68654Swdenk
643ba68654Swdenk exit(1);
653ba68654Swdenk }
66