From 30697061f2630543cccb9648e14b1fe7fa1d93ee Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Fri, 30 Mar 2001 16:20:03 +0000 Subject: Refuse to setopt noexec when interactive --- Doc/Zsh/options.yo | 2 ++ Src/options.c | 3 +++ 2 files changed, 5 insertions(+) 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)) )( 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) -- cgit 1.4.1