OLD | NEW |
1 #include <err.h> | 1 #include <err.h> |
2 #include <stdio.h> | 2 #include <stdio.h> |
3 #include <stdarg.h> | 3 #include <stdarg.h> |
4 #include <stdlib.h> | 4 #include <stdlib.h> |
5 | 5 |
6 extern char *__progname; | 6 extern char* __progname; |
7 | 7 |
8 void vwarn(const char *fmt, va_list ap) | 8 void vwarn(const char* fmt, va_list ap) { |
9 { | 9 fprintf(stderr, "%s: ", __progname); |
10 » fprintf (stderr, "%s: ", __progname); | 10 if (fmt) { |
11 » if (fmt) { | 11 vfprintf(stderr, fmt, ap); |
12 » » vfprintf(stderr, fmt, ap); | 12 fputs(": ", stderr); |
13 » » fputs (": ", stderr); | 13 } |
14 » } | 14 perror(0); |
15 » perror(0); | |
16 } | 15 } |
17 | 16 |
18 void vwarnx(const char *fmt, va_list ap) | 17 void vwarnx(const char* fmt, va_list ap) { |
19 { | 18 fprintf(stderr, "%s: ", __progname); |
20 » fprintf (stderr, "%s: ", __progname); | 19 if (fmt) |
21 » if (fmt) vfprintf(stderr, fmt, ap); | 20 vfprintf(stderr, fmt, ap); |
22 » putc('\n', stderr); | 21 putc('\n', stderr); |
23 } | 22 } |
24 | 23 |
25 _Noreturn void verr(int status, const char *fmt, va_list ap) | 24 _Noreturn void verr(int status, const char* fmt, va_list ap) { |
26 { | 25 vwarn(fmt, ap); |
27 » vwarn(fmt, ap); | 26 exit(status); |
28 » exit(status); | |
29 } | 27 } |
30 | 28 |
31 _Noreturn void verrx(int status, const char *fmt, va_list ap) | 29 _Noreturn void verrx(int status, const char* fmt, va_list ap) { |
32 { | 30 vwarnx(fmt, ap); |
33 » vwarnx(fmt, ap); | 31 exit(status); |
34 » exit(status); | |
35 } | 32 } |
36 | 33 |
37 void warn(const char *fmt, ...) | 34 void warn(const char* fmt, ...) { |
38 { | 35 va_list ap; |
39 » va_list ap; | 36 va_start(ap, fmt); |
40 » va_start(ap, fmt); | 37 vwarn(fmt, ap); |
41 » vwarn(fmt, ap); | 38 va_end(ap); |
42 » va_end(ap); | |
43 } | 39 } |
44 | 40 |
45 void warnx(const char *fmt, ...) | 41 void warnx(const char* fmt, ...) { |
46 { | 42 va_list ap; |
47 » va_list ap; | 43 va_start(ap, fmt); |
48 » va_start(ap, fmt); | 44 vwarnx(fmt, ap); |
49 » vwarnx(fmt, ap); | 45 va_end(ap); |
50 » va_end(ap); | |
51 } | 46 } |
52 | 47 |
53 _Noreturn void err(int status, const char *fmt, ...) | 48 _Noreturn void err(int status, const char* fmt, ...) { |
54 { | 49 va_list ap; |
55 » va_list ap; | 50 va_start(ap, fmt); |
56 » va_start(ap, fmt); | 51 verr(status, fmt, ap); |
57 » verr(status, fmt, ap); | 52 va_end(ap); |
58 » va_end(ap); | |
59 } | 53 } |
60 | 54 |
61 _Noreturn void errx(int status, const char *fmt, ...) | 55 _Noreturn void errx(int status, const char* fmt, ...) { |
62 { | 56 va_list ap; |
63 » va_list ap; | 57 va_start(ap, fmt); |
64 » va_start(ap, fmt); | 58 verrx(status, fmt, ap); |
65 » verrx(status, fmt, ap); | 59 va_end(ap); |
66 » va_end(ap); | |
67 } | 60 } |
OLD | NEW |