Re: diffutils: C labels misdetected as functions

From
Simon Arlott <hidden>
Date
2007-07-22 19:16:46
Also in
kernel-janitors, lkml
On 22/07/07 19:38, Paul Eggert wrote:
Simon Arlott [off-list ref] writes:
quoted
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
Thread (1 message) 1 message, 1 author, last reply 2007-07-22
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help