diff options
author | herbert <herbert@gondor.apana.org.au> | 2005-02-25 23:04:59 +1100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2005-09-26 18:33:03 +1000 |
commit | c0e07c010e5abdea1a7d1357edb1d08adac529cb (patch) | |
tree | 7dc52118aabd5482ea6447781560f2530d901739 /src/exec.c | |
parent | Only reread exitstatus on EXEXIT in exitshell. (diff) | |
download | dash-c0e07c010e5abdea1a7d1357edb1d08adac529cb.tar.gz dash-c0e07c010e5abdea1a7d1357edb1d08adac529cb.zip |
Eliminated global exerrno.
Diffstat (limited to 'src/exec.c')
-rw-r--r-- | src/exec.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/exec.c b/src/exec.c index 1a4a9a3..f43108e 100644 --- a/src/exec.c +++ b/src/exec.c @@ -100,7 +100,6 @@ struct tblentry { STATIC struct tblentry *cmdtable[CMDTABLESIZE]; STATIC int builtinloc = -1; /* index in path of %builtin, or -1 */ -int exerrno; /* Last exec error */ STATIC void tryexec(char *, char **, char **); @@ -123,6 +122,7 @@ shellexec(char **argv, const char *path, int idx) char *cmdname; int e; char **envp; + int exerrno; clearredir(1); envp = environment(); @@ -153,6 +153,7 @@ shellexec(char **argv, const char *path, int idx) exerrno = 2; break; } + exitstatus = exerrno; TRACE(("shellexec failed for %s, errno %d, suppressint %d\n", argv[0], e, suppressint )); exerror(EXEXEC, "%s: %s", argv[0], errmsg(e, E_EXEC)); |