1*a967d739SClaudio Martella /*-
2*a967d739SClaudio Martella * Copyright (c) 1991, 1993
3*a967d739SClaudio Martella * The Regents of the University of California. All rights reserved.
4*a967d739SClaudio Martella *
5*a967d739SClaudio Martella * This code is derived from software contributed to Berkeley by
6*a967d739SClaudio Martella * Edward Sze-Tyan Wang.
7*a967d739SClaudio Martella *
8*a967d739SClaudio Martella * Redistribution and use in source and binary forms, with or without
9*a967d739SClaudio Martella * modification, are permitted provided that the following conditions
10*a967d739SClaudio Martella * are met:
11*a967d739SClaudio Martella * 1. Redistributions of source code must retain the above copyright
12*a967d739SClaudio Martella * notice, this list of conditions and the following disclaimer.
13*a967d739SClaudio Martella * 2. Redistributions in binary form must reproduce the above copyright
14*a967d739SClaudio Martella * notice, this list of conditions and the following disclaimer in the
15*a967d739SClaudio Martella * documentation and/or other materials provided with the distribution.
16*a967d739SClaudio Martella * 3. Neither the name of the University nor the names of its contributors
17*a967d739SClaudio Martella * may be used to endorse or promote products derived from this software
18*a967d739SClaudio Martella * without specific prior written permission.
19*a967d739SClaudio Martella *
20*a967d739SClaudio Martella * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21*a967d739SClaudio Martella * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22*a967d739SClaudio Martella * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23*a967d739SClaudio Martella * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24*a967d739SClaudio Martella * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25*a967d739SClaudio Martella * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26*a967d739SClaudio Martella * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27*a967d739SClaudio Martella * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28*a967d739SClaudio Martella * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29*a967d739SClaudio Martella * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30*a967d739SClaudio Martella * SUCH DAMAGE.
31*a967d739SClaudio Martella */
32*a967d739SClaudio Martella
33*a967d739SClaudio Martella #include <sys/cdefs.h>
34*a967d739SClaudio Martella #ifndef lint
35*a967d739SClaudio Martella #if 0
36*a967d739SClaudio Martella static char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 6/6/93";
37*a967d739SClaudio Martella #endif
38*a967d739SClaudio Martella __RCSID("$NetBSD: misc.c,v 1.7 2011/09/03 09:02:20 christos Exp $");
39*a967d739SClaudio Martella #endif /* not lint */
40*a967d739SClaudio Martella
41*a967d739SClaudio Martella #include <sys/types.h>
42*a967d739SClaudio Martella #include <sys/stat.h>
43*a967d739SClaudio Martella #include <errno.h>
44*a967d739SClaudio Martella #include <stdarg.h>
45*a967d739SClaudio Martella #include <stdio.h>
46*a967d739SClaudio Martella #include <stdlib.h>
47*a967d739SClaudio Martella #include <string.h>
48*a967d739SClaudio Martella #include <unistd.h>
49*a967d739SClaudio Martella #include <err.h>
50*a967d739SClaudio Martella
51*a967d739SClaudio Martella #include "extern.h"
52*a967d739SClaudio Martella
53*a967d739SClaudio Martella void
ierr(void)54*a967d739SClaudio Martella ierr(void)
55*a967d739SClaudio Martella {
56*a967d739SClaudio Martella xerr(0, "%s", fname);
57*a967d739SClaudio Martella }
58*a967d739SClaudio Martella
59*a967d739SClaudio Martella void
oerr(void)60*a967d739SClaudio Martella oerr(void)
61*a967d739SClaudio Martella {
62*a967d739SClaudio Martella xerr(1, "stdout");
63*a967d739SClaudio Martella }
64*a967d739SClaudio Martella
65*a967d739SClaudio Martella void
xerr(int fatal,const char * fmt,...)66*a967d739SClaudio Martella xerr(int fatal, const char *fmt, ...)
67*a967d739SClaudio Martella {
68*a967d739SClaudio Martella va_list ap;
69*a967d739SClaudio Martella
70*a967d739SClaudio Martella va_start(ap, fmt);
71*a967d739SClaudio Martella vwarn(fmt, ap);
72*a967d739SClaudio Martella va_end(ap);
73*a967d739SClaudio Martella if (fatal)
74*a967d739SClaudio Martella exit(1);
75*a967d739SClaudio Martella rval = 1;
76*a967d739SClaudio Martella }
77*a967d739SClaudio Martella
78*a967d739SClaudio Martella void
xerrx(int fatal,const char * fmt,...)79*a967d739SClaudio Martella xerrx(int fatal, const char *fmt, ...)
80*a967d739SClaudio Martella {
81*a967d739SClaudio Martella va_list ap;
82*a967d739SClaudio Martella
83*a967d739SClaudio Martella va_start(ap, fmt);
84*a967d739SClaudio Martella vwarnx(fmt, ap);
85*a967d739SClaudio Martella va_end(ap);
86*a967d739SClaudio Martella if (fatal)
87*a967d739SClaudio Martella exit(1);
88*a967d739SClaudio Martella rval = 1;
89*a967d739SClaudio Martella }
90