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:
parent
a0e7299717
commit
c81b87fbd3
@ -1495,8 +1495,8 @@ _command_offset()
|
|||||||
COMPREPLY=( $( compgen -c -- "$cur" ) )
|
COMPREPLY=( $( compgen -c -- "$cur" ) )
|
||||||
else
|
else
|
||||||
cmd=${COMP_WORDS[0]}
|
cmd=${COMP_WORDS[0]}
|
||||||
if complete -p $cmd &>/dev/null; then
|
if complete -p ${cmd##*/} &>/dev/null; then
|
||||||
cspec=$( complete -p $cmd )
|
cspec=$( complete -p ${cmd##*/} )
|
||||||
if [ "${cspec#* -F }" != "$cspec" ]; then
|
if [ "${cspec#* -F }" != "$cspec" ]; then
|
||||||
# complete -F <function>
|
# complete -F <function>
|
||||||
|
|
||||||
@ -1522,7 +1522,7 @@ _command_offset()
|
|||||||
fi
|
fi
|
||||||
elif [ -n "$cspec" ]; then
|
elif [ -n "$cspec" ]; then
|
||||||
cspec=${cspec#complete};
|
cspec=${cspec#complete};
|
||||||
cspec=${cspec%%$cmd};
|
cspec=${cspec%%${cmd##*/}};
|
||||||
COMPREPLY=( $( eval compgen "$cspec" -- "$cur" ) );
|
COMPREPLY=( $( eval compgen "$cspec" -- "$cur" ) );
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user