diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-18 10:05:45 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-18 10:05:45 +0000 |
commit | 092472dab755645333186e1398f6b261ec6fa112 (patch) | |
tree | a5cb784bfaa32dc2e22211db9cec273ab96c78c4 /Completion/Core | |
parent | fe461d9a8c154010db7d8f06d059fa1cb4e61081 (diff) | |
download | zsh-092472dab755645333186e1398f6b261ec6fa112.tar.gz zsh-092472dab755645333186e1398f6b261ec6fa112.tar.xz zsh-092472dab755645333186e1398f6b261ec6fa112.zip |
zsh-workers/8665
Diffstat (limited to 'Completion/Core')
-rw-r--r-- | Completion/Core/_funcall | 32 | ||||
-rw-r--r-- | Completion/Core/compinit | 29 |
2 files changed, 32 insertions, 29 deletions
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 <return> <name> [ <args> ... ] +# +# If a function named <name> is defined (or defined to be autoloaded), +# it is called. If <return> 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 <return> <name> [ <args> ... ] -# -# If a function named <name> is defined (or defined to be autoloaded), -# it is called. If <return> 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 |