xref: /minix3/usr.bin/tail/misc.c (revision a967d739abf6b9e18d75e99925030c41b4f075ca)
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