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