From: Nikita Popov Date: Tue, 8 Oct 2019 14:14:06 +0000 (+0200) Subject: Merge branch 'PHP-7.3' into PHP-7.4 X-Git-Tag: php-7.4.0RC4~33 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=68b26ff8cf2390ba5b7565b6624485f2ee6afbf6;p=php Merge branch 'PHP-7.3' into PHP-7.4 --- 68b26ff8cf2390ba5b7565b6624485f2ee6afbf6 diff --cc ext/pcre/php_pcre.c index 34c8389ebb,e82dc252b2..d19c7960a6 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@@ -587,7 -551,8 +587,7 @@@ PHPAPI pcre_cache_entry* pcre_get_compi zend_string *key; pcre_cache_entry *ret; - if (BG(locale_string) && -#if HAVE_SETLOCALE + if (locale_aware && BG(locale_string) && (ZSTR_LEN(BG(locale_string)) != 1 && ZSTR_VAL(BG(locale_string))[0] != 'C')) { key = zend_string_alloc(ZSTR_LEN(regex) + ZSTR_LEN(BG(locale_string)) + 1, 0); memcpy(ZSTR_VAL(key), ZSTR_VAL(BG(locale_string)), ZSTR_LEN(BG(locale_string)) + 1); @@@ -879,9 -867,17 +879,17 @@@ } /* }}} */ + /* {{{ pcre_get_compiled_regex_cache + */ + PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex) + { + return pcre_get_compiled_regex_cache_ex(regex, 1); + } + /* }}} */ + /* {{{ pcre_get_compiled_regex */ -PHPAPI pcre2_code *pcre_get_compiled_regex(zend_string *regex, uint32_t *capture_count, uint32_t *preg_options) +PHPAPI pcre2_code *pcre_get_compiled_regex(zend_string *regex, uint32_t *capture_count) { pcre_cache_entry * pce = pcre_get_compiled_regex_cache(regex); diff --cc ext/pcre/php_pcre.h index 1a28d1733a,9fd8259b40..b375981df3 --- a/ext/pcre/php_pcre.h +++ b/ext/pcre/php_pcre.h @@@ -40,8 -44,9 +40,9 @@@ extern zend_module_entry pcre_module_en typedef struct _pcre_cache_entry pcre_cache_entry; PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex); + PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache_ex(zend_string *regex, int locale_aware); -PHPAPI void php_pcre_match_impl( pcre_cache_entry *pce, char *subject, size_t subject_len, zval *return_value, +PHPAPI void php_pcre_match_impl(pcre_cache_entry *pce, zend_string *subject_str, zval *return_value, zval *subpats, int global, int use_flags, zend_long flags, zend_off_t start_offset); PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str,