runcoms: don't raise an error in zlogin when stderr is not a TTY (#1775)

The existing code in runcoms/zlogin results in `$?` being
equal to `1` when starting a login shell if stderr is not
a TTY. For example:

  zsh -l 2>/dev/null

When using a theme that displays error/success status of
the last command, the first prompt will show an error.

This commit fixes it so that error code is zero after
sourcing zlogin (unless something unexpected and bad happens).
This commit is contained in:
Roman Perepelitsa 2020-01-11 09:48:45 +01:00 committed by Kaleb Elwert
parent 7c94154dda
commit c6efe80152
1 changed files with 2 additions and 2 deletions

View File

@ -15,7 +15,7 @@
} &!
# Execute code only if STDERR is bound to a TTY.
[[ -o INTERACTIVE && -t 2 ]] && {
if [[ -o INTERACTIVE && -t 2 ]]; then
# Print a random, hopefully interesting, adage.
if (( $+commands[fortune] )); then
@ -23,4 +23,4 @@
print
fi
} >&2
fi >&2