Junio C Hamano [off-list ref] writes:
"Javier Spagnoletti via GitGitGadget" [off-list ref]
writes:
quoted
Subject: Re: [PATCH v2] Improve diff pattern for PHP files
You seem to have read J6t's excellent suggestion well but forgot to
retitle.
Will queue with minimum copy-editing (reproduced below).
Thanks.
commit aff92827b54f4b7f9e339982a49bab4bdbd1fc55
Author: Javier Spagnoletti [off-list ref]
Date: Wed Oct 7 03:38:18 2020 +0000
userdiff: PHP: catch "abstract" and "final" functions
PHP permits functions to be defined like
final public function foo() { }
abstract protected function bar() { }
but our hunk header pattern does not recognize these decorations.
Add "final" and "abstract" to the list of function modifiers.
Helped-by: Johannes Sixt [off-list ref]
Signed-off-by: Javier Spagnoletti [off-list ref]
Signed-off-by: Junio C Hamano [off-list ref]
diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method
new file mode 100644
index 0000000000..ce215df75a
--- /dev/null
+++ b/t/t4018/php-abstract-method
@@ -0,0 +1,7 @@
+abstract class Klass
+{
+ abstract public function RIGHT(): ?string
+ {
+ return 'ChangeMe';
+ }
+}diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method
new file mode 100644
index 0000000000..537fb8ad9a
--- /dev/null
+++ b/t/t4018/php-final-method
@@ -0,0 +1,7 @@
+class Klass
+{
+ final public function RIGHT(): string
+ {
+ return 'ChangeMe';
+ }
+}diff --git a/userdiff.c b/userdiff.c
index fde02f225b..4e2b55a5e0 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -147,7 +147,7 @@ PATTERNS("perl",
"|=~|!~"
"|<<|<>|<=>|>>"),
PATTERNS("php",
- "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
+ "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
"^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"