diff --git a/spec/integrations/client_zpty_spec.rb b/spec/integrations/client_zpty_spec.rb index f294a1c..fb7bbeb 100644 --- a/spec/integrations/client_zpty_spec.rb +++ b/spec/integrations/client_zpty_spec.rb @@ -1,11 +1,10 @@ describe 'a running zpty command' do - it 'is not affected by running zsh-autosuggestions' do - session.run_command('zmodload zsh/zpty') - session.run_command('zpty -b kitty cat') - session.run_command('zpty -w kitty cat') - sleep 1 - session.run_command('zpty -r kitty') + let(:before_sourcing) { -> { session.run_command('zmodload zsh/zpty && zpty -b kitty cat') } } - wait_for(session.content).to end_with("\ncat") + it 'is not affected by running zsh-autosuggestions' do + sleep 1 # Give a little time for precmd hooks to run + session.run_command('zpty -t kitty; echo $?') + + wait_for(session.content).to end_with("\n0") end end diff --git a/src/features.zsh b/src/features.zsh index 9198085..35dfcc3 100644 --- a/src/features.zsh +++ b/src/features.zsh @@ -7,7 +7,7 @@ _zsh_autosuggest_feature_detect() { typeset -g _ZSH_AUTOSUGGEST_ZPTY_RETURNS_FD typeset -h REPLY - zpty $ZSH_AUTOSUGGEST_ASYNC_PTY_NAME : + zpty $ZSH_AUTOSUGGEST_ASYNC_PTY_NAME '{ zshexit() { kill -KILL $$; sleep 1 } }' if (( REPLY )); then _ZSH_AUTOSUGGEST_ZPTY_RETURNS_FD=1 diff --git a/zsh-autosuggestions.zsh b/zsh-autosuggestions.zsh index 1492f19..f33c3d2 100644 --- a/zsh-autosuggestions.zsh +++ b/zsh-autosuggestions.zsh @@ -122,7 +122,7 @@ _zsh_autosuggest_feature_detect() { typeset -g _ZSH_AUTOSUGGEST_ZPTY_RETURNS_FD typeset -h REPLY - zpty $ZSH_AUTOSUGGEST_ASYNC_PTY_NAME : + zpty $ZSH_AUTOSUGGEST_ASYNC_PTY_NAME '{ zshexit() { kill -KILL $$; sleep 1 } }' if (( REPLY )); then _ZSH_AUTOSUGGEST_ZPTY_RETURNS_FD=1