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