Blame


1 8951cb19 2022-07-01 op /*
2 8951cb19 2022-07-01 op * Copyright (c) 1993
3 8951cb19 2022-07-01 op * The Regents of the University of California. All rights reserved.
4 8951cb19 2022-07-01 op *
5 8951cb19 2022-07-01 op * Redistribution and use in source and binary forms, with or without
6 8951cb19 2022-07-01 op * modification, are permitted provided that the following conditions
7 8951cb19 2022-07-01 op * are met:
8 8951cb19 2022-07-01 op * 1. Redistributions of source code must retain the above copyright
9 8951cb19 2022-07-01 op * notice, this list of conditions and the following disclaimer.
10 8951cb19 2022-07-01 op * 2. Redistributions in binary form must reproduce the above copyright
11 8951cb19 2022-07-01 op * notice, this list of conditions and the following disclaimer in the
12 8951cb19 2022-07-01 op * documentation and/or other materials provided with the distribution.
13 8951cb19 2022-07-01 op * 3. Neither the name of the University nor the names of its contributors
14 8951cb19 2022-07-01 op * may be used to endorse or promote products derived from this software
15 8951cb19 2022-07-01 op * without specific prior written permission.
16 8951cb19 2022-07-01 op *
17 8951cb19 2022-07-01 op * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18 8951cb19 2022-07-01 op * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 8951cb19 2022-07-01 op * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 8951cb19 2022-07-01 op * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21 8951cb19 2022-07-01 op * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 8951cb19 2022-07-01 op * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 8951cb19 2022-07-01 op * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 8951cb19 2022-07-01 op * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 8951cb19 2022-07-01 op * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 8951cb19 2022-07-01 op * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 8951cb19 2022-07-01 op * SUCH DAMAGE.
28 8951cb19 2022-07-01 op */
29 8951cb19 2022-07-01 op
30 f164f2f4 2022-07-01 op #include "config.h"
31 f164f2f4 2022-07-01 op
32 8951cb19 2022-07-01 op #include <errno.h>
33 8951cb19 2022-07-01 op #include <stdarg.h>
34 8951cb19 2022-07-01 op #include <stdio.h>
35 8951cb19 2022-07-01 op #include <stdlib.h>
36 8951cb19 2022-07-01 op #include <string.h>
37 8951cb19 2022-07-01 op
38 8951cb19 2022-07-01 op void
39 8951cb19 2022-07-01 op vwarnx(const char *fmt, va_list ap)
40 8951cb19 2022-07-01 op {
41 8951cb19 2022-07-01 op fprintf(stderr, "%s: ", getprogname());
42 8951cb19 2022-07-01 op if (fmt != NULL)
43 8951cb19 2022-07-01 op vfprintf(stderr, fmt, ap);
44 8951cb19 2022-07-01 op fprintf(stderr, "\n");
45 8951cb19 2022-07-01 op }
46 8951cb19 2022-07-01 op
47 8951cb19 2022-07-01 op void
48 8951cb19 2022-07-01 op vwarnc(int code, const char *fmt, va_list ap)
49 8951cb19 2022-07-01 op {
50 8951cb19 2022-07-01 op fprintf(stderr, "%s: ", getprogname());
51 8951cb19 2022-07-01 op if (fmt != NULL) {
52 8951cb19 2022-07-01 op vfprintf(stderr, fmt, ap);
53 8951cb19 2022-07-01 op fprintf(stderr, ": ");
54 8951cb19 2022-07-01 op }
55 8951cb19 2022-07-01 op fprintf(stderr, "%s\n", strerror(code));
56 8951cb19 2022-07-01 op }
57 8951cb19 2022-07-01 op
58 8951cb19 2022-07-01 op void
59 8951cb19 2022-07-01 op vwarn(const char *fmt, va_list ap)
60 8951cb19 2022-07-01 op {
61 8951cb19 2022-07-01 op int sverrno;
62 8951cb19 2022-07-01 op
63 8951cb19 2022-07-01 op sverrno = errno;
64 8951cb19 2022-07-01 op fprintf(stderr, "%s: ", getprogname());
65 8951cb19 2022-07-01 op if (fmt != NULL) {
66 8951cb19 2022-07-01 op vfprintf(stderr, fmt, ap);
67 8951cb19 2022-07-01 op fprintf(stderr, ": ");
68 8951cb19 2022-07-01 op }
69 8951cb19 2022-07-01 op fprintf(stderr, "%s\n", strerror(sverrno));
70 8951cb19 2022-07-01 op }
71 8951cb19 2022-07-01 op
72 8951cb19 2022-07-01 op void
73 8951cb19 2022-07-01 op verrc(int eval, int code, const char *fmt, va_list ap)
74 8951cb19 2022-07-01 op {
75 8951cb19 2022-07-01 op fprintf(stderr, "%s: ", getprogname());
76 8951cb19 2022-07-01 op if (fmt != NULL) {
77 8951cb19 2022-07-01 op vfprintf(stderr, fmt, ap);
78 8951cb19 2022-07-01 op fprintf(stderr, ": ");
79 8951cb19 2022-07-01 op }
80 8951cb19 2022-07-01 op fprintf(stderr, "%s\n", strerror(code));
81 8951cb19 2022-07-01 op exit(eval);
82 8951cb19 2022-07-01 op }
83 8951cb19 2022-07-01 op
84 8951cb19 2022-07-01 op void
85 8951cb19 2022-07-01 op verrx(int eval, const char *fmt, va_list ap)
86 8951cb19 2022-07-01 op {
87 8951cb19 2022-07-01 op fprintf(stderr, "%s: ", getprogname());
88 8951cb19 2022-07-01 op if (fmt != NULL)
89 8951cb19 2022-07-01 op vfprintf(stderr, fmt, ap);
90 8951cb19 2022-07-01 op fprintf(stderr, "\n");
91 8951cb19 2022-07-01 op exit(eval);
92 8951cb19 2022-07-01 op }
93 8951cb19 2022-07-01 op
94 8951cb19 2022-07-01 op void
95 8951cb19 2022-07-01 op verr(int eval, const char *fmt, va_list ap)
96 8951cb19 2022-07-01 op {
97 8951cb19 2022-07-01 op int sverrno;
98 8951cb19 2022-07-01 op
99 8951cb19 2022-07-01 op sverrno = errno;
100 8951cb19 2022-07-01 op fprintf(stderr, "%s: ", getprogname());
101 8951cb19 2022-07-01 op if (fmt != NULL) {
102 8951cb19 2022-07-01 op vfprintf(stderr, fmt, ap);
103 8951cb19 2022-07-01 op fprintf(stderr, ": ");
104 8951cb19 2022-07-01 op }
105 8951cb19 2022-07-01 op fprintf(stderr, "%s\n", strerror(sverrno));
106 8951cb19 2022-07-01 op exit(eval);
107 8951cb19 2022-07-01 op }
108 8951cb19 2022-07-01 op
109 8951cb19 2022-07-01 op void
110 8951cb19 2022-07-01 op err(int eval, const char *fmt, ...)
111 8951cb19 2022-07-01 op {
112 8951cb19 2022-07-01 op va_list ap;
113 8951cb19 2022-07-01 op
114 8951cb19 2022-07-01 op va_start(ap, fmt);
115 8951cb19 2022-07-01 op verr(eval, fmt, ap);
116 8951cb19 2022-07-01 op va_end(ap);
117 8951cb19 2022-07-01 op }
118 8951cb19 2022-07-01 op
119 8951cb19 2022-07-01 op void
120 8951cb19 2022-07-01 op errc(int eval, int code, const char *fmt, ...)
121 8951cb19 2022-07-01 op {
122 8951cb19 2022-07-01 op va_list ap;
123 8951cb19 2022-07-01 op
124 8951cb19 2022-07-01 op va_start(ap, fmt);
125 8951cb19 2022-07-01 op verrc(eval, code, fmt, ap);
126 8951cb19 2022-07-01 op va_end(ap);
127 8951cb19 2022-07-01 op }
128 8951cb19 2022-07-01 op
129 8951cb19 2022-07-01 op void
130 8951cb19 2022-07-01 op errx(int eval, const char *fmt, ...)
131 8951cb19 2022-07-01 op {
132 8951cb19 2022-07-01 op va_list ap;
133 8951cb19 2022-07-01 op
134 8951cb19 2022-07-01 op va_start(ap, fmt);
135 8951cb19 2022-07-01 op verrx(eval, fmt, ap);
136 8951cb19 2022-07-01 op va_end(ap);
137 8951cb19 2022-07-01 op }
138 8951cb19 2022-07-01 op
139 8951cb19 2022-07-01 op void
140 8951cb19 2022-07-01 op warn(const char *fmt, ...)
141 8951cb19 2022-07-01 op {
142 8951cb19 2022-07-01 op va_list ap;
143 8951cb19 2022-07-01 op
144 8951cb19 2022-07-01 op va_start(ap, fmt);
145 8951cb19 2022-07-01 op vwarn(fmt, ap);
146 8951cb19 2022-07-01 op va_end(ap);
147 8951cb19 2022-07-01 op }
148 8951cb19 2022-07-01 op
149 8951cb19 2022-07-01 op void
150 8951cb19 2022-07-01 op warnc(int code, const char *fmt, ...)
151 8951cb19 2022-07-01 op {
152 8951cb19 2022-07-01 op va_list ap;
153 8951cb19 2022-07-01 op
154 8951cb19 2022-07-01 op va_start(ap, fmt);
155 8951cb19 2022-07-01 op vwarnc(code, fmt, ap);
156 8951cb19 2022-07-01 op va_end(ap);
157 8951cb19 2022-07-01 op }
158 8951cb19 2022-07-01 op
159 8951cb19 2022-07-01 op void
160 8951cb19 2022-07-01 op warnx(const char *fmt, ...)
161 8951cb19 2022-07-01 op {
162 8951cb19 2022-07-01 op va_list ap;
163 8951cb19 2022-07-01 op
164 8951cb19 2022-07-01 op va_start(ap, fmt);
165 8951cb19 2022-07-01 op vwarnx(fmt, ap);
166 8951cb19 2022-07-01 op va_end(ap);
167 8951cb19 2022-07-01 op }