@@ -334,7 +334,7 @@ __gitcomp ()
return
fi
- local c i=0 IFS=$' \t\n'
+ local c i=0 IFS=$' \t\n' sfx
for c in $1; do
if [[ $c == "--" ]]; then
if [[ "$cur_" == --no-* ]]; then
@@ -347,12 +347,15 @@ __gitcomp ()
break
fi
if [[ $c == "$cur_"* ]]; then
- c="$c${4-}"
- case $c in
- *=|*.) ;;
- *) c="$c " ;;
- esac
- COMPREPLY[i++]="${2-}$c"
+ if [[ -z "${4+set}" ]]; then
+ case $c in
+ *=|*.) sfx="" ;;
+ *) sfx=" " ;;
+ esac
+ else
+ sfx="$4"
+ fi
+ COMPREPLY[i++]="${2-}$c$sfx"
fi
done
}
@@ -58,7 +58,7 @@ __gitcomp ()
[[ "$cur_" == *= ]] && return
- local c IFS=$' \t\n'
+ local c IFS=$' \t\n' sfx
local -a array
for c in ${=1}; do
if [[ $c == "--" ]]; then
@@ -66,12 +66,16 @@ __gitcomp ()
array+=("--no-... ")
break
fi
- c="$c${4-}"
- case $c in
- *=|*.) ;;
- *) c="$c " ;;
- esac
- array+=("$c")
+
+ if [[ -z "${4+set}" ]]; then
+ case $c in
+ *=|*.) sfx="" ;;
+ *) sfx=" " ;;
+ esac
+ else
+ sfx="$4"
+ fi
+ array+=("$c$sfx")
done
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
}
There's no point in adding a suffix after a suffix. If a suffix is provided, we add it, if not, then the default heuristic is used. There's no functional change since most callers don't specify a suffix, and the ones that do use an =, which by default doesn't add an additional suffix. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/completion/git-completion.bash | 17 ++++++++++------- contrib/completion/git-completion.zsh | 18 +++++++++++------- 2 files changed, 21 insertions(+), 14 deletions(-)