Browse Source

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
Marc Cornellà 4 years ago
parent
commit
0f6836701d
1 changed files with 3 additions and 1 deletions
  1. 3 1
      lib/cli.zsh

+ 3 - 1
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
 }