diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Completion/Unix/Command/_mount | 16 |
2 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 008a36e84..88271576c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-02-20 Oliver Kiddle <opk@zsh.org> + + * 19455: Completion/Unix/Command/_mount: complete hostnames + and nfs mounts + 2004-02-19 Clint Adams <schizo@debian.org> * unposted: Completion/Debian/Command/_bts: patch from diff --git a/Completion/Unix/Command/_mount b/Completion/Unix/Command/_mount index 17bce8023..653d7d7c2 100644 --- a/Completion/Unix/Command/_mount +++ b/Completion/Unix/Command/_mount @@ -750,6 +750,17 @@ fsopt) devordir) local dev_tmp mp_tmp mline + if compset -P '*:'; then + _wanted exports expl 'exported path' compadd \ + ${${(f)"$(path+=( {/usr,}/sbin(N) ) _call_program exports \ + showmount -e ${IPREFIX%:} 2>/dev/null)"}[2,-1]%% *} && ret=0 + return ret + fi + if compset -S ':*'; then + _hosts -S '' && ret=0 + return ret + fi + case "$OSTYPE" in freebsd*) while read mline; do @@ -767,6 +778,7 @@ devordir) done < /etc/fstab _alternative \ + 'hosts:host:_hosts -S :' \ 'devices:device:compadd -a dev_tmp' \ 'directories:mount point:compadd -a mp_tmp' && ret=0 ;; @@ -774,7 +786,9 @@ devordir) if (( ${${(s.,.)opt_args[-o]}[(I)loop(|=*)]} )) ; then _wanted device-files expl 'loop device file' _files && ret=0 else - _wanted files expl 'device or mount point' _files -g "*(-%,-/)" && ret=0 + _alternative \ + 'hosts:host:_hosts -S :' \ + 'files:device or mount point:_files -g "*(-%b,-/)"' && ret=0 fi ;; esac |