Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Reverting the effect of 'setopt nomonitor' executed during shell startup


I'm currently fighting with some zsh behavior that I can't quite explain to
myself. I use zplug along with zsh, and I believe that whenever zplug calls
'setopt nomonitor' during its setup, any subsequent call to e.g. `stty icanon`
will suspend the shell with a SIGTTOU. At least if I comment out calls to 'setopt
nomonitor' in zplugs startup, this behavior doesn't occur.

This change in shell options is so persistent in fact, that even passing "setopt
monitor" to negate the effect along in the same command doesn't change this
behavior back to the unmodified one. Using setopt I can see that this is the only
change performed to the shell, and furthermore no changes are applied to the stty
(like `stty nostop`, which has the same effect).

Here's a minimal working example (if you use zplug it works, can't reproduce it
without zplug and I don't know why...):

  /usr/bin/zsh -i -c "echo foo;"
  stty icanon
  echo "bar"

If you run this script it will become suspended upon calling `stty icanon`.
`icanon` here is just one of many options, I think pretty much any argument to
stty will work for that matter...

Is there a way to "fix" options at shell startup such that they cannot ever be
overwritten from within the shell? Or has someone else experienced this already
and knows how to mitigate it?

Thank you in advance!


Messages sorted by: Reverse Date, Date, Thread, Author