diff options
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Type/_path_files | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files index fc0789f01..a3e19ac53 100644 --- a/Completion/Unix/Type/_path_files +++ b/Completion/Unix/Type/_path_files @@ -595,7 +595,8 @@ for prepath in "$prepaths[@]"; do # back up the path. tmp1=("${(@)tmp1%%/*}") _list_files tmp1 "$prepath$realpath$testpath" - compadd -Qf "$mopts[@]" -p "$linepath$tmp2" -s "/${tmp3#*/}" \ + compadd -U -Qf "$mopts[@]" -p "$IPREFIX$linepath$tmp2" + -s "/${tmp3#*/}$ISUFFIX" \ -W "$prepath$realpath$testpath" \ "$pfxsfx[@]" -M "r:|/=* r:|=*" \ $listopts \ @@ -604,7 +605,8 @@ for prepath in "$prepaths[@]"; do # Same with a non-empty suffix tmp1=("${(@)^tmp1%%/*}/${tmp3#*/}") _list_files tmp1 "$prepath$realpath$testpath" - compadd -Qf "$mopts[@]" -p "$linepath$tmp2" \ + compadd -U -Qf "$mopts[@]" -p "$IPREFIX$linepath$tmp2" \ + -s "$ISUFFIX" \ -W "$prepath$realpath$testpath" \ "$pfxsfx[@]" -M "r:|/=* r:|=*" \ $listopts \ @@ -612,7 +614,8 @@ for prepath in "$prepaths[@]"; do fi else _list_files tmp1 "$prepath$realpath$testpath" - compadd -Qf "$mopts[@]" -p "$linepath$tmp2" \ + compadd -U -Qf "$mopts[@]" -p "$IPREFIX$linepath$tmp2" \ + -s "$ISUFFIX" \ -W "$prepath$realpath$testpath" \ "$pfxsfx[@]" -M "r:|/=* r:|=*" \ $listopts \ @@ -621,7 +624,8 @@ for prepath in "$prepaths[@]"; do else # We are inserting the match into the command line. if [[ "$tmp3" = */* ]]; then - tmp4=( -Qf "$mopts[@]" -p "$linepath$tmp2" + tmp4=( -U -Qf "$mopts[@]" -p "$IPREFIX$linepath$tmp2" + -s "$ISUFFIX" -W "$prepath$realpath$testpath" "$pfxsfx[@]" -M "r:|/=* r:|=*" ) if [[ -z "$listsfx" ]]; then @@ -640,7 +644,8 @@ for prepath in "$prepaths[@]"; do fi else _list_files tmp1 "$prepath$realpath$testpath" - compadd -Qf "$mopts[@]" -p "$linepath$tmp2" \ + compadd -U -Qf "$mopts[@]" -p "$IPREFIX$linepath$tmp2" \ + -s "$ISUFFIX" \ -W "$prepath$realpath$testpath" \ "$pfxsfx[@]" -M "r:|/=* r:|=*" \ $listopts \ @@ -708,7 +713,8 @@ for prepath in "$prepaths[@]"; do compquote tmp4 tmp2 tmp1 for i in "$tmp1[@]"; do _list_files tmp2 "$prepath$realpath${mid%/*/}" - compadd -Qf "$mopts[@]" -p "$linepath$tmp3/" -s "/$tmp4$i" \ + compadd -U -Qf "$mopts[@]" -p "$IPREFIX$linepath$tmp3/" \ + -s "/$tmp4$i$ISUFFIX" \ -W "$prepath$realpath${mid%/*/}/" \ "$pfxsfx[@]" -M "r:|/=* r:|=*" $listopts - "$tmp2" done @@ -738,7 +744,9 @@ for prepath in "$prepaths[@]"; do else # Not a pattern match _list_files tmp1 "$prepath$realpath$testpath" - compadd -Qf -p "$linepath$tmp4" -W "$prepath$realpath$testpath" \ + compadd -U -Qf -p "$IPREFIX$linepath$tmp4" \ + -s "$ISUFFIX" \ + -W "$prepath$realpath$testpath" \ "$pfxsfx[@]" "$mopts[@]" -M "r:|/=* r:|=*" $listopts -a tmp1 fi fi |