xref: /original-bsd/sys/i386/floppy/cat/errfunction (revision 3705696b)
1/*-
2 * Copyright (c) 1991 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * %sccs.include.redist.c%
6 *
7 *	@(#)errfunction	8.1 (Berkeley) 06/11/93
8 */
9
10err(s, syserr)
11	register char *s;
12	int syserr;
13{
14	extern int errno, sys_nerr;
15        extern char *sys_errlist[];
16	register char *e;
17
18	(void)write(2, PROGNAME, sizeof(PROGNAME) - 1);
19	if (s) {
20		for (e = s; *e; ++e);
21		(void)write(2, s, e - s);
22	}
23#define	BADERR	"unknown error"
24	if (syserr) {
25		if (s)
26			(void)write(2, ": ", 2);
27		if (errno > sys_nerr)
28			(void)write(2, BADERR, sizeof(BADERR) - 1);
29		else {
30			for (e = s = sys_errlist[errno]; *e; ++e);
31			(void)write(2, s, e - s);
32		}
33	}
34	(void)write(2, "\n", 1);
35	eval = 1;
36}
37