From 092472dab755645333186e1398f6b261ec6fa112 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 18 Nov 1999 10:05:45 +0000 Subject: zsh-workers/8665 --- Completion/Core/_funcall | 32 ++++++++++++++++++++++++++++++++ Completion/Core/compinit | 29 ----------------------------- Completion/Linux/_rpm | 2 +- Completion/User/_nslookup | 8 ++++---- 4 files changed, 37 insertions(+), 34 deletions(-) create mode 100644 Completion/Core/_funcall (limited to 'Completion') diff --git a/Completion/Core/_funcall b/Completion/Core/_funcall new file mode 100644 index 000000000..540f8ae83 --- /dev/null +++ b/Completion/Core/_funcall @@ -0,0 +1,32 @@ +#autoload + +# Utility function to call a function if it exists. +# +# Usage: _funcall [ ... ] +# +# If a function named is defined (or defined to be autoloaded), +# it is called. If is given not the string `-' or empty, it is +# taken as the name of a parameter and the return status of the function +# called is stored in this parameter. All other arguments are given +# to the function called. +# The return value of this function is zero if the function was +# called and non-zero otherwise. + +local _name _ret + +[[ "$1" != (|-) ]] && _name="$1" + +shift + +if (( $+functions[$1] )); then + "$@" + _ret="$?" + + [[ -n "$_name" ]] && eval "${_name}=${_ret}" + + compstate[restore]='' + + return 0 +fi + +return 1 diff --git a/Completion/Core/compinit b/Completion/Core/compinit index c2a78e99a..2f69f26c9 100644 --- a/Completion/Core/compinit +++ b/Completion/Core/compinit @@ -497,35 +497,6 @@ compstyle ':correct' accept '2n' compstyle ':correct' prompt 'correct to:' compstyle '*' completer '_complete' -# Utility function to call a function if it exists. -# -# Usage: funcall [ ... ] -# -# If a function named is defined (or defined to be autoloaded), -# it is called. If is given not the string `-' or empty, it is -# taken as the name of a parameter and the return status of the function -# called is stored in this parameter. All other arguments are given -# to the function called. -# The return value of this function is zero if the function was -# called and non-zero otherwise. - -funcall() { - local _name _ret - - [[ "$1" != (|-) ]] && _name="$1" - - shift - - if (( $+functions[$1] )); then - "$@" - _ret="$?" - [[ -n "$_name" ]] && eval "${_name}=${_ret}" - compstate[restore]='' - return 0 - fi - return 1 -} - # Now we automatically make the definition files autoloaded. typeset -U _i_files diff --git a/Completion/Linux/_rpm b/Completion/Linux/_rpm index eb30924dc..b31ea656f 100644 --- a/Completion/Linux/_rpm +++ b/Completion/Linux/_rpm @@ -79,7 +79,7 @@ while [[ -n "$state" ]]; do # First try to call a user-defined function. - funcall ret _rpm_$state && return ret + _funcall ret _rpm_$state && return ret # Copy the state and reset `state', to simplify the test above. diff --git a/Completion/User/_nslookup b/Completion/User/_nslookup index 495a0e3de..13500ff2c 100644 --- a/Completion/User/_nslookup +++ b/Completion/User/_nslookup @@ -50,7 +50,7 @@ setopts=( if [[ -n "$compcontext" ]]; then if [[ CURRENT -eq 1 ]]; then - funcall ret _nslookup_command && return ret + _funcall ret _nslookup_command && return ret _alternative \ 'commands:command:compadd server lserver root finger ls view help set' \ @@ -58,7 +58,7 @@ if [[ -n "$compcontext" ]]; then return ret elif [[ "$compstate[context]" = redirect ]]; then - funcall ret _nslookup_redirect && return ret + _funcall ret _nslookup_redirect && return ret _tags -C redirection files || return 1 @@ -79,9 +79,9 @@ if [[ -n "$compcontext" ]]; then fi if [[ "$words[1]" = [a-z]## ]]; then - funcall ret _nslookup_$words[1] && return ret + _funcall ret _nslookup_$words[1] && return ret else - funcall ret _nslookup_host && return ret + _funcall ret _nslookup_host && return ret fi case "$words[1]" in -- cgit 1.4.1