From d139ae56432a82a3dbe11f4be89ba7d886f2c177 Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Wed, 22 Sep 1999 12:35:20 +0000 Subject: zsh-3.1.6-pws-5 --- Completion/Core/_path_files | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'Completion/Core/_path_files') diff --git a/Completion/Core/_path_files b/Completion/Core/_path_files index b017d78e5..b4b6fff97 100644 --- a/Completion/Core/_path_files +++ b/Completion/Core/_path_files @@ -24,7 +24,7 @@ # menucompletion. local linepath realpath donepath prepath testpath exppath -local tmp1 tmp2 tmp3 tmp4 i orig pre suf tpre tsuf +local tmp1 tmp2 tmp3 tmp4 i orig pre suf tpre tsuf opre osuf cpre local pats haspats=no ignore group expl addpfx addsfx remsfx local nm=$compstate[nmatches] menu @@ -118,6 +118,8 @@ fi pre="$PREFIX" suf="$SUFFIX" +opre="$PREFIX" +osuf="$SUFFIX" orig="${PREFIX}${SUFFIX}" [[ $compstate[insert] = (*menu|[0-9]*) || -n "$_comp_correct" || @@ -291,6 +293,8 @@ for prepath in "$prepaths[@]"; do if [[ "$haspats" = no && -z "$tpre$tsuf" && "$pre" = */ && -z "$suf" ]]; then + PREFIX="${opre}${osuf}" + SUFFIX="" compadd -nQS '' - "$linepath$donepath$orig" tmp4=- fi @@ -349,19 +353,27 @@ for prepath in "$prepaths[@]"; do # collected as the suffixes to make the completion code expand # it as far as possible. + if [[ "$tmp3" = */* ]]; then + PREFIX="${linepath}${cpre}${tmp3%%/*}" + SUFFIX="/${tmp3#*/}" + else + PREFIX="${linepath}${cpre}${tmp3}" + SUFFIX="" + fi + if [[ -n $menu ]]; then [[ -n "$compconfig[path_cursor]" ]] && compstate[to_end]='' if [[ "$tmp3" = */* ]]; then compadd -QUf -p "$linepath${testpath:q}" -s "/${tmp3#*/}" \ -W "$prepath$realpath$testpath" "$ignore[@]" \ "$addpfx[@]" "$addsfx[@]" "$remsfx[@]" -M 'r:|/=* r:|=*' \ - "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \ ++ "$group[@]" "$expl[@]" \ - "${(@)${(@)tmp1%%/*}:q}" else compadd -QUf -p "$linepath${testpath:q}" \ -W "$prepath$realpath$testpath" "$ignore[@]" \ "$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \ - "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \ + "$group[@]" "$expl[@]" \ - "${(@)tmp1:q}" fi else @@ -370,14 +382,14 @@ for prepath in "$prepaths[@]"; do compadd -QUf -p "$linepath${testpath:q}" -s "/${${i#*/}:q}" \ -W "$prepath$realpath$testpath" "$ignore[@]" \ "$addpfx[@]" "$addsfx[@]" "$remsfx[@]" -M 'r:|/=* r:|=*' \ - "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \ + "$group[@]" "$expl[@]" \ - "${${i%%/*}:q}" done else compadd -QUf -p "$linepath${testpath:q}" \ -W "$prepath$realpath$testpath" "$ignore[@]" \ "$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \ - "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \ + "$group[@]" "$expl[@]" \ - "${(@)tmp1:q}" fi fi @@ -399,14 +411,17 @@ for prepath in "$prepaths[@]"; do testpath="${testpath}${tmp1[1]%%/*}/" tmp1=( "${(@)tmp1#*/}" ) + cpre="${cpre}${tmp3%%/*}/" tmp3="${tmp3#*/}" done - if [[ -z "$tmp4" ]]; then - compadd -QUf -p "$linepath${testpath:q}" \ + if [[ -z "$tmp4" ]]; then + PREFIX="${opre}${osuf}" + SUFFIX="" + compadd -QUf -p "$linepath${testpath:q}" \ -W "$prepath$realpath$testpath" "$ignore[@]" \ "$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \ - "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \ + "$group[@]" "$expl[@]" \ - "${(@)tmp1:q}" fi done @@ -419,7 +434,9 @@ exppaths=( "${(@)exppaths:#$orig}" ) if [[ -n "$compconfig[path_expand]" && $#exppaths -gt 0 && nm -eq compstate[nmatches] ]]; then - compadd -QU -S '' "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \ + PREFIX="${opre}${osuf}" + SUFFIX="" + compadd -Q -S '' "$group[@]" "$expl[@]" \ -M 'r:|/=* r:|=*' -p "$linepath" - "$exppaths[@]" fi -- cgit 1.4.1