Merge pull request #447 from zsh-users/features/without-system-module

Degrade gracefully on systems missing zsh/system module
This commit is contained in:
Eric Freese 2019-06-22 10:46:26 -06:00 committed by GitHub
commit d27983b7ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 26 deletions

View file

@ -3,9 +3,9 @@
# Async # # Async #
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
zmodload zsh/system
_zsh_autosuggest_async_request() { _zsh_autosuggest_async_request() {
zmodload zsh/system 2>/dev/null # For `$sysparams`
typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID
# If we've got a pending request, cancel it # If we've got a pending request, cancel it
@ -14,6 +14,8 @@ _zsh_autosuggest_async_request() {
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&- exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&-
zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD
# We won't know the pid unless the user has zsh/system module installed
if [[ -n "$_ZSH_AUTOSUGGEST_CHILD_PID" ]]; then
# Zsh will make a new process group for the child process only if job # Zsh will make a new process group for the child process only if job
# control is enabled (MONITOR option) # control is enabled (MONITOR option)
if [[ -o MONITOR ]]; then if [[ -o MONITOR ]]; then
@ -27,6 +29,7 @@ _zsh_autosuggest_async_request() {
kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null
fi fi
fi fi
fi
# Fork a process to fetch a suggestion and open a pipe to read from it # Fork a process to fetch a suggestion and open a pipe to read from it
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <( exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <(

View file

@ -726,9 +726,9 @@ _zsh_autosuggest_fetch_suggestion() {
# Async # # Async #
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
zmodload zsh/system
_zsh_autosuggest_async_request() { _zsh_autosuggest_async_request() {
zmodload zsh/system 2>/dev/null # For `$sysparams`
typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID typeset -g _ZSH_AUTOSUGGEST_ASYNC_FD _ZSH_AUTOSUGGEST_CHILD_PID
# If we've got a pending request, cancel it # If we've got a pending request, cancel it
@ -737,6 +737,8 @@ _zsh_autosuggest_async_request() {
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&- exec {_ZSH_AUTOSUGGEST_ASYNC_FD}<&-
zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD zle -F $_ZSH_AUTOSUGGEST_ASYNC_FD
# We won't know the pid unless the user has zsh/system module installed
if [[ -n "$_ZSH_AUTOSUGGEST_CHILD_PID" ]]; then
# Zsh will make a new process group for the child process only if job # Zsh will make a new process group for the child process only if job
# control is enabled (MONITOR option) # control is enabled (MONITOR option)
if [[ -o MONITOR ]]; then if [[ -o MONITOR ]]; then
@ -750,6 +752,7 @@ _zsh_autosuggest_async_request() {
kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null kill -TERM $_ZSH_AUTOSUGGEST_CHILD_PID 2>/dev/null
fi fi
fi fi
fi
# Fork a process to fetch a suggestion and open a pipe to read from it # Fork a process to fetch a suggestion and open a pipe to read from it
exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <( exec {_ZSH_AUTOSUGGEST_ASYNC_FD}< <(