From 6d44b8033a2993e965c8b1fa97cba9d11fa7022e Mon Sep 17 00:00:00 2001 From: Crestez Dan Leonard Date: Mon, 15 Feb 2010 14:13:51 +0200 Subject: (umount) Parse /proc/mounts instead of mount output on Linux This makes it possible to easily unmount paths with spaces. Those are common when automatically mounting usb devices. --- contrib/mount | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/contrib/mount b/contrib/mount index e4a74372..6fbb24fa 100644 --- a/contrib/mount +++ b/contrib/mount @@ -120,12 +120,18 @@ complete -F _mount -o default -o dirnames mount have umount && _umount() { - local cur IFS=$'\n' - COMPREPLY=() - cur=`_get_cword` - COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- "$cur" ) ) + local cur=`_get_cword` + + if [[ $(uname -s) = Linux && -r /proc/mounts ]]; then + # Linux /proc/mounts is properly quoted. This is important when + # unmounting usb devices with pretty names. + _linux_fstab < /proc/mounts + else + local IFS=$'\n' + COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- "$cur" ) ) + fi return 0 } && -- cgit v1.2.1