summary refs log tree commit diff
path: root/userdiff.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-08-30 16:06:05 -0700
committerJunio C Hamano <gitster@pobox.com>2021-08-30 16:06:05 -0700
commita8960868518aaee85da308f394503dada14bfcbc (patch)
tree2cada2d55a98a882044a9849998c439bdc4755cd /userdiff.c
parentfb0b14df651184ef16b7f0dc093b7d46c7062413 (diff)
parenta8cbc895893f4c244e54374d3bf937819fb6e2e9 (diff)
Merge branch 'th/userdiff-more-java'
The userdiff pattern for "java" language has been updated.

* th/userdiff-more-java:
  userdiff: improve java hunk header regex
Diffstat (limited to 'userdiff.c')
-rw-r--r--userdiff.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/userdiff.c b/userdiff.c
index 08a71c5b1e..b073e5563b 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -152,7 +152,11 @@ PATTERNS("html",
 	 "[^<>= \t]+"),
 PATTERNS("java",
 	 "!^[ \t]*(catch|do|for|if|instanceof|new|return|switch|throw|while)\n"
-	 "^[ \t]*(([A-Za-z_][A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$",
+	 /* Class, enum, and interface declarations */
+	 "^[ \t]*(([a-z]+[ \t]+)*(class|enum|interface)[ \t]+[A-Za-z][A-Za-z0-9_$]*[ \t]+.*)$\n"
+	 /* Method definitions; note that constructor signatures are not */
+	 /* matched because they are indistinguishable from method calls. */
+	 "^[ \t]*(([A-Za-z_<>&][][?&<>.,A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$",
 	 /* -- */
 	 "[a-zA-Z_][a-zA-Z0-9_]*"
 	 "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"