From 5654b905f96720bef285dc92d6b2e2cc31bd971e Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Wed, 2 Aug 2017 15:10:02 +0000 Subject: 41481: _df: Complete mounted device and mount points. This splits umount's "udevordir" completion from _mount to a new file, without changing it. --- Completion/Unix/Command/_mount | 43 +----------------------------------------- 1 file changed, 1 insertion(+), 42 deletions(-) (limited to 'Completion/Unix/Command/_mount') diff --git a/Completion/Unix/Command/_mount b/Completion/Unix/Command/_mount index 9a7041dee..03cc01f8d 100644 --- a/Completion/Unix/Command/_mount +++ b/Completion/Unix/Command/_mount @@ -931,48 +931,7 @@ devordir) esac ;; udevordir) - local dev_tmp dpath_tmp mp_tmp mline - - case "$OSTYPE" in - linux*|irix*) - tmp=( "${(@f)$(< /etc/mtab)}" ) - dev_tmp=( "${(@)${(@)tmp%% *}:#none}" ) - mp_tmp=( "${(@)${(@)tmp#* }%% *}" ) - ;; - freebsd*|dragonfly*) - /sbin/mount | while read mline; do - dev_tmp+=( $mline[(w)1] ) - mp_tmp+=( $mline[(w)3] ) - done - ;; - darwin*) - tmp=( "${(@f)$(/sbin/mount)}" ) - dev_tmp=( "${(@)${(@)tmp%% *}:#map}" ) - mp_tmp=( "${(@)${(@)tmp#* on }%% \(*}" ) - ;; - *) - /sbin/mount | while read mline; do - mp_tmp+=( $mline[(w)1] ) - dev_tmp+=( $mline[(w)3] ) - done - ;; - esac - - local MATCH MBEGIN MEND - # The complicated substitution for mount point names is required because - # characters in /etc/mtab that might confuse programs reading the names - # are encoded as exactly 3 octal digits, like for example \040 for space. - # The cleaner-looking ${(g::)mp_tmp} might consume too many digits. - # Both mp_tmp and dev_tmp are derived from /etc/mtab or "mount" output. - mp_tmp=("${(@)mp_tmp//(#m)\\[0-7](#c3)/${(#)$(( 8#${MATCH[2,-1]} ))}}") - dev_tmp=("${(@)dev_tmp//(#m)\\[0-7](#c3)/${(#)$(( 8#${MATCH[2,-1]} ))}}") - dpath_tmp=( "${(@M)dev_tmp:#/*}" ) - dev_tmp=( "${(@)dev_tmp:#/*}" ) - - _alternative \ - 'device-labels:device label:compadd -a dev_tmp' \ - 'device-paths: device path:_canonical_paths -A dpath_tmp -N -M "r:|/=* r:|=*" device-paths device\ path' \ - 'directories:mount point:_canonical_paths -A mp_tmp -N -M "r:|/=* r:|=*" directories mount\ point' && ret=0 + _umountable ;; labels) _wanted labels expl 'disk label' compadd /dev/disk/by-label/*(:t) && ret=0 -- cgit 1.4.1