From: Thomas Rast Date: Tue, 06 Dec 2011 20:17:56 GMT Subject: Re: [PATCH] userdiff: allow * between cpp funcname words Message-ID: <201112062117.57690.trast@student.ethz.ch> In-Reply-To: <20111206190217.GD9492@sigill.intra.peff.net> Jeff King wrote: > On Tue, Dec 06, 2011 at 05:35:08PM +0100, Thomas Rast wrote: > > > The cpp pattern, used for C and C++, would not match the start of a > > declaration such as > > > > static char *prepare_index(int argc, > > > > because it did not allow for * anywhere between the various words that > > constitute the modifiers, type and function name. Fix it. > > > > Signed-off-by: Thomas Rast > > --- > > > > This is a really sneaky one-character bug that I cannot believe went > > unnoticed for so long, seeing as there are plenty of instances within > > git itself where it matters. > > Looks reasonable to me. You can see the difference, for instance, with: > > git show -U1 3c73a1d > > (The -U1 is because of the annoying "we will start looking for the > header at the top of context, not the top of changes" behavior I > mentioned last week). Actually (sadly) I'll have to revise it. It doesn't match much of C++ either, and I haven't yet come up with a reasonable regex that matches, say, foo::Bar::t& Baz::operator<<( which I would call ludicrous, but it's valid C++. -- Thomas Rast trast@{inf,student}.ethz.ch