diff options
-rw-r--r-- | shell/ash.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/shell/ash.c b/shell/ash.c index 044f166be..e170bec2a 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -3345,11 +3345,9 @@ unaliascmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
3345 | { | 3345 | { |
3346 | int i; | 3346 | int i; |
3347 | 3347 | ||
3348 | while ((i = nextopt("a")) != '\0') { | 3348 | while (nextopt("a") != '\0') { |
3349 | if (i == 'a') { | 3349 | rmaliases(); |
3350 | rmaliases(); | 3350 | return 0; |
3351 | return 0; | ||
3352 | } | ||
3353 | } | 3351 | } |
3354 | for (i = 0; *argptr; argptr++) { | 3352 | for (i = 0; *argptr; argptr++) { |
3355 | if (unalias(*argptr)) { | 3353 | if (unalias(*argptr)) { |
@@ -9354,7 +9352,14 @@ truecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
9354 | static int FAST_FUNC | 9352 | static int FAST_FUNC |
9355 | execcmd(int argc UNUSED_PARAM, char **argv) | 9353 | execcmd(int argc UNUSED_PARAM, char **argv) |
9356 | { | 9354 | { |
9357 | if (argv[1]) { | 9355 | optionarg = NULL; |
9356 | while (nextopt("a:") != '\0') | ||
9357 | /* nextopt() sets optionarg to "-a ARGV0" */; | ||
9358 | |||
9359 | argv = argptr; | ||
9360 | if (argv[0]) { | ||
9361 | char *prog; | ||
9362 | |||
9358 | iflag = 0; /* exit on error */ | 9363 | iflag = 0; /* exit on error */ |
9359 | mflag = 0; | 9364 | mflag = 0; |
9360 | optschanged(); | 9365 | optschanged(); |
@@ -9370,7 +9375,10 @@ execcmd(int argc UNUSED_PARAM, char **argv) | |||
9370 | /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */ | 9375 | /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */ |
9371 | /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */ | 9376 | /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */ |
9372 | 9377 | ||
9373 | shellexec(argv[1], argv + 1, pathval(), 0); | 9378 | prog = argv[0]; |
9379 | if (optionarg) | ||
9380 | argv[0] = optionarg; | ||
9381 | shellexec(prog, argv, pathval(), 0); | ||
9374 | /* NOTREACHED */ | 9382 | /* NOTREACHED */ |
9375 | } | 9383 | } |
9376 | return 0; | 9384 | return 0; |