aboutsummaryrefslogtreecommitdiff
path: root/gitstatus/gitstatus.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'gitstatus/gitstatus.plugin.zsh')
-rw-r--r--gitstatus/gitstatus.plugin.zsh8
1 files changed, 4 insertions, 4 deletions
diff --git a/gitstatus/gitstatus.plugin.zsh b/gitstatus/gitstatus.plugin.zsh
index f3c91eb7..3fede495 100644
--- a/gitstatus/gitstatus.plugin.zsh
+++ b/gitstatus/gitstatus.plugin.zsh
@@ -233,13 +233,13 @@ function gitstatus_start() {
IFS='' read -r -d $'\x1e' -u $resp_fd -t $timeout reply
[[ $reply == $'hello\x1f0' ]]
- function _gitstatus_cleanup_${daemon_pid}() {
+ function _gitstatus_cleanup_${ZSH_SUBSHELL}_${daemon_pid}() {
emulate -L zsh
setopt err_return no_unset
- local -i daemon_pid=${${(%)${:-%N}}#_gitstatus_cleanup_}
- kill -- -$daemon_pid &>/dev/null || true
+ local -i daemon_pid=${${(%)${:-%N}}#_gitstatus_cleanup_${ZSH_SUBSHELL}_}
+ [[ $daemon_pid -gt 0 ]] && kill -- -$daemon_pid &>/dev/null
}
- add-zsh-hook zshexit _gitstatus_cleanup_${daemon_pid}
+ add-zsh-hook zshexit _gitstatus_cleanup_${ZSH_SUBSHELL}_${daemon_pid}
}
start && {