summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2020-12-31 23:20:24 +0100
committerMarc Cornellà <marc.cornella@live.com>2020-12-31 23:20:24 +0100
commit0f6836701d82a2ee024153c7f781bb72c2e9a8ac (patch)
treebccb5a752a5ddb93811050cff0a6b9c1afe6cb75 /lib
parent0e7c81316cab30d28d362f69ddc72be83029ac34 (diff)
downloadzsh-0f6836701d82a2ee024153c7f781bb72c2e9a8ac.tar.gz
zsh-0f6836701d82a2ee024153c7f781bb72c2e9a8ac.tar.bz2
zsh-0f6836701d82a2ee024153c7f781bb72c2e9a8ac.zip
fix(CLI): properly get zsh command in `omz update` (#9558)
Zsh versions older than 5.3 don't have ZSH_ARGZERO, so use an alternative method to get the zsh command. Fixes #9558
Diffstat (limited to 'lib')
-rw-r--r--lib/cli.zsh4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh
index 92d447a8e..6fcffdf87 100644
--- a/lib/cli.zsh
+++ b/lib/cli.zsh
@@ -391,7 +391,9 @@ function _omz::update {
# Restart the zsh session
if [[ $ret -eq 0 && "$1" != --unattended ]]; then
+ # Old zsh versions don't have ZSH_ARGZERO
+ local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}"
# Check whether to run a login shell
- [[ "$ZSH_ARGZERO" = -* ]] && exec -l "${ZSH_ARGZERO#-}" || exec "$ZSH_ARGZERO"
+ [[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh"
fi
}