summaryrefslogtreecommitdiff
path: root/ext/mbstring/php_mbregex.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mbstring/php_mbregex.c')
-rw-r--r--ext/mbstring/php_mbregex.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
index 80a4be96db..12ee4cf47c 100644
--- a/ext/mbstring/php_mbregex.c
+++ b/ext/mbstring/php_mbregex.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 7 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2018 The PHP Group |
+ | Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -117,7 +117,13 @@ void php_mb_regex_globals_free(zend_mb_regex_globals *pglobals)
/* {{{ PHP_MINIT_FUNCTION(mb_regex) */
PHP_MINIT_FUNCTION(mb_regex)
{
+ char version[256];
+
onig_init();
+
+ snprintf(version, sizeof(version), "%d.%d.%d",
+ ONIGURUMA_VERSION_MAJOR, ONIGURUMA_VERSION_MINOR, ONIGURUMA_VERSION_TEENY);
+ REGISTER_STRING_CONSTANT("MB_ONIGURUMA_VERSION", version, CONST_CS | CONST_PERSISTENT);
return SUCCESS;
}
/* }}} */
@@ -170,13 +176,6 @@ PHP_MINFO_FUNCTION(mb_regex)
ONIGURUMA_VERSION_MAJOR,
ONIGURUMA_VERSION_MINOR,
ONIGURUMA_VERSION_TEENY);
-#ifdef PHP_ONIG_BUNDLED
-#ifdef USE_COMBINATION_EXPLOSION_CHECK
- php_info_print_table_row(2, "Multibyte regex (oniguruma) backtrack check", "On");
-#else /* USE_COMBINATION_EXPLOSION_CHECK */
- php_info_print_table_row(2, "Multibyte regex (oniguruma) backtrack check", "Off");
-#endif /* USE_COMBINATION_EXPLOSION_CHECK */
-#endif /* PHP_BUNDLED_ONIG */
php_info_print_table_row(2, "Multibyte regex (oniguruma) version", buf);
php_info_print_table_end();
}
@@ -895,13 +894,15 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
OnigOptionType options;
char *str;
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "zs|z/", &arg_pattern, &string, &string_len, &array) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "zs|z", &arg_pattern, &string, &string_len, &array) == FAILURE) {
RETURN_FALSE;
}
if (array != NULL) {
- zval_ptr_dtor(array);
- array_init(array);
+ array = zend_try_array_init(array);
+ if (!array) {
+ return;
+ }
}
if (!php_mb_check_encoding(
@@ -1080,6 +1081,10 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
arg_pattern = Z_STRVAL_P(arg_pattern_zval);
arg_pattern_len = Z_STRLEN_P(arg_pattern_zval);
} else {
+ php_error_docref(NULL, E_DEPRECATED,
+ "Non-string patterns will be interpreted as strings in the future. "
+ "Use an explicit chr() call to preserve the current behavior");
+
/* FIXME: this code is not multibyte aware! */
convert_to_long_ex(arg_pattern_zval);
pat_buf[0] = (char)Z_LVAL_P(arg_pattern_zval);
@@ -1714,12 +1719,3 @@ PHP_FUNCTION(mb_regex_set_options)
/* }}} */
#endif /* HAVE_MBREGEX */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- * vim600: fdm=marker
- * vim: noet sw=4 ts=4
- */