Zsh Mailing List Archive
Messages sorted by:
Re: "setopt noexec" and interactive shells
- X-seq: zsh-workers 13755
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: "setopt noexec" and interactive shells
- Date: Sun, 25 Mar 2001 22:51:22 +0000
- In-reply-to: <E14ZkE3-00041Q-00@xxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <E14ZkE3-00041Q-00@xxxxxxxxxxxxxxxxxx>
On Mar 5, 1:55am, Zefram wrote:
} Subject: Re: "setopt noexec" and interactive shells
} pdksh 5.2.12 does effectively ignore "set -n" interactively, but [...]
} its condition for overriding is that the shell is interactive and the
} default conditions for interactivity on startup were met -- a shell that's
} explicitly made interactive when it would not otherwise have been does
} honour "set -n" fully.
} The other way to do this correctly -- other than ignoring it the way
} pdksh does, that is -- is to make the option unsettable, like -i, under
} the appropriate circumstances. Silent resetting is not good.
There's no way to make the option un-, or rather re-, settable because
once you're not executing commands the state of the shell is effectively
frozen. If ignoreeof is also set, it's painful even to exit.
So the closest thing to "default conditions for interactivity on startup"
is isatty(0). This could of course be fooled by "exec < /dev/tty" or some
such, but if someone is willing to go to that much effort to simulate an
interactive startup ...
Any comments on this patch?
--- Src/exec.c 2001/03/24 22:19:24 1.128
+++ Src/exec.c 2001/03/25 22:14:08
@@ -2092,7 +2092,7 @@
zwarn("writing redirection not allowed in restricted mode", NULL, 0);
- if (unset(EXECOPT))
+ if (unset(EXECOPT) && (unset(INTERACTIVE) || !isatty(0)))
Bart Schaefer Brass Lantern Enterprises
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by: