Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH] Per-path attribute based hunk header selection.

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:20

Possibly related (same subject, not in this thread)

しらいしななこ  [off-list ref] writes:
I would love to see "diff=tex" attribute to work on my manuscripts, but I
do not write C and do not understand the long length of backslashes very
well.  I guessed in the source file a backslash needs to be doubled, and
what I want to match is "\section{", "\subsection{", and "\subsubsection{"
at the beginning of lines, and attempted to do it like the patch at the
end.
Heh, I do not speak TeX very well, so we are even ;-)
quoted hunk
It does not work well, however.  It shows only part of lines.

	@@ -8,7 +8,8 @@ \section{
	@@ -224,7 +225,7 @@ sub
	@@ -240,7 +241,7 @@ subsub

I have no idea what am I doing wrong (truthfully, I do not know what I am
doing, period).
diff --git a/diff.c b/diff.c
index 04e7e91..57f91b0 100644
--- a/diff.c
+++ b/diff.c
@@ -1226,6 +1226,8 @@ static const char *diff_hunk_header_regexp(struct diff_filespec *one)
 			"^[ 	]*\\(\\([ 	]*"
 			"[A-Za-z_][A-Za-z_0-9]*\\)\\{2,\\}"
 			"[ 	]*([^;]*$\\)";
+	if (!strcmp(ident, "tex"))
+		return "^\\\\\\(sub\\)*section{";
 
 	return NULL;
 }
It's getting late so I won't be testing this myself tonight, but
I think

	return "^\\(\\\\\\(sub\\)*section{.*\\)$";

would do the job.

HOWEVER.

Johannes, it strikes me that it is very odd having to add ".*$"
at the end and to surround the whole thing in a parentheses.
Shouldn't the ff_regexp() grabber simply pick the whole line?
After all, that is what GNU "diff -p -F RE" does.

Also this makes me realize that not all contents in the world
are not programming language source files, and "funcname" is
a misnomer.  For this one, however, we _can_ blame GNU diff, as
they call this --show-function-line option ;-)
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help