From cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 24 Aug 2020 17:48:39 +0200 Subject: [PATCH] zsh_reload: use $SHELL to reload zsh only if it's a zsh shell (fixes #9054) --- plugins/zsh_reload/zsh_reload.plugin.zsh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/zsh_reload/zsh_reload.plugin.zsh b/plugins/zsh_reload/zsh_reload.plugin.zsh index 83f8da733..0d29a7ce3 100644 --- a/plugins/zsh_reload/zsh_reload.plugin.zsh +++ b/plugins/zsh_reload/zsh_reload.plugin.zsh @@ -7,6 +7,16 @@ src() { zrecompile -p $f && command rm -f $f.zwc.old done - # Use $SHELL if available; remove leading dash if login shell - [[ -n "$SHELL" ]] && exec ${SHELL#-} || exec zsh + # Use $SHELL if it's available and a zsh shell + local shell="$ZSH_ARGZERO" + if [[ "${${SHELL:t}#-}" = zsh ]]; then + shell="$SHELL" + fi + + # Remove leading dash if login shell and run accordingly + if [[ "${shell:0:1}" = "-" ]]; then + exec -l "${shell#-}" + else + exec "$shell" + fi }