All of the --no options need to be after the `--`, otherwise the completion will show them initially. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- git-send-email.perl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/git-send-email.perl b/git-send-email.perl index 07f2a0cbea..f0d80baa01 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -142,9 +142,10 @@ sub completion_helper { my @format_patch_opts = split(/ /, Git::command('format-patch', '--git-completion-helper')); my @opts = (@send_email_opts, @format_patch_opts); - @opts = uniq (grep !/^$/, @opts); - # There's an implicit '\n' here already, no need to add an explicit one. - print "@opts"; + @opts = uniq (grep !/^(--|)$/, @opts); + my @pos_opts = grep(!/^--no/, @opts); + my @neg_opts = grep(/^--no/, @opts); + print "@pos_opts -- @neg_opts"; exit(0); } -- 2.40.0.133.g8a4477c8d7.dirty