diff options
author | romkatv <roman.perepelitsa@gmail.com> | 2019-03-20 14:09:16 +0300 |
---|---|---|
committer | romkatv <roman.perepelitsa@gmail.com> | 2019-03-20 14:09:16 +0300 |
commit | abfa07667a788b313a376932b067e7ab11479bbe (patch) | |
tree | 3ab31381be2aa7efc6dbe1e13d09ef39244c64ee /gitstatus/gitstatus.plugin.zsh | |
parent | df6ba3a560074d30d942769ae4efa408d795ff66 (diff) |
pull upstream changes from gitstatus
Diffstat (limited to 'gitstatus/gitstatus.plugin.zsh')
-rw-r--r-- | gitstatus/gitstatus.plugin.zsh | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/gitstatus/gitstatus.plugin.zsh b/gitstatus/gitstatus.plugin.zsh index 35287776..f3c91eb7 100644 --- a/gitstatus/gitstatus.plugin.zsh +++ b/gitstatus/gitstatus.plugin.zsh @@ -226,28 +226,25 @@ function gitstatus_start() { " <&$req_fd >&$resp_fd 2>$log_file 3<$lock_file &! daemon_pid=$! + command rm -f $lock_file local reply echo -nE $'hello\x1f\x1e' >&$req_fd IFS='' read -r -d $'\x1e' -u $resp_fd -t $timeout reply [[ $reply == $'hello\x1f0' ]] - function _gitstatus_cleanup_${name}() { + function _gitstatus_cleanup_${daemon_pid}() { emulate -L zsh setopt err_return no_unset - local name=${${(%)${:-%N}}#_gitstatus_cleanup_} - local -i daemon_pid=${(P)${:-GITSTATUS_DAEMON_PID_$name}} - [[ $daemon_pid -gt 0 ]] && kill -- -$daemon_pid &>/dev/null || true - local lock_file=${(P)${:-_GITSTATUS_LOCK_FILE_$name}} - command rm -f $lock_file || true + local -i daemon_pid=${${(%)${:-%N}}#_gitstatus_cleanup_} + kill -- -$daemon_pid &>/dev/null || true } - add-zsh-hook zshexit _gitstatus_cleanup_${name} + add-zsh-hook zshexit _gitstatus_cleanup_${daemon_pid} } start && { typeset -g GITSTATUS_DAEMON_LOG_${name}=$log_file typeset -gi GITSTATUS_DAEMON_PID_${name}=$daemon_pid - typeset -g _GITSTATUS_LOCK_FILE_${name}=$lock_file typeset -giH _GITSTATUS_REQ_FD_${name}=$req_fd typeset -giH _GITSTATUS_RESP_FD_${name}=$resp_fd typeset -giH _GITSTATUS_CLIENT_PID_${name}=$$ |