aboutsummaryrefslogtreecommitdiff
path: root/shell/hush.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/hush.c')
-rw-r--r--shell/hush.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 27092c12f..5fafa322c 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -9898,7 +9898,8 @@ static int run_list(struct pipe *pi)
9898#if ENABLE_HUSH_LOOPS 9898#if ENABLE_HUSH_LOOPS
9899 G.flag_break_continue = 0; 9899 G.flag_break_continue = 0;
9900#endif 9900#endif
9901 rcode = r = run_pipe(pi); /* NB: rcode is a smalluint, r is int */ 9901 rcode = r = G.o_opt[OPT_O_NOEXEC] ? 0 : run_pipe(pi);
9902 /* NB: rcode is a smalluint, r is int */
9902 if (r != -1) { 9903 if (r != -1) {
9903 /* We ran a builtin, function, or group. 9904 /* We ran a builtin, function, or group.
9904 * rcode is already known 9905 * rcode is already known
@@ -10137,7 +10138,10 @@ static int set_mode(int state, char mode, const char *o_opt)
10137 int idx; 10138 int idx;
10138 switch (mode) { 10139 switch (mode) {
10139 case 'n': 10140 case 'n':
10140 G.o_opt[OPT_O_NOEXEC] = state; 10141 /* set -n has no effect in interactive shell */
10142 /* Try: while set -n; do echo $-; done */
10143 if (!G_interactive_fd)
10144 G.o_opt[OPT_O_NOEXEC] = state;
10141 break; 10145 break;
10142 case 'x': 10146 case 'x':
10143 IF_HUSH_MODE_X(G_x_mode = state;) 10147 IF_HUSH_MODE_X(G_x_mode = state;)