This patch offloads completion functionality for format-patch to
__gitcomp_builtin. In addition to this, send-email was borrowing some
completion options from format-patch so those options are moved into
send-email's completions.

Signed-off-by: Denton Liu <liu.den...@gmail.com>
---

I ran t9902-completion.sh on this patch and it seems to pass. Thus, this
should address the concerns about losing some completion options in
send-email.

---
 contrib/completion/git-completion.bash | 34 +++++++++++---------------
 1 file changed, 14 insertions(+), 20 deletions(-)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index d63d2dffd..cb4ef6723 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1531,15 +1531,6 @@ _git_fetch ()
        __git_complete_remote_or_refspec
 }
 
-__git_format_patch_options="
-       --stdout --attach --no-attach --thread --thread= --no-thread
-       --numbered --start-number --numbered-files --keep-subject --signoff
-       --signature --no-signature --in-reply-to= --cc= --full-index --binary
-       --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
-       --inline --suffix= --ignore-if-in-upstream --subject-prefix=
-       --output-directory --reroll-count --to= --quiet --notes
-"
-
 _git_format_patch ()
 {
        case "$cur" in
@@ -1550,7 +1541,7 @@ _git_format_patch ()
                return
                ;;
        --*)
-               __gitcomp "$__git_format_patch_options"
+               __gitcomp_builtin format-patch
                return
                ;;
        esac
@@ -2080,16 +2071,19 @@ _git_send_email ()
                return
                ;;
        --*)
-               __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
-                       --compose --confirm= --dry-run --envelope-sender
-                       --from --identity
-                       --in-reply-to --no-chain-reply-to --no-signed-off-by-cc
-                       --no-suppress-from --no-thread --quiet --reply-to
-                       --signed-off-by-cc --smtp-pass --smtp-server
-                       --smtp-server-port --smtp-encryption= --smtp-user
-                       --subject --suppress-cc= --suppress-from --thread --to
-                       --validate --no-validate
-                       $__git_format_patch_options"
+               __gitcomp "--all --annotate --attach --bcc --binary --cc --cc= 
--cc-cmd
+                       --chain-reply-to --compose --confirm= --cover-letter 
--dry-run
+                       --dst-prefix= --envelope-sender --from --full-index 
--identity
+                       --ignore-if-in-upstream --inline --in-reply-to 
--in-reply-to=
+                       --keep-subject --no-attach --no-chain-reply-to 
--no-prefix
+                       --no-signature --no-signed-off-by-cc --no-suppress-from 
--not --notes
+                       --no-thread --no-validate --numbered --numbered-files
+                       --output-directory --quiet --reply-to --reroll-count 
--signature
+                       --signed-off-by-cc --signoff --smtp-encryption= 
--smtp-pass
+                       --smtp-server --smtp-server-port --smtp-user 
--src-prefix=
+                       --start-number --stdout --subject --subject-prefix= 
--suffix=
+                       --suppress-cc= --suppress-from --thread --thread= --to 
--to=
+                       --validate"
                return
                ;;
        esac
-- 
2.19.1

Reply via email to