aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKana Natsuno <dev@whileimautomaton.net>2018-07-03 22:15:40 +0900
committerJunio C Hamano <gitster@pobox.com>2018-07-06 14:59:28 -0700
commit1ab631647e3addd247c5482e8a3d4c9df7978c62 (patch)
tree1bbc145b8273ce532ce87863c235fdce1162cf47
parent9992fbd7a1fdcc8fbaf0973a18d0eca94e1b7638 (diff)
downloadgit-1ab631647e3addd247c5482e8a3d4c9df7978c62.tar.gz
userdiff: support new keywords in PHP hunk header
Recent version of PHP supports interface, trait, abstract class and final class. This patch fixes the PHP hunk header regexp to support all of these keywords. Signed-off-by: Kana Natsuno <dev@whileimautomaton.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--t/t4018/php-abstract-class4
-rw-r--r--t/t4018/php-final-class4
-rw-r--r--t/t4018/php-interface4
-rw-r--r--t/t4018/php-trait7
-rw-r--r--userdiff.c2
5 files changed, 20 insertions, 1 deletions
diff --git a/t/t4018/php-abstract-class b/t/t4018/php-abstract-class
new file mode 100644
index 0000000000..5213e12494
--- /dev/null
+++ b/t/t4018/php-abstract-class
@@ -0,0 +1,4 @@
+abstract class RIGHT
+{
+ const FOO = 'ChangeMe';
+}
diff --git a/t/t4018/php-final-class b/t/t4018/php-final-class
new file mode 100644
index 0000000000..69f5710552
--- /dev/null
+++ b/t/t4018/php-final-class
@@ -0,0 +1,4 @@
+final class RIGHT
+{
+ const FOO = 'ChangeMe';
+}
diff --git a/t/t4018/php-interface b/t/t4018/php-interface
new file mode 100644
index 0000000000..86b49ad5d9
--- /dev/null
+++ b/t/t4018/php-interface
@@ -0,0 +1,4 @@
+interface RIGHT
+{
+ public function foo($ChangeMe);
+}
diff --git a/t/t4018/php-trait b/t/t4018/php-trait
new file mode 100644
index 0000000000..65b8c82a61
--- /dev/null
+++ b/t/t4018/php-trait
@@ -0,0 +1,7 @@
+trait RIGHT
+{
+ public function foo($ChangeMe)
+ {
+ return 'foo';
+ }
+}
diff --git a/userdiff.c b/userdiff.c
index a69241b25d..36af25e7f9 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -114,7 +114,7 @@ PATTERNS("perl",
"|<<|<>|<=>|>>"),
PATTERNS("php",
"^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
- "^[\t ]*(class.*)$",
+ "^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
"|[-+0-9.e]+|0[xXbB]?[0-9a-fA-F]+"