completion: fill COMPREPLY directly when completing fetch refspecs
authorSZEDER Gábor <szeder.dev@gmail.com>
Thu, 23 Mar 2017 15:29:23 +0000 (16:29 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 Mar 2017 18:18:22 +0000 (11:18 -0700)
The __git_complete_fetch_refspecs() has to iterate over __git_refs()'s
output anyway to turn the listed matching refs into refspecs, and it
knows about the prefix and suffix that has to be added to each
refspec.

Modify this function to add the prefix and suffix to each refspec
while iterating and feed the result, since it doesn't need further
processing, to the new __gitcomp_direct() helper added in the previous
commit, because it should be faster when there are a lot of refspecs
to list.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
index 41e6589313952b89222fc4775f2c83bc09815d82..86c7d93b88c9bacb3cb1d8b8f413015f8e45f246 100644 (file)
@@ -536,11 +536,11 @@ __git_complete_fetch_refspecs ()
 {
        local i remote="$1" pfx="${2-}" cur_="${3-$cur}" sfx="${4- }"
 
-       __gitcomp_nl "$(
+       __gitcomp_direct "$(
                for i in $(__git_refs "$remote" "" "" "$cur_") ; do
-                       echo "$i:$i"
+                       echo "$pfx$i:$i$sfx"
                done
-               )" "$pfx" "$cur_" "$sfx"
+               )"
 }
 
 # __git_refs_remotes requires 1 argument (to pass to ls-remote)