summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_mount16
1 files changed, 15 insertions, 1 deletions
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