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.denton@xxxxxxxxx> --- 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