Package: python-doit
Version: 0.21.1-1
Severity: important
Tags: upstream patch
Hi,
The doit completion script overwrites COMP_WORDBREAKS, adversely
affecting other completion scripts. Luckily the _get_comp_words_by_ref
helper from bash-completion can be used to avoid this, in effect
overwriting COMP_WORDBREAKS locally (by pasting words together).
How about this patch?
Hope that helps,
Jonathan
bash_completion_doit | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/bash_completion_doit b/bash_completion_doit
index 51f76858..5fb2342e 100644
--- a/bash_completion_doit
+++ b/bash_completion_doit
@@ -3,11 +3,9 @@
_doit()
{
- local cur prev basetask sub_cmds tasks i dodof
+ local cur prev words cword basetask sub_cmds tasks i dodof
COMPREPLY=()
- COMP_WORDBREAKS=${COMP_WORDBREAKS//:} # remove colon from word separator
list
- cur="${COMP_WORDS[COMP_CWORD]}"
- prev="${COMP_WORDS[COMP_CWORD-1]}"
+ _get_comp_words_by_ref -n : cur prev words cword
# list of doit sub-commands
sub_cmds="help run clean list forget ignore auto dumpdb"
@@ -28,14 +26,14 @@ _doit()
# get name of the dodo file
- for (( i=0; i < ${#COMP_WORDS[@]}; i++)); do
- case "${COMP_WORDS[i]}" in
+ for (( i=0; i < ${#words[@]}; i++)); do
+ case "${words[i]}" in
-f)
- dodof=${COMP_WORDS[i+1]}
+ dodof=${words[i+1]}
break
;;
--file=*)
- dodof=${COMP_WORDS[i]/*=/}
+ dodof=${words[i]/*=/}
break
;;
esac
@@ -64,7 +62,7 @@ _doit()
# match for first parameter must be sub-command or task
# FIXME doit accepts options "-" in the first parameter but we ignore this
case
- if [[ ${COMP_CWORD} == 1 ]] ; then
+ if [[ ${cword} == 1 ]] ; then
COMPREPLY=( $(compgen -W "${sub_cmds} ${tasks}" -- ${cur}) )
return 0
fi
--
1.8.3
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]