Re: diffutils: C labels misdetected as functions

From: Simon Arlott
Date: Sun Jul 22 2007 - 15:16:47 EST


On 22/07/07 19:38, Paul Eggert wrote:
> Simon Arlott <simon@xxxxxxxxxxx> writes:
>
>> The patch below stops diffutils treating C labels starting in column 1 as function names.
>
> That patch alone wouldn't suffice, since -p is documented as implying
> -F '^[[:alpha:]$_]'. If the behavior changes, we'd also have to
> change the documentation to match.

Ok.

> I'm not sure the change is a good idea. It would complicate the
> documentation and therefore the user interface, without that much

Complicated documentation means a bug shouldn't be fixed?

> benefit. And it wouldn't suffice in general, since it would still
> mishandle labels followed by comments or by white space.

Yes, the regexp needs changing further to ignore comments...

"[[:alpha:]$_][^:]*$" perhaps? Although that ignores functions with
comments on the same line containing a :.

> Also, for long C functions some people might rather see a top-level
> (unindented) label highlighted than the function name highlighted, so
> they might prefer the current behavior.

"-p --show-c-function Show which C function each change is in."

It's not "--show-c-function-or-label".

> Anyway, to work around your problem without changing "diff", you can
> use "diff -u -F '^[[:alpha:]$_](|.*[^:])$'" instead of "diff -u -p".

Perhaps git could do this (or similar) as a workaround? (Cc:ed)

> Or you can put a single space before the labels in question: they'll
> still stand out plenty.

The code should definitely not need to be modified to work around a
diff bug.

--
Simon Arlott
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/