1#autoload 2 3# Complete files and expand tilde expansions in it. 4 5if [[ ( -o magicequalsubst && "$IPREFIX" = *\= ) || $argv[(I)-W*] -ne 0 ]]; then 6 _files "$@" 7 return 8fi 9 10case "$PREFIX" in 11\~/*) 12 IPREFIX="${IPREFIX}${HOME}/" 13 PREFIX="${PREFIX[3,-1]}" 14 _files "$@" -W "${HOME}" 15 ;; 16\~*/*) 17 local user="${PREFIX[2,-1]%%/*}" 18 19 if (( $+userdirs[$user] )); then 20 user="$userdirs[$user]" 21 elif (( $+nameddirs[$user] )); then 22 user="$nameddirs[$user]" 23 else 24 _message "unknown user \`$user'" 25 return 1 26 fi 27 IPREFIX="${IPREFIX}${user%/}/" 28 PREFIX="${PREFIX#*/}" 29 _files "$@" -W "$user" 30 ;; 31\~*) 32 compset -P '?' 33 _users "$@" 34 ;; 35*) 36 _files "$@" 37 ;; 38esac 39