diff options
Diffstat (limited to 'main/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch')
-rw-r--r-- | main/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/main/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch b/main/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch deleted file mode 100644 index 028196a40b..0000000000 --- a/main/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 6c149f4d9afaed9edb75c88b784ad900c1f40700 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko <vda.linux@googlemail.com> -Date: Wed, 12 Apr 2017 21:31:32 +0200 -Subject: [PATCH 14/14] ash: implement "exec -a ARGV0 CMD ARGV1..." - -function old new delta -execcmd 71 112 +41 -shellexec 221 224 +3 -evalcommand 1158 1161 +3 -localcmd 364 366 +2 -unaliascmd 163 154 -9 ------------------------------------------------------------------------------- -(add/remove: 0/0 grow/shrink: 4/1 up/down: 49/-9) Total: 40 bytes - -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - shell/ash.c | 22 +++++++++++++++------- - 1 file changed, 15 insertions(+), 7 deletions(-) - -diff --git a/shell/ash.c b/shell/ash.c -index 044f166..e170bec 100644 ---- a/shell/ash.c -+++ b/shell/ash.c -@@ -3345,11 +3345,9 @@ unaliascmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) - { - int i; - -- while ((i = nextopt("a")) != '\0') { -- if (i == 'a') { -- rmaliases(); -- return 0; -- } -+ while (nextopt("a") != '\0') { -+ rmaliases(); -+ return 0; - } - for (i = 0; *argptr; argptr++) { - if (unalias(*argptr)) { -@@ -9354,7 +9352,14 @@ truecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) - static int FAST_FUNC - execcmd(int argc UNUSED_PARAM, char **argv) - { -- if (argv[1]) { -+ optionarg = NULL; -+ while (nextopt("a:") != '\0') -+ /* nextopt() sets optionarg to "-a ARGV0" */; -+ -+ argv = argptr; -+ if (argv[0]) { -+ char *prog; -+ - iflag = 0; /* exit on error */ - mflag = 0; - optschanged(); -@@ -9370,7 +9375,10 @@ execcmd(int argc UNUSED_PARAM, char **argv) - /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */ - /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */ - -- shellexec(argv[1], argv + 1, pathval(), 0); -+ prog = argv[0]; -+ if (optionarg) -+ argv[0] = optionarg; -+ shellexec(prog, argv, pathval(), 0); - /* NOTREACHED */ - } - return 0; --- -2.9.3 - |