From 88be4ff8500895ad5063c8d17798aa23d3aee84e Mon Sep 17 00:00:00 2001 From: Sven Wischnowsky Date: Mon, 2 Apr 2001 11:42:54 +0000 Subject: moved from Completion/User/_tilde_files --- Completion/Unix/Type/_tilde_files | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Completion/Unix/Type/_tilde_files (limited to 'Completion/Unix/Type/_tilde_files') diff --git a/Completion/Unix/Type/_tilde_files b/Completion/Unix/Type/_tilde_files new file mode 100644 index 000000000..ee6b18088 --- /dev/null +++ b/Completion/Unix/Type/_tilde_files @@ -0,0 +1,38 @@ +#autoload + +# Complete files and expand tilde expansions in it. + +if [[ ( -o magicequalsubst && "$IPREFIX" = *\= ) || $argv[(I)-W*] -ne 0 ]]; then + _files "$@" + return +fi + +case "$PREFIX" in +\~/*) + IPREFIX="${IPREFIX}${HOME}/" + PREFIX="${PREFIX[3,-1]}" + _files "$@" -W "${HOME}" + ;; +\~*/*) + local user="${PREFIX[2,-1]%%/*}" + + if (( $+userdirs[$user] )); then + user="$userdirs[$user]" + elif (( $+nameddirs[$user] )); then + user="$nameddirs[$user]" + else + _message "unknown user \`$user'" + return 1 + fi + IPREFIX="${IPREFIX}${user%/}/" + PREFIX="${PREFIX#*/}" + _files "$@" -W "$user" + ;; +\~*) + compset -P '?' + _users "$@" + ;; +*) + _files "$@" + ;; +esac -- cgit 1.4.1