diff options
-rw-r--r-- | Doc/Zsh/options.yo | 2 | ||||
-rw-r--r-- | Src/options.c | 3 |
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) |