diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-12-14 10:14:51 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-12-14 10:14:51 +0000 |
commit | 259b64d0d75fc6c014609fc790f6ce671206f0b5 (patch) | |
tree | f06b1ffedc79cc3bf0a17dd3f91df4bc339a1e96 /Completion/Core/_normal | |
parent | 8cb0bdc6a089e3ca58af81dffe4695b45a4cc04e (diff) | |
download | zsh-259b64d0d75fc6c014609fc790f6ce671206f0b5.tar.gz zsh-259b64d0d75fc6c014609fc790f6ce671206f0b5.tar.xz zsh-259b64d0d75fc6c014609fc790f6ce671206f0b5.zip |
zsh-workers/9035
Diffstat (limited to 'Completion/Core/_normal')
-rw-r--r-- | Completion/Core/_normal | 61 |
1 files changed, 36 insertions, 25 deletions
diff --git a/Completion/Core/_normal b/Completion/Core/_normal index f7d797aaa..a9e1dc5e4 100644 --- a/Completion/Core/_normal +++ b/Completion/Core/_normal @@ -26,11 +26,11 @@ else if [[ "$command[1]" == '=' ]]; then eval cmd1\=$command cmd2="$command[2,-1]" - curcontext="${curcontext}::${cmd1}:" + curcontext="${curcontext}::${cmd2}:" elif [[ "$command" == */* ]]; then cmd1="$command" cmd2="${command:t}" - curcontext="${curcontext}::${cmd1}:" + curcontext="${curcontext}::${cmd2}:" else cmd1="$command" cmd2="$commands[$command]" @@ -41,17 +41,22 @@ fi # See if there are any matching pattern completions. if [[ "$_compskip" != (all|*patterns*) ]]; then - for i in "$_patcomps[@]"; do - pat="${i% *}" - val="${i#* }" - if [[ "$cmd1" == $~pat || "$cmd2" == $~pat ]]; then - "$val" && ret=0 - if [[ "$_compskip" = *patterns* ]]; then - break - elif [[ "$_compskip" = all ]]; then - _compskip='' - return ret - fi + for i in "${(@)_patcomps[(K)$cmd1]}"; do + "$i" && ret=0 + if [[ "$_compskip" = *patterns* ]]; then + break + elif [[ "$_compskip" = all ]]; then + _compskip='' + return ret + fi + done + for i in "${(@)_patcomps[(K)$cmd2]}"; do + "$i" && ret=0 + if [[ "$_compskip" = *patterns* ]]; then + break + elif [[ "$_compskip" = all ]]; then + _compskip='' + return ret fi done fi @@ -80,18 +85,24 @@ else fi if [[ "$_compskip" != (all|*patterns*) ]]; then - for i in "$_postpatcomps[@]"; do - pat="${i% *}" - val="${i#* }" - if [[ "$cmd1" == $~pat || "$cmd2" == $~pat ]]; then - _compskip=default - "$val" && ret=0 - if [[ "$_compskip" = *patterns* ]]; then - break - elif [[ "$_compskip" = all ]]; then - _compskip='' - return ret - fi + for i in "${(@)_postpatcomps[(K)$cmd1]}"; do + _compskip=default + "$i" && ret=0 + if [[ "$_compskip" = *patterns* ]]; then + break + elif [[ "$_compskip" = all ]]; then + _compskip='' + return ret + fi + done + for i in "${(@)_postpatcomps[(K)$cmd2]}"; do + _compskip=default + "$i" && ret=0 + if [[ "$_compskip" = *patterns* ]]; then + break + elif [[ "$_compskip" = all ]]; then + _compskip='' + return ret fi done fi |