summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2018-06-21 19:18:15 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2018-06-21 22:45:08 +0200
commit71d16feebbb38f69007d8b7bec44afeb916281fb (patch)
tree5d4fa844574689e3b186e9e94b4bdba8b43b6728
parentc2a3ab070b2d2b81018917c6dd078aa26cb3dcd1 (diff)
downloadphp-git-71d16feebbb38f69007d8b7bec44afeb916281fb.tar.gz
Fix #76512: \w no longer includes unicode characters
The migration from PCRE to PCRE2 missed to rename once occurrence of `PCRE_UCP` to `PCRE2_UCP`. We fix that. We also revert the changes to bug52971.phpt which had been incorrectly made in commit a5bc5ae[1]. [1] <http://git.php.net/?p=php-src.git;a=commit;h=a5bc5aed71f7a15f14f33bb31b8e17bf5f327e2d>
-rw-r--r--NEWS3
-rw-r--r--ext/pcre/php_pcre.c4
-rw-r--r--ext/pcre/tests/bug52971.phpt18
-rw-r--r--ext/pcre/tests/bug76512.phpt10
4 files changed, 17 insertions, 18 deletions
diff --git a/NEWS b/NEWS
index 9307f3f13a..6f510ec6b5 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,9 @@ PHP NEWS
. Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to
non-blocking). (Nikita)
+- PCRE:
+ . Fixed bug #76512 (\w no longer includes unicode characters). (cmb)
+
- Standard:
. Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys).
(Laruence)
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index ffecc39422..9e1a5a6a50 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -672,8 +672,8 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex)
case 'u': coptions |= PCRE2_UTF;
/* In PCRE, by default, \d, \D, \s, \S, \w, and \W recognize only ASCII
characters, even in UTF-8 mode. However, this can be changed by setting
- the PCRE_UCP option. */
-#ifdef PCRE_UCP
+ the PCRE2_UCP option. */
+#ifdef PCRE2_UCP
coptions |= PCRE2_UCP;
#endif
break;
diff --git a/ext/pcre/tests/bug52971.phpt b/ext/pcre/tests/bug52971.phpt
index 130fbf31a2..552c97e357 100644
--- a/ext/pcre/tests/bug52971.phpt
+++ b/ext/pcre/tests/bug52971.phpt
@@ -19,17 +19,10 @@ var_dump($match);
--EXPECT--
array(1) {
[0]=>
- array(2) {
+ array(1) {
[0]=>
array(2) {
[0]=>
- string(6) "wasser"
- [1]=>
- int(17)
- }
- [1]=>
- array(2) {
- [0]=>
string(6) "Wasser"
[1]=>
int(61)
@@ -38,17 +31,10 @@ array(1) {
}
array(1) {
[0]=>
- array(2) {
+ array(1) {
[0]=>
array(2) {
[0]=>
- string(8) "ßwasser"
- [1]=>
- int(15)
- }
- [1]=>
- array(2) {
- [0]=>
string(7) " Wasser"
[1]=>
int(60)
diff --git a/ext/pcre/tests/bug76512.phpt b/ext/pcre/tests/bug76512.phpt
new file mode 100644
index 0000000000..cd14ad814d
--- /dev/null
+++ b/ext/pcre/tests/bug76512.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Bug #76512 (\w no longer includes unicode characters)
+--FILE--
+<?php
+var_dump(preg_match('/\w/u', 'ä'));
+?>
+===DONE===
+--EXPECT--
+int(1)
+===DONE===