Re: xfuncname problems with C++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 2, 2015 at 10:49 AM, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote:
> I have a function like so:
>
> void MyClass::SomeFunction(int someParameter)
> {
>     // Stuff changed in here
> }
>
> When I do `git diff` on the file containing this function, I get a
> chunk showing some changed code in this function somewhere in the
> middle of the body. However, the chunk header shows my root namespace
> name in the file instead of the function header:
>
> @@ -144,15 +149,22 @@ namespace Utils
>
> What I expect to see:
>
> @@ -144,15 +149,22 @@ void MyClass::SomeFunction(int someParameter)
>
> I've tried various regular expressions that work in regex testers I
> use against this function signature, however they do not work when I
> apply them to my config:
>
> [diff "cpp"]
>     xfuncname =
> "^\\s*[\\w_][\\w\\d_]*\\s*.*\\s*[\\w_][\\w\\d_]*\\s*\\(.*\\)\\s*$"
>
> File name is "foo.cpp", I even added it to my git attributes file:
>
> *.cpp diff=cpp
>
> Using the regex above, my chunk headers come back blank. Why is it
> showing namespace? How do I make this match the nearest function
> header?

Oopsie, I didn't realize the regex must be POSIX compatible. I've
updated the regex to this:
https://www.regex101.com/r/kP3dM6

The test seems to work; however git gives me an error with the regex
when I do a diff:

$ git diff Core
fatal: Invalid regexp to look for hunk header:
^[[:space:]]*[[:word:]_][[:word:][:digit:]_]*[[:space:]]*.*[[:space:]]*[[:word:]_][[:word:][:digit:]_]*[[:space:]]*\(.*\)[[:space:]]*$

Here is how it is stored in my .gitconfig:

[diff "cpp"]
    xfuncname =
"^[[:space:]]*[[:word:]_][[:word:][:digit:]_]*[[:space:]]*.*[[:space:]]*[[:word:]_][[:word:][:digit:]_]*[[:space:]]*\\(.*\\)[[:space:]]*$"
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]