On Wed, Feb 7, 2024 at 10:57 PM Patrick Steinhardt <ps@xxxxxx> wrote: > > On Mon, Jan 08, 2024 at 04:08:30PM -0900, Britton Leo Kerin wrote: > > In this case the user has specifically said they don't want send-email > > to run format-patch so revs aren't valid argument completions (and it's > > likely revs and dirs do have some same names or prefixes as in > > Documentation/MyFirstContribution.txt 'psuh'). > > > > Signed-off-by: Britton Leo Kerin <britton.kerin@xxxxxxxxx> > > --- > > contrib/completion/git-completion.bash | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > > index 185b47d802..c983f3b2ab 100644 > > --- a/contrib/completion/git-completion.bash > > +++ b/contrib/completion/git-completion.bash > > @@ -1242,10 +1242,12 @@ __git_find_last_on_cmdline () > > while test $# -gt 1; do > > case "$1" in > > --show-idx) show_idx=y ;; > > + --) shift && break ;; > > *) return 1 ;; > > esac > > shift > > done > > + [ $# -eq 1 ] || return 1 # return 1 if we got wrong # of non-opts > > local wordlist="$1" > > > > while [ $c -gt "$__git_cmd_idx" ]; do > > @@ -2429,7 +2431,9 @@ _git_send_email () > > return > > ;; > > esac > > - __git_complete_revlist > > + if [ "$(__git_find_last_on_cmdline -- "--format-patch --no-format-patch")" != "--no-format-patch" ]; then > > + __git_complete_revlist > > + fi > > } > > While this second hunk here makes perfect sense to me, there is no > explanation why we need to change `__git_find_last_on_cmdline ()`. It's > already used with "--guess --no-guess" in another place, so I would > think that it ought to work alright for this usecase, too. Or is it that > the existing callsite of this function is buggy, too? If so, we should > likely fix that in a separate patch together with a test. > > Also, adding a test for git-send-email that exercises this new behaviour > would be very much welcome, too. I'll look this one over again and add some tests eventually. Britton