diff options
| author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-07-25 14:49:32 +0000 |
|---|---|---|
| committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-07-25 14:49:32 +0000 |
| commit | f29d50fe9ce5178eb2136bc06bad9fa995f7e318 (patch) | |
| tree | c7fd5ef2024fb1998f21d3834812846e3c29b2f4 /Completion/Base/Utility | |
| parent | some more places where list-separator should be used (15485) (diff) | |
| download | zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.tar zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.tar.gz zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.tar.bz2 zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.tar.lz zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.tar.xz zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.tar.zst zsh-f29d50fe9ce5178eb2136bc06bad9fa995f7e318.zip | |
move pattern matching in the loop to make sure all match specs are used (15487)
Diffstat (limited to 'Completion/Base/Utility')
| -rw-r--r-- | Completion/Base/Utility/_describe | 90 |
1 files changed, 47 insertions, 43 deletions
diff --git a/Completion/Base/Utility/_describe b/Completion/Base/Utility/_describe index bed75a318..f97834586 100644 --- a/Completion/Base/Utility/_describe +++ b/Completion/Base/Utility/_describe @@ -5,6 +5,7 @@ local _opt _expl _tmpm _tmpd local _type=values _descr _ret=1 _showd _nm _hide _args _grp _sep local csl="$compstate[list]" csl2 +local _oargv _argv _new _strs _mats _opts _i _try=0 # Get the option. @@ -25,55 +26,17 @@ zstyle -T ":completion:${curcontext}:$_type" verbose && _showd=yes zstyle -s ":completion:${curcontext}:$_type" list-separator _sep || _sep=-- -if zstyle -T ":completion:${curcontext}:$_type" list-grouped; then - local _argv _new _strs _mats _opts _i=2 +_descr="$1" +shift - _argv=( "$@" ) +if [[ -n "$showd" ]] && + zstyle -T ":completion:${curcontext}:$_type" list-grouped; then + _oargv=( "$@" ) _grp=(-g) - _new=( "$1" ) - shift - - while (( $# )); do - - _strs="_a_$_i" - eval local "_a_$_i;_a_$_i"'=( "${'$1'[@]}" )' - _argv[_i]="_a_$_i" - shift - (( _i++ )) - - if [[ "$1" = (|-*) ]]; then - _mats= - else - _matss="_a_$_i" - eval local "_a_$_i;_a_$_i"'=( "${'$1'[@]}" )' - _argv[_i]="_a_$_i" - shift - (( _i++ )) - fi - - _opts=( "${(@)argv[1,(i)--]:#--}" ) - shift "$#_opts" - (( _i += $#_opts )) - if [[ $1 == -- ]]; then - shift |
