"git send-email" completion (bash, zsh) is inconsistent, its flags are split into both git-completion.bash and git-send-email.perl, and it only emits format-patch flags. Make shell completion uniform, centralizing completion options on git-send-email.perl. Make "git send-email --git-completion-helper" properly emit send-email specific options, generating them programmatically. Additionally, update git-send-email(1) man page to explicitly mention format-patch options. Differences from V4: Incorporate Carlo Arenas' and Ævar Arnfjörð Bjarmason's suggestion to programatically generate the flags. I tried to be concise whilst preserving readability, hopefully it's straightforward to parse the current implementation. Reviewers of previous versions: - Bagas Sanjaya - Carlo Arenas - Junio Hamano - Ævar Arnfjörð Bjarmason Ævar wrote earlier: > Note: using --in-reply-to to the previous version in "git format-patch" > helps keep track of the context. Thanks for the heads up, I am slowly getting used to this email workflow, this is my first contribution. Hopefully I got it right this time. > Isn't this just: > my @params = <getopts list>; > GetOptions(@params); Let me know if the regex approach I went with is OK. You seem to have suggested me to do something with the `GetOptions` module, but I'm afraid I only know the basics of Perl. I tried to do something like `GetOptions($USAGE)` but it didn't quite work (clearly I have no idea how to do that :P). If you have something specific in mind, I'd appreciate if you could send a small patch back that I can incorporate. Otherwise, either way, the current regex approach isn't too horrible and seems to be reasonably reliable. Thiago Perrotta (3): send-email: terminate --git-completion-helper with LF send-email: programmatically generate bash completions send-email docs: add format-patch options Documentation/git-send-email.txt | 6 ++++-- contrib/completion/git-completion.bash | 11 +---------- git-send-email.perl | 21 +++++++++++++++++---- t/t9902-completion.sh | 3 +++ 4 files changed, 25 insertions(+), 16 deletions(-) -- 2.33.0