SZEDER Gábor [off-list ref] writes:
And it does make a difference, it breaks the completion of a single
word in multiple steps, e.g. git log --pretty=<TAB> master..<TAB>. In
such cases we pass "${cur##--pretty=}" and "${cur_#*..}" as third
argument to __gitcomp() and __gitcomp_nl(), which can be empty strings
when the user hits TAB right after the '=' and '..'.
After saying "this rewrite is wrong", I was actually wondering if I should
have said "this rewrite is not faithful to the original". Based on your
analysis, the difference does break the callers, so the rewrite is indeed
wrong.
Thanks for following up.