git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: xfuncname problems with C++

From
Johannes Sixt <j6t@kdbg.org>
Date
Jan 2, 2015, 20:25 UTC
Message-ID
<54A6FEB6.40305@kdbg.org>
In-Reply-To
<CAHd499Cn8C51i_+Dm4h_U4X_Jc-nhNMjoufiZRdn5LGxFqD_HA@mail.gmail.com>
Am 02.01.2015 um 17:49 schrieb Robert Dailey:
Show 34 quoted lines
> 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?
> 

Is the line that contains 'void MyClass::...' before line 149? Does the word 'void' begin at the left-most column?

-- Hannes
Previous: Jonathan Nieder
Message 7 of 7 in “xfuncname problems with C++”
  1. Robert DaileyJan 2, 2015
  2. Robert DaileyJan 2, 2015
  3. Johannes SixtJan 2, 2015
  4. Robert DaileyJan 2, 2015
  5. Jonathan NiederJan 2, 2015
  6. Jonathan NiederJan 2, 2015
  7. Johannes SixtJan 2, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.