summaryrefslogtreecommitdiff
path: root/bin/sh/exec.c
diff options
context:
space:
mode:
authorelric <elric@NetBSD.org>2000-05-22 10:18:46 +0000
committerelric <elric@NetBSD.org>2000-05-22 10:18:46 +0000
commite6bccfe4bed28f31f051621a7f7b386ff50c19f8 (patch)
tree8866d68817ef9a70d984469c9602ddd0f862cd63 /bin/sh/exec.c
parentdbc1cf06d2a4e518d2c1239f79078e28bb61d4e9 (diff)
Back out previous vfork changes.
Diffstat (limited to 'bin/sh/exec.c')
-rw-r--r--bin/sh/exec.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/bin/sh/exec.c b/bin/sh/exec.c
index a4a7a946544..11272e05d19 100644
--- a/bin/sh/exec.c
+++ b/bin/sh/exec.c
@@ -1,4 +1,4 @@
-/* $NetBSD: exec.c,v 1.28 2000/05/13 20:50:14 elric Exp $ */
+/* $NetBSD: exec.c,v 1.29 2000/05/22 10:18:46 elric Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -41,17 +41,15 @@
#if 0
static char sccsid[] = "@(#)exec.c 8.4 (Berkeley) 6/8/95";
#else
-__RCSID("$NetBSD: exec.c,v 1.28 2000/05/13 20:50:14 elric Exp $");
+__RCSID("$NetBSD: exec.c,v 1.29 2000/05/22 10:18:46 elric Exp $");
#endif
#endif /* not lint */
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/wait.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
-#include <stdio.h>
#include <stdlib.h>
/*
@@ -104,7 +102,7 @@ STATIC int builtinloc = -1; /* index in path of %builtin, or -1 */
int exerrno = 0; /* Last exec error */
-STATIC void tryexec __P((char *, char **, char **, int));
+STATIC void tryexec __P((char *, char **, char **));
STATIC void execinterp __P((char **, char **));
STATIC void printentry __P((struct tblentry *, int));
STATIC void clearcmdentry __P((int));
@@ -119,23 +117,22 @@ STATIC void delete_cmd_entry __P((void));
*/
void
-shellexec(argv, envp, path, idx, vforked)
+shellexec(argv, envp, path, idx)
char **argv, **envp;
const char *path;
int idx;
- int vforked;
{
char *cmdname;
int e;
if (strchr(argv[0], '/') != NULL) {
- tryexec(argv[0], argv, envp, vforked);
+ tryexec(argv[0], argv, envp);
e = errno;
} else {
e = ENOENT;
while ((cmdname = padvance(&path, argv[0])) != NULL) {
if (--idx < 0 && pathopt == NULL) {
- tryexec(cmdname, argv, envp, vforked);
+ tryexec(cmdname, argv, envp);
if (errno != ENOENT && errno != ENOTDIR)
e = errno;
}
@@ -161,11 +158,10 @@ shellexec(argv, envp, path, idx, vforked)
STATIC void
-tryexec(cmd, argv, envp, vforked)
+tryexec(cmd, argv, envp)
char *cmd;
char **argv;
char **envp;
- int vforked;
{
int e;
#ifndef BSD
@@ -181,13 +177,6 @@ tryexec(cmd, argv, envp, vforked)
#endif
e = errno;
if (e == ENOEXEC) {
- if (vforked) {
- /* We are currently vfork(2)ed, so raise an
- * exception, and evalcommand will try again
- * with a normal fork(2).
- */
- exraise(EXSHELLPROC);
- }
initshellproc();
setinputfile(cmd, 0);
commandname = arg0 = savestr(argv[0]);