diff --git a/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-env.zsh b/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-env.zsh index f89c5b4a33763..12bbe2dbd450e 100644 --- a/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-env.zsh +++ b/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-env.zsh @@ -6,7 +6,10 @@ if [[ -f $USER_ZDOTDIR/.zshenv ]]; then VSCODE_ZDOTDIR=$ZDOTDIR ZDOTDIR=$USER_ZDOTDIR - . $USER_ZDOTDIR/.zshenv + # prevent recursion + if [[ $USER_ZDOTDIR -ne $VSCODE_ZDOTDIR ]]; then + . $USER_ZDOTDIR/.zshenv + fi USER_ZDOTDIR=$ZDOTDIR ZDOTDIR=$VSCODE_ZDOTDIR diff --git a/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh b/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh index 90612eb545b74..6cd65d39b8ca7 100644 --- a/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh +++ b/src/vs/workbench/contrib/terminal/browser/media/shellIntegration-rc.zsh @@ -127,6 +127,6 @@ __vsc_preexec() { add-zsh-hook precmd __vsc_precmd add-zsh-hook preexec __vsc_preexec -if [[ $options[login] = off ]]; then +if [[ $options[login] = off && $USER_ZDOTDIR -ne $VSCODE_ZDOTDIR ]]; then ZDOTDIR=$USER_ZDOTDIR fi