summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash.c5
-rw-r--r--shell/ash_test/ash-misc/set-n1.right3
-rwxr-xr-xshell/ash_test/ash-misc/set-n1.tests2
3 files changed, 9 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c
index cfe0433..2d2c09b 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -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 */
diff --git a/shell/ash_test/ash-misc/set-n1.right b/shell/ash_test/ash-misc/set-n1.right
new file mode 100644
index 0000000..ac01831
--- /dev/null
+++ b/shell/ash_test/ash-misc/set-n1.right
@@ -0,0 +1,3 @@
+set -n stops in -c?
+YES
+Ok:0
diff --git a/shell/ash_test/ash-misc/set-n1.tests b/shell/ash_test/ash-misc/set-n1.tests
new file mode 100755
index 0000000..90d0f91
--- /dev/null
+++ b/shell/ash_test/ash-misc/set-n1.tests
@@ -0,0 +1,2 @@
+$THIS_SH -c "echo 'set -n stops in -c?'; set -n; echo NO" && echo YES
+echo Ok:$?