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