diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Core/_files | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/Completion/Core/_files b/Completion/Core/_files deleted file mode 100644 index 03453bc48..000000000 --- a/Completion/Core/_files +++ /dev/null @@ -1,90 +0,0 @@ -#autoload - -local opts tmp glob pat pats expl tag i def descr end ign ret=1 match tried -local type sdef - -zparseopts -a opts \ - '/=tmp' 'f=tmp' 'g+:-=tmp' q n 1 2 P: S: r: R: W: X+: M+: F: J+: V+: - -type="${(@j::M)${(@)tmp#-}#?}" -if (( $tmp[(I)-g*] )); then - glob="${${${${(@M)tmp:#-g*}#-g}##[[:blank:]]#}%%[[:blank:]]#}" - [[ "$glob" = *[^\\][[:blank:]]* ]] && - glob="{${glob//(#b)([^\\])[[:blank:]]##/${match[1]},}}" -fi -ign=$opts[(I)-F] -if (( ign )); then - ign=( $=opts[ign+1] ) - if [[ $ign = _comp_ignore ]]; then - ign=( $_comp_ignore ) - else - opts[tmp+1]=_comp_ignore - fi -else - ign= -fi - -if zstyle -a ":completion:${curcontext}:" file-patterns tmp; then - [[ "$type" = */* ]] && glob="$glob,*(-/)" - pats=() - - for i in ${tmp//%p/${${glob:-\*}//:/\\:}}; do - if [[ $i = *[^\\]:* ]]; then - pats=( "$pats[@]" " $i " ) - else - pats=( "$pats[@]" " ${i}:files " ) - fi - done -else - if [[ "$type" = *g* ]]; then - if [[ "$type" = */* ]]; then - pats=( " ${glob//:/\\:}:globbed-files *(-/):directories" '*:all-files ' ) - else - pats=( " ${glob//:/\\:}:globbed-files " - '*(-/):directories ' '*:all-files ' ) - fi - elif [[ "$type" = */* ]]; then - pats=( '*(-/):directories ' '*:all-files ' ) - else - pats=( '*:all-files ' ) - fi -fi - -tried=() -for def in "$pats[@]"; do - eval "def=( ${${def:s/\\:/\\\\\\\\\\\\:}//(#b)([][()|*?^#~<>])/\\${match[1]}} )" - for sdef in "$def[@]"; do - - tag="${${sdef#*[^\\]:}%%:*}" - pat="${${sdef%%:${tag}*}//\\:/:}" - - (( $tried[(I)${(q)pat}] )) && continue - - tried=( "$tried[@]" "$pat" ) - - if [[ "$sdef" = *:${tag}:* ]]; then - descr="${(Q)sdef#*:${tag}:}" - else - descr=file - end=yes - fi - - _tags "$tag" - while _tags; do - _comp_ignore=() - while _next_label "$tag" expl "$descr"; do - _comp_ignore=( $_comp_ignore $ign ) - if [[ -n "$end" ]]; then - _path_files -g "$pat" "$opts[@]" "$expl[@]" && ret=0 - else - _path_files "$expl[@]" -g "$pat" "$opts[@]" && ret=0 - fi - done - (( ret )) || break - done - [[ "$pat" = '*' ]] && return ret - done - (( ret )) || return 0 -done - -return 1 |