Skip to content

Commit 595b97a

Browse files
committed
Workarounds for ZSH v5.0.2
1 parent 8c605c0 commit 595b97a

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

agkozak-zsh-prompt.plugin.zsh

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@ _agkozak_has_usr1() {
379379
# when necessary).
380380
#
381381
# Globals:
382+
# AGKOZAK_IS_WSL
382383
# AGKOZAK_ASYNC_METHOD
383384
# AGKOZAK_FORCE_ASYNC_METHOD
384385
# AGKOZAK_TRAPUSR1_FUNCTION
@@ -390,7 +391,7 @@ _agkozak_async_init() {
390391
if [[ -e /proc/version ]]; then
391392
if [[ -n ${(M)${(f)"$(</proc/version)"}:#*Microsoft*} ]]; then
392393
unsetopt BG_NICE
393-
local WSL=1 # For later reference
394+
typeset -g AGKOZAK_IS_WSL=1 # For later reference
394395
fi
395396
fi
396397

@@ -402,7 +403,7 @@ _agkozak_async_init() {
402403
# Otherwise, first provide for certain quirky systems
403404
else
404405

405-
if (( WSL )) || [[ $OSTYPE == solaris* ]]; then
406+
if (( AGKOZAK_IS_WSL )) || [[ $OSTYPE == solaris* ]]; then
406407
if [[ $ZSH_VERSION != '5.0.2' ]] &&_agkozak_load_async_lib; then
407408
typeset -g AGKOZAK_ASYNC_METHOD='zsh-async'
408409
elif _agkozak_has_usr1; then
@@ -411,8 +412,8 @@ _agkozak_async_init() {
411412
typeset -g AGKOZAK_ASYNC_METHOD='subst-async'
412413
fi
413414

414-
# SIGUSR1 method is still much faster on MSYS2 and Cygwin
415-
elif [[ $OSTYPE == (msys|cygwin) ]]; then
415+
# SIGUSR1 method is still much faster on MSYS2, Cygwin, and ZSH v5.0.2
416+
elif [[ $ZSH_VERSION == '5.0.2' ]] || [[ $OSTYPE == (msys|cygwin) ]]; then
416417
if _agkozak_has_usr1; then
417418
typeset -g AGKOZAK_ASYNC_METHOD='usr1'
418419
else
@@ -439,6 +440,7 @@ _agkozak_async_init() {
439440
#
440441
# Globals:
441442
# AGKOZAK_ASYNC_FD
443+
# AGKOZAK_IS_WSL
442444
############################################################
443445
_agkozak_subst_async() {
444446
setopt LOCAL_OPTIONS NO_IGNORE_BRACES
@@ -447,8 +449,9 @@ _agkozak_async_init() {
447449
# Workaround for buggy behavior in MSYS2, Cygwin, and Solaris
448450
if [[ $OSTYPE == (msys|cygwin|solaris*) ]]; then
449451
exec {AGKOZAK_ASYNC_FD}< <(_agkozak_branch_status; command true)
450-
# Prevent WSL from locking up when using X
451-
elif (( WSL )) && (( $+DISPLAY )); then
452+
# Prevent WSL from locking up when using X; also workaround for ZSH v5.0.2
453+
elif (( AGKOZAK_IS_WSL )) && (( $+DISPLAY )) \
454+
|| [[ $ZSH_VERSION == '5.0.2' ]]; then
452455
exec {AGKOZAK_ASYNC_FD}< <(_agkozak_branch_status)
453456
command sleep 0.01
454457
else

0 commit comments

Comments
 (0)