fix constraint violation in ftw
[musl] / src / linux / err.c
1 #include <err.h>
2 #include <stdio.h>
3 #include <stdarg.h>
4 #include <stdlib.h>
5
6 void vwarn(const char *fmt, va_list ap)
7 {
8         if (fmt) vfprintf(stderr, fmt, ap);
9         perror("");
10 }
11
12 void vwarnx(const char *fmt, va_list ap)
13 {
14         if (fmt) vfprintf(stderr, fmt, ap);
15         putc('\n', stderr);
16 }
17
18 _Noreturn void verr(int status, const char *fmt, va_list ap)
19 {
20         vwarn(fmt, ap);
21         exit(status);
22 }
23
24 _Noreturn void verrx(int status, const char *fmt, va_list ap)
25 {
26         vwarnx(fmt, ap);
27         exit(status);
28 }
29
30 void warn(const char *fmt, ...)
31 {
32         va_list ap;
33         va_start(ap, fmt);
34         vwarn(fmt, ap);
35         va_end(ap);
36 }
37
38 void warnx(const char *fmt, ...)
39 {
40         va_list ap;
41         va_start(ap, fmt);
42         vwarnx(fmt, ap);
43         va_end(ap);
44 }
45
46 _Noreturn void err(int status, const char *fmt, ...)
47 {
48         va_list ap;
49         va_start(ap, fmt);
50         verr(status, fmt, ap);
51         va_end(ap);
52 }
53
54 _Noreturn void errx(int status, const char *fmt, ...)
55 {
56         va_list ap;
57         va_start(ap, fmt);
58         verrx(status, fmt, ap);
59         va_end(ap);
60 }