1 /*
2 Linux error(3) function go around for systems that has err(3) and
3 warn(3), but no error(3). MacOS is good example of such.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation version 2.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301 USA.
18 */
19
20 #include <stdarg.h>
21 #include <err.h>
22
error(int status,int errnum,const char * format,...)23 void error(int status, int errnum, const char *format, ...) {
24 va_list arg;
25
26 va_start(arg, format);
27 if (errnum == 0) {
28 if (status == 0)
29 vwarnx(format, arg);
30 else
31 verrx(status, format, arg);
32 } else {
33 if (status == 0)
34 vwarn(format, arg);
35 else
36 verr(status, format, arg);
37 }
38 va_end(arg);
39 }
40