umount: Real fix for completion of relative paths.
This commit is contained in:
parent
7a1a3da08a
commit
54bcdff3cf
@ -65,17 +65,28 @@ _linux_fstab()
|
||||
fi
|
||||
done
|
||||
|
||||
# Add some relative paths to COMPREPLY
|
||||
# Add relative paths to COMPREPLY
|
||||
if [[ $cur && $cur != /* ]]; then
|
||||
local realcur
|
||||
[[ $cur == */ ]] && # don't let readlink drop last / from path
|
||||
realcur="$( readlink -f "$cur." 2> /dev/null )/" ||
|
||||
realcur=$( readlink -f "$cur" 2> /dev/null )
|
||||
if [[ $realcur ]]; then
|
||||
local dirrealcur= dircur= basecur
|
||||
if [[ $cur == */* ]]; then
|
||||
dirrealcur="${realcur%/*}/"
|
||||
dircur="${cur%/*}/"
|
||||
fi
|
||||
basecur=${cur#"$dircur"}
|
||||
local i n=${#COMPREPLY[@]}
|
||||
for (( i=0; i < $n; i++ )); do
|
||||
if [[ "${COMPREPLY[i]}" == "$PWD"* ]]; then
|
||||
[[ $cur == ./* ]] &&
|
||||
COMPREPLY+=( "./${COMPREPLY[i]##$PWD*(/)}" ) ||
|
||||
COMPREPLY+=( "${COMPREPLY[i]##$PWD*(/)}" )
|
||||
fi
|
||||
[[ "${COMPREPLY[i]}" == "$realcur"* ]] &&
|
||||
COMPREPLY+=( $( cd "$dircur" 2> /dev/null &&
|
||||
compgen -f -d -P "$dircur" \
|
||||
-X "!${COMPREPLY[i]##"$dirrealcur"}" -- "$basecur" ) )
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
_reply_compgen_array
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user