From cfb86cd08d3b24fd4b59d0d35b3af1f589c891fa Mon Sep 17 00:00:00 2001
From: Marc Cornellà <marc.cornella@live.com>
Date: Mon, 24 Aug 2020 17:48:39 +0200
Subject: 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(-)

(limited to 'plugins/zsh_reload')

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
 }
-- 
cgit v1.2.3-70-g09d2