diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2021-03-18 10:50:57 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-03-18 10:50:57 +0100 |
commit | 4dce2f83f5c7d13c28a95d45dd6d905504474774 (patch) | |
tree | 68d3ec52cbeeb4224d540d70fd8cd8189da95ead | |
parent | 7e494d92258b0150e228bae82021a92b64e415b8 (diff) | |
parent | 4be867e9103a415c598d5a15f95fec274d1b7825 (diff) | |
download | php-git-4dce2f83f5c7d13c28a95d45dd6d905504474774.tar.gz |
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
Fix locale switch back to C in pcre
-rw-r--r-- | ext/pcre/php_pcre.c | 2 | ||||
-rw-r--r-- | ext/pcre/tests/ctype_back_to_c.phpt | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 60d0670213..f4f99432fd 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -790,8 +790,8 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache_ex(zend_string *regex, in zend_hash_add_ptr(&char_tables, _k, (void *)tables); zend_string_release(_k); } - pcre2_set_character_tables(cctx, tables); } + pcre2_set_character_tables(cctx, tables); /* Compile pattern and display a warning if compilation failed. */ re = pcre2_compile((PCRE2_SPTR)pattern, pattern_len, coptions, &errnumber, &erroffset, cctx); diff --git a/ext/pcre/tests/ctype_back_to_c.phpt b/ext/pcre/tests/ctype_back_to_c.phpt new file mode 100644 index 0000000000..b329091671 --- /dev/null +++ b/ext/pcre/tests/ctype_back_to_c.phpt @@ -0,0 +1,18 @@ +--TEST-- +Changing LC_CTYPE back to C +--SKIPIF-- +<?php +if (!setlocale(LC_CTYPE, "de_DE", "de-DE")) die("skip requires de_DE locale"); +?> +--FILE-- +<?php +var_dump(setlocale(LC_CTYPE, "de_DE", "de-DE") !== false); +var_dump(preg_match('/\w/', "\xe4")); +var_dump(setlocale(LC_CTYPE, "C") !== false); +var_dump(preg_match('/\w/', "\xe4")); +?> +--EXPECT-- +bool(true) +int(1) +bool(true) +int(0) |