Show 38 quoted lines
> On Thu, Aug 6, 2026 at 6:38 PM Junio C Hamano <gitster@pobox.com> wrote:
>>
>> The "git diff" completion function punts very early when it sees
>> "--" on the command line, since it is a sign that options or
>> revisions can appear and the current completion does not need to do
>> anything "git diff" specific. By returning, it lets Bash default
>> action that completes the names of the files in $PWD to kick in.
>>
>> In preparation for the next step to change what happens when we
>> "punt", arrange the code flow to avoid this early return. The
>> behaviour at this step is unchanged, but the control flow just
>> falls straight to the end.
>>
>> Signed-off-by: Junio C Hamano <gitster@pobox.com>
>> ---
>> contrib/completion/git-completion.bash | 61 ++++++++++++++------------
>> 1 file changed, 33 insertions(+), 28 deletions(-)
>>
>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>> index e875787710..ccd3b2a372 100644
>> --- a/contrib/completion/git-completion.bash
>> +++ b/contrib/completion/git-completion.bash
>> @@ -1947,35 +1947,40 @@ __git_diff_difftool_options="--cached --staged
>>
>> _git_diff ()
>> {
> [...]
>> + if ! __git_has_doubledash; then
>> + case "$cur" in
>> + --diff-algorithm=*)
>> + __gitcomp "$__git_diff_algorithms" \
>> + "" "${cur##--diff-algorithm=}"
>> + return
>> ;;
>
> The refactor in this commit is a faithful no-op -- every arm got
> re-indented by one tab as expected. One tiny slip, though: this first
> case's ";;" didn't get the extra tab that every other arm received.