ash: eval: Check nflag in evaltree instead of cmdloop
Upstream commit: Date: Thu, 4 Jun 2020 21:53:55 +1000 eval: Check nflag in evaltree instead of cmdloop This patch moves the nflag check from cmdloop into evaltree. This is so that nflag will be in force even if we enter the shell via a path other than cmdloop, e.g., through sh -c. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
e0bf3df020
commit
41beb53787
@ -9299,6 +9299,9 @@ evaltree(union node *n, int flags)
|
||||
|
||||
setstackmark(&smark);
|
||||
|
||||
if (nflag)
|
||||
goto out;
|
||||
|
||||
if (n == NULL) {
|
||||
TRACE(("evaltree(NULL) called\n"));
|
||||
goto out;
|
||||
@ -13557,7 +13560,7 @@ cmdloop(int top)
|
||||
out2str("\nUse \"exit\" to leave shell.\n");
|
||||
}
|
||||
numeof++;
|
||||
} else if (nflag == 0) {
|
||||
} else {
|
||||
int i;
|
||||
|
||||
/* job_warning can only be 2,1,0. Here 2->1, 1/0->0 */
|
||||
|
3
shell/ash_test/ash-misc/set-n1.right
Normal file
3
shell/ash_test/ash-misc/set-n1.right
Normal file
@ -0,0 +1,3 @@
|
||||
set -n stops in -c?
|
||||
YES
|
||||
Ok:0
|
2
shell/ash_test/ash-misc/set-n1.tests
Executable file
2
shell/ash_test/ash-misc/set-n1.tests
Executable file
@ -0,0 +1,2 @@
|
||||
$THIS_SH -c "echo 'set -n stops in -c?'; set -n; echo NO" && echo YES
|
||||
echo Ok:$?
|
Loading…
Reference in New Issue
Block a user