diff options
author | Paul Ackersviller <packersv@users.sourceforge.net> | 2007-05-02 03:46:28 +0000 |
---|---|---|
committer | Paul Ackersviller <packersv@users.sourceforge.net> | 2007-05-02 03:46:28 +0000 |
commit | 2598e0995abf3d3fadc226cbc282f25bfe8e6521 (patch) | |
tree | c26795f3890d32ad638e34030e83081603bb1cc7 /Completion/Unix/Type | |
parent | 6a9a6a4fbce997fe53c6886791e5af794d79fd2f (diff) | |
download | zsh-2598e0995abf3d3fadc226cbc282f25bfe8e6521.tar.gz zsh-2598e0995abf3d3fadc226cbc282f25bfe8e6521.tar.xz zsh-2598e0995abf3d3fadc226cbc282f25bfe8e6521.zip |
Merge of workers/{21302,21306,21310}.
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r-- | Completion/Unix/Type/_file_systems | 10 | ||||
-rw-r--r-- | Completion/Unix/Type/_global_tags | 7 | ||||
-rw-r--r-- | Completion/Unix/Type/_locales | 12 | ||||
-rw-r--r-- | Completion/Unix/Type/_user_at_host | 31 |
4 files changed, 55 insertions, 5 deletions
diff --git a/Completion/Unix/Type/_file_systems b/Completion/Unix/Type/_file_systems index d541fac15..ffbf5ac68 100644 --- a/Completion/Unix/Type/_file_systems +++ b/Completion/Unix/Type/_file_systems @@ -1,6 +1,6 @@ #autoload -local fss +local expl fss case $OSTYPE in aix*) fss=( jfs nfs cdrfs ) ;; @@ -10,9 +10,9 @@ case $OSTYPE in fss=( adfs bfs cramfs ext2 ext3 hfs hpfs iso9660 minix ntfs qnx4 reiserfs romfs swap udf ufs vxfs xfs xiafs ) [[ -r /proc/filesystems ]] && - fss=( $fss ${$(</proc/filesystems)#nodev} ) + fss+=( ${$(</proc/filesystems)#nodev} ) [[ -r /etc/filesystems ]] && - fss=( $fss ${$(</etc/filesystems)#nodev} ) + fss+=( ${$(</etc/filesystems)#\*} ) ;; osf*) fss=( advfs ufs nfs mfs cdfs ) ;; solaris*) fss=( ufs nfs hsfs s5fs pcfs cachefs tmpfs ) ;; @@ -22,11 +22,11 @@ case $OSTYPE in ;; *) # default for all other systems - fss=( ufs) + fss=( ufs ) ;; esac -_wanted fstypes expl 'file system type' compadd "$@" -M 'L:|no=' -a fss +_wanted fstypes expl 'file system type' compadd "$@" -M 'L:|no=' -a "$@" - fss diff --git a/Completion/Unix/Type/_global_tags b/Completion/Unix/Type/_global_tags new file mode 100644 index 000000000..fcda28dfb --- /dev/null +++ b/Completion/Unix/Type/_global_tags @@ -0,0 +1,7 @@ +#autoload + +local expl tags + +tags=( $(_call_program global-tags global --completion $PREFIX 2>/dev/null) ) + +_wanted global-tags expl 'tag' compadd -M 'm:{a-zA-Z}={A-Za-z}' -a "$@" - tags diff --git a/Completion/Unix/Type/_locales b/Completion/Unix/Type/_locales new file mode 100644 index 000000000..a449ebe16 --- /dev/null +++ b/Completion/Unix/Type/_locales @@ -0,0 +1,12 @@ +#compdef -value-,LANG,-default- -value-,LANGUAGE,-default- -P -value-,LC_*,-default- + +local expl locales + +if (( $+commands[locale] )); then + locales=( $(_call_program locales locale -a) ) + [[ $OSTYPE = *-gnu ]] && locales=( ${locales/utf8/UTF-8} ) +else + locales=( /usr/lib/locale/*(:t) ) +fi + +_wanted locales expl locale compadd -a "$@" - locales diff --git a/Completion/Unix/Type/_user_at_host b/Completion/Unix/Type/_user_at_host new file mode 100644 index 000000000..a242ddeb6 --- /dev/null +++ b/Completion/Unix/Type/_user_at_host @@ -0,0 +1,31 @@ +#autoload + +# Complete user/host combinations. Normally this looks for the style +# `users-hosts' for the tag `accounts'. A different tag may be given +# with `-t tag'. +# A `-' or `--' as the first argument is ignored. + +local expl suf tag=accounts + +if [[ "$1" = -t?* ]]; then + tag="${1[3,-1]}" + shift +elif [[ "$1" = -t ]]; then + tag="$2" + shift 2 +fi + +[[ "$1" = -(|-) ]] && shift + +if [[ -prefix 1 *@ ]]; then + local user=${PREFIX%%@*} + + compset -P 1 '*@' + + _wanted -C user-at hosts expl "host for $user" \ + _combination -s '[:@]' "${tag}" users-hosts users="$user" hosts "$@" - +else + compset -S '@*' || suf="@" + _wanted users expl "user" \ + _combination -s '[:@]' "${tag}" users-hosts users -S "$suf" -q "$@" - +fi |