Make _command_offset() do the right thing with full path completions.

For example, "sudo /usr/sbin/useradd" completion didn't work properly,
whereas "sudo useradd" did.
This commit is contained in:
Ville Skyttä 2010-12-04 21:05:54 +02:00
parent a0e7299717
commit c81b87fbd3

View File

@ -1495,8 +1495,8 @@ _command_offset()
COMPREPLY=( $( compgen -c -- "$cur" ) )
else
cmd=${COMP_WORDS[0]}
if complete -p $cmd &>/dev/null; then
cspec=$( complete -p $cmd )
if complete -p ${cmd##*/} &>/dev/null; then
cspec=$( complete -p ${cmd##*/} )
if [ "${cspec#* -F }" != "$cspec" ]; then
# complete -F <function>
@ -1522,7 +1522,7 @@ _command_offset()
fi
elif [ -n "$cspec" ]; then
cspec=${cspec#complete};
cspec=${cspec%%$cmd};
cspec=${cspec%%${cmd##*/}};
COMPREPLY=( $( eval compgen "$cspec" -- "$cur" ) );
fi
fi