Improved filename based man page completion.
This commit is contained in:
parent
ff5247fac8
commit
b80e3f66a8
@ -848,7 +848,9 @@ complete -F _insmod $filenames insmod modprobe modinfo
|
|||||||
-o $UNAME = OpenBSD ] &&
|
-o $UNAME = OpenBSD ] &&
|
||||||
_man()
|
_man()
|
||||||
{
|
{
|
||||||
local cur prev sect manpath UNAME
|
local cur prev sect manpath manext UNAME
|
||||||
|
|
||||||
|
manext="@([0-9lnp]|[0-9][px]|man)?(.@(gz|bz2|lzma))"
|
||||||
|
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
cur=`_get_cword`
|
cur=`_get_cword`
|
||||||
@ -856,15 +858,15 @@ _man()
|
|||||||
|
|
||||||
case $prev in
|
case $prev in
|
||||||
-l)
|
-l)
|
||||||
_filedir;
|
_filedir $manext
|
||||||
return 0;
|
return 0;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
_expand || return 0
|
_expand || return 0
|
||||||
|
|
||||||
# default completion if parameter contains /
|
# file based completion if parameter contains /
|
||||||
if [[ "$cur" == */* ]]; then
|
if [[ "$cur" == */* ]]; then
|
||||||
_filedir
|
_filedir $manext
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -898,10 +900,18 @@ _man()
|
|||||||
# weed out directory path names and paths to man pages
|
# weed out directory path names and paths to man pages
|
||||||
COMPREPLY=( ${COMPREPLY[@]##*/?(:)} )
|
COMPREPLY=( ${COMPREPLY[@]##*/?(:)} )
|
||||||
# strip suffix from man pages
|
# strip suffix from man pages
|
||||||
COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} )
|
COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2|lzma)} )
|
||||||
COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) )
|
COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) )
|
||||||
|
|
||||||
[[ "$prev" != [0-9ln] ]] && _filedir '[0-9ln]'
|
if [[ "$prev" != @([0-9lnp]|[0-9][px]) ]]; then
|
||||||
|
# File based completion for the rest, prepending ./ if needed
|
||||||
|
# (man 1.6f needs that for man pages in current dir)
|
||||||
|
local start=${#COMPREPLY[@]}
|
||||||
|
_filedir $manext
|
||||||
|
for (( i=$start; i < ${#COMPREPLY[@]}; i++ )); do
|
||||||
|
[[ ${COMPREPLY[i]} == */* ]] || COMPREPLY[i]=./${COMPREPLY[i]}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
1
debian/changelog
vendored
1
debian/changelog
vendored
@ -61,6 +61,7 @@ bash-completion (200811xx) UNRELEASED; urgency=low
|
|||||||
(Ville Skyttä).
|
(Ville Skyttä).
|
||||||
* Improved features and performance of yum completion (Ville Skyttä).
|
* Improved features and performance of yum completion (Ville Skyttä).
|
||||||
* Added support for p (POSIX) and x (x.org) man sections (Ville Skyttä).
|
* Added support for p (POSIX) and x (x.org) man sections (Ville Skyttä).
|
||||||
|
* Improved filename based man page completion (Ville Skyttä).
|
||||||
* Merge from Gentoo:
|
* Merge from Gentoo:
|
||||||
- fix 'find' completion so that it properly completes on -?(i)whilename.
|
- fix 'find' completion so that it properly completes on -?(i)whilename.
|
||||||
Patch by Ciaran McCreesh.
|
Patch by Ciaran McCreesh.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user