diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-02-21 12:34:57 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-02-21 12:34:57 +0000 |
commit | 09ef7f9740e72fd2b62459d88aad8960fe6e296f (patch) | |
tree | 457b87fb98a747129ba7fc03bda1b0ff1ec2bebf /Completion/Core | |
parent | 3b517729cafde567f12b51dadaf5cb58910bc0de (diff) | |
download | zsh-09ef7f9740e72fd2b62459d88aad8960fe6e296f.tar.gz zsh-09ef7f9740e72fd2b62459d88aad8960fe6e296f.tar.xz zsh-09ef7f9740e72fd2b62459d88aad8960fe6e296f.zip |
zsh-workers/9816
Diffstat (limited to 'Completion/Core')
-rw-r--r-- | Completion/Core/_multi_parts | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/Completion/Core/_multi_parts b/Completion/Core/_multi_parts index 92da26f9a..1d3841f86 100644 --- a/Completion/Core/_multi_parts +++ b/Completion/Core/_multi_parts @@ -83,7 +83,7 @@ while true; do if [[ -n "$PREFIX$SUFFIX" || "$pre" = ${sep}* ]]; then tmp1=( "${(@M)matches:#${PREFIX}${SUFFIX}${sep}*}" ) else - tmp1= + tmp1=() fi if (( $#tmp1 )); then @@ -233,10 +233,21 @@ while true; do PREFIX="${opre}${osuf}" SUFFIX="" - [[ -n "$pref" && "$orig" != "$pref" ]] && + if [[ -n "$pref" && "$orig" != "$pref" ]]; then + if [[ "$pref" = *${sep} ]]; then + compadd "$group[@]" "$expl[@]" "$opts[@]" \ + -p "${pref%${sep}*${sep}}${sep}" -S "$sep" \ + -M "r:|${sep}=* r:|=* $match" - "${${pref%${sep}}##*${sep}}" + + elif [[ "$pref" = *${sep}* ]]; then + compadd "$group[@]" "$expl[@]" -S '' "$opts[@]" \ + -p "${pref%${sep}*}${sep}" \ + -M "r:|${sep}=* r:|=* $match" - "${pref##*${sep}}" + else compadd "$group[@]" "$expl[@]" -S '' "$opts[@]" \ -M "r:|${sep}=* r:|=* $match" - "$pref" - + fi + fi return fi done |