diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Completion/Unix/Type/_path_files | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 469675817..fa253eb5d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2004-04-27 Peter Stephenson <pws@csr.com> + * 19839 (plus suggestion from 19842): + Completion/Unix/Type/_path_files: handle existing (#q)'s + in qualifiers when adding sort options and adding back + qualifiers from command line. + * 19840: Src/Zle/zle_main.c: also, vared now only takes one normal argument. diff --git a/Completion/Unix/Type/_path_files b/Completion/Unix/Type/_path_files index fc8edca02..aae248bf5 100644 --- a/Completion/Unix/Type/_path_files +++ b/Completion/Unix/Type/_path_files @@ -120,7 +120,9 @@ if zstyle -s ":completion:${curcontext}:" file-sort tmp1; then tmp2=() for tmp1 in "$pats[@]"; do - if [[ "$tmp1" = (#b)(*[^\$])(\(\([^\|~]##\)\)) ]]; then + if [[ "$tmp1" = (#b)(*[^\$])"(#q"(*)")" ]]; then + tmp2=( "$tmp2[@]" "${match[1]}(#q${sort}${match[2]})" ) + elif [[ "$tmp1" = (#b)(*[^\$])(\(\([^\|~]##\)\)) ]]; then tmp2=( "$tmp2[@]" "${match[1]}((${sort}${match[2][3,-1]}" ) elif [[ "$tmp1" = (#b)(*[^\$])(\([^\|~]##\)) ]]; then tmp2=( "$tmp2[@]" "${match[1]}(${sort}${match[2][2,-1]}" ) @@ -168,7 +170,9 @@ if [[ -n "$compstate[pattern_match]" && fi tmp2=() for tmp1 in "$pats[@]"; do - if [[ "$tmp1" = (#b)(*[^\$])(\(\([^\|~]##\)\)) ]]; then + if [[ "$tmp1" = (#b)(*[^\$])"(#q"(*)")" ]]; then + tmp2=( "$tmp2[@]" "${match[1]}(#q${tmp3}${match[2]})" ) + elif [[ "$tmp1" = (#b)(*[^\$])(\(\([^\|~]##\)\)) ]]; then tmp2=( "$tmp2[@]" "${match[1]}((${tmp3}${match[2][3,-1]}" ) elif [[ "$tmp1" = (#b)(*[^\$])(\([^\|~]##\)) ]]; then tmp2=( "$tmp2[@]" "${match[1]}(${tmp3}${match[2][2,-1]}" ) |