summaryrefslogtreecommitdiffstats
path: root/bin/sh/error.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-09-01 10:22:36 +0000
committerpeter <peter@FreeBSD.org>1996-09-01 10:22:36 +0000
commit5195be912eb257c05a0c97e561e72f01af2583ff (patch)
treee47ab3981b495c675a987dd1e943d1f4c823f314 /bin/sh/error.c
parent2fc7d7d1fa299368ccdddede67b31695266698bd (diff)
downloadFreeBSD-src-5195be912eb257c05a0c97e561e72f01af2583ff.zip
FreeBSD-src-5195be912eb257c05a0c97e561e72f01af2583ff.tar.gz
Merge of 4.4-Lite2 sh source, plus some gcc -Wall cleaning. This is a
merge of parallel duplicate work by Steve Price and myself. :-] There are some changes to the build that are my fault... mkinit.c was trying (poorly) to duplicate some of the work that make(1) is designed to do. The Makefile hackery is my fault too, the depend list was incomplete because of some explicit OBJS+= entries, so mkdep wasn't picking up their source file #includes. This closes a pile of /bin/sh PR's, but not all of them.. Submitted by: Steve Price <steve@bonsai.hiwaay.net>, peter
Diffstat (limited to 'bin/sh/error.c')
-rw-r--r--bin/sh/error.c99
1 files changed, 53 insertions, 46 deletions
diff --git a/bin/sh/error.c b/bin/sh/error.c
index c1c3b82..ca5c17b 100644
--- a/bin/sh/error.c
+++ b/bin/sh/error.c
@@ -33,11 +33,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: error.c,v 1.2 1994/09/24 02:57:27 davidg Exp $
+ * $Id: error.c,v 1.3 1995/05/30 00:07:10 rgrimes Exp $
*/
#ifndef lint
-static char sccsid[] = "@(#)error.c 8.1 (Berkeley) 5/31/93";
+static char sccsid[] = "@(#)error.c 8.2 (Berkeley) 5/4/95";
#endif /* not lint */
/*
@@ -49,12 +49,9 @@ static char sccsid[] = "@(#)error.c 8.1 (Berkeley) 5/31/93";
#include "options.h"
#include "output.h"
#include "error.h"
+#include "show.h"
#include <signal.h>
-#ifdef __STDC__
-#include "stdarg.h"
-#else
-#include <varargs.h>
-#endif
+#include <unistd.h>
#include <errno.h>
@@ -76,7 +73,9 @@ char *commandname;
*/
void
-exraise(e) {
+exraise(e)
+ int e;
+{
if (handler == NULL)
abort();
exception = e;
@@ -96,14 +95,15 @@ exraise(e) {
void
onint() {
+ sigset_t sigset;
+
if (suppressint) {
intpending++;
return;
}
intpending = 0;
-#ifdef BSD
- sigsetmask(0);
-#endif
+ sigemptyset(&sigset);
+ sigprocmask(SIG_SETMASK, &sigset, NULL);
if (rootshell && iflag)
exraise(EXINT);
else
@@ -126,21 +126,23 @@ error2(a, b)
* formatting. It then raises the error exception.
*/
-#ifdef __STDC__
+#if __STDC__
void
-error(char *msg, ...) {
+error(char *msg, ...)
#else
void
error(va_alist)
va_dcl
- {
+#endif
+{
+#if !__STDC__
char *msg;
#endif
va_list ap;
-
CLEAR_PENDING_INT;
INTOFF;
-#ifdef __STDC__
+
+#if __STDC__
va_start(ap, msg);
#else
va_start(ap);
@@ -179,55 +181,57 @@ struct errname {
#define ALL (E_OPEN|E_CREAT|E_EXEC)
STATIC const struct errname errormsg[] = {
- EINTR, ALL, "interrupted",
- EACCES, ALL, "permission denied",
- EIO, ALL, "I/O error",
- ENOENT, E_OPEN, "no such file",
- ENOENT, E_CREAT, "directory nonexistent",
- ENOENT, E_EXEC, "not found",
- ENOTDIR, E_OPEN, "no such file",
- ENOTDIR, E_CREAT, "directory nonexistent",
- ENOTDIR, E_EXEC, "not found",
- EISDIR, ALL, "is a directory",
-/* EMFILE, ALL, "too many open files", */
- ENFILE, ALL, "file table overflow",
- ENOSPC, ALL, "file system full",
+ { EINTR, ALL, "interrupted" },
+ { EACCES, ALL, "permission denied" },
+ { EIO, ALL, "I/O error" },
+ { ENOENT, E_OPEN, "no such file" },
+ { ENOENT, E_CREAT,"directory nonexistent" },
+ { ENOENT, E_EXEC, "not found" },
+ { ENOTDIR, E_OPEN, "no such file" },
+ { ENOTDIR, E_CREAT,"directory nonexistent" },
+ { ENOTDIR, E_EXEC, "not found" },
+ { EISDIR, ALL, "is a directory" },
+#ifdef notdef
+ { EMFILE, ALL, "too many open files" },
+#endif
+ { ENFILE, ALL, "file table overflow" },
+ { ENOSPC, ALL, "file system full" },
#ifdef EDQUOT
- EDQUOT, ALL, "disk quota exceeded",
+ { EDQUOT, ALL, "disk quota exceeded" },
#endif
#ifdef ENOSR
- ENOSR, ALL, "no streams resources",
+ { ENOSR, ALL, "no streams resources" },
#endif
- ENXIO, ALL, "no such device or address",
- EROFS, ALL, "read-only file system",
- ETXTBSY, ALL, "text busy",
+ { ENXIO, ALL, "no such device or address" },
+ { EROFS, ALL, "read-only file system" },
+ { ETXTBSY, ALL, "text busy" },
#ifdef SYSV
- EAGAIN, E_EXEC, "not enough memory",
+ { EAGAIN, E_EXEC, "not enough memory" },
#endif
- ENOMEM, ALL, "not enough memory",
+ { ENOMEM, ALL, "not enough memory" },
#ifdef ENOLINK
- ENOLINK, ALL, "remote access failed",
+ { ENOLINK, ALL, "remote access failed" },
#endif
#ifdef EMULTIHOP
- EMULTIHOP, ALL, "remote access failed",
+ { EMULTIHOP, ALL, "remote access failed" },
#endif
#ifdef ECOMM
- ECOMM, ALL, "remote access failed",
+ { ECOMM, ALL, "remote access failed" },
#endif
#ifdef ESTALE
- ESTALE, ALL, "remote access failed",
+ { ESTALE, ALL, "remote access failed" },
#endif
#ifdef ETIMEDOUT
- ETIMEDOUT, ALL, "remote access failed",
+ { ETIMEDOUT, ALL, "remote access failed" },
#endif
#ifdef ELOOP
- ELOOP, ALL, "symbolic link loop",
+ { ELOOP, ALL, "symbolic link loop" },
#endif
- E2BIG, E_EXEC, "argument list too long",
+ { E2BIG, E_EXEC, "argument list too long" },
#ifdef ELIBACC
- ELIBACC, E_EXEC, "shared library missing",
+ { ELIBACC, E_EXEC, "shared library missing" },
#endif
- 0, 0, NULL
+ { 0, 0, NULL },
};
@@ -238,7 +242,10 @@ STATIC const struct errname errormsg[] = {
*/
char *
-errmsg(e, action) {
+errmsg(e, action)
+ int e;
+ int action;
+{
struct errname const *ep;
static char buf[12];
OpenPOWER on IntegriCloud