completion: fix __gitcomp_builtin no longer consider extra options

__gitcomp_builtin() has the main completion list provided by git xxx --git-completion-helper but the caller can also add extra options that is not provided by --git-completion-helper. The only call site that does this is "git difftool" completion. This support is broken by b221b5ab9b (completion: collapse extra --no-.. options - 2018-06-06), which adds a special value "--" to mark that the rest of the options can be hidden by default. The commit forgets the fact that extra options are appended after "$(git xxx --git-completion-helper)", i.e. after this "--", and will be incorrectly hidden as well. Prepend the extra options before "$(git xxx --git-completion-helper)" to avoid this. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed Oct 21, 2018 at 10:37 UTC 276b49ff3413434ec491db8fcb56485a71c6b6e7
1 file changed +1 -1
contrib/completion/git-completion.bash
+1 -1
@@ -336,7 +336,7 @@ __gitcomp_builtin ()
336 if [ -z "$options" ]; then
337 # leading and trailing spaces are significant to make
338 # option removal work correctly.
339 - options=" $(__git ${cmd/_/ } --git-completion-helper) $incl "
339 + options=" $incl $(__git ${cmd/_/ } --git-completion-helper) "
340 for i in $excl; do
341 options="${options/ $i / }"
342 done