summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Doc/Zsh/options.yo2
-rw-r--r--Src/options.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo
index aec878774..025368d7c 100644
--- a/Doc/Zsh/options.yo
+++ b/Doc/Zsh/options.yo
@@ -374,6 +374,8 @@ cindex(command execution, enabling)
item(tt(EXEC) (tt(PLUS()n), ksh: tt(PLUS()n)) <D>)(
Do execute commands. Without this option, commands are
read and checked for syntax errors, but not executed.
+This option cannot be turned off in an interactive shell,
+except when `tt(-n)' is supplied to the shell at startup.
)
pindex(EXTENDED_GLOB)
cindex(globbing, extended)
diff --git a/Src/options.c b/Src/options.c
index 7223b1d59..139926428 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -647,6 +647,9 @@ dosetopt(int optno, int value, int force)
for (s = rparams; *s; s++)
restrictparam(*s);
}
+ } else if(!force && optno == EXECOPT && !value && interact) {
+ /* cannot set noexec when interactive */
+ return -1;
} else if(!force && (optno == INTERACTIVE || optno == SHINSTDIN ||
optno == SINGLECOMMAND)) {
if (opts[optno] == value)