mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Fix #76999: mb_regex_set_options() return current options
When setting new options, `mb_regex_set_options()` is supposed to return the *previous* options.
This commit is contained in:
parent
150df5b17c
commit
9e77d5a9da
3 changed files with 28 additions and 3 deletions
1
NEWS
1
NEWS
|
@ -56,6 +56,7 @@ PHP NEWS
|
|||
. Removed deprecated ldap_sort. (mcmic)
|
||||
|
||||
- MBString:
|
||||
. Fixed bug #76999 (mb_regex_set_options() return current options). (cmb)
|
||||
. Removed the unused $is_hex parameter from mb_decode_numericentity(). (cmb)
|
||||
|
||||
- MySQLi:
|
||||
|
|
|
@ -1682,8 +1682,8 @@ static void _php_mb_regex_set_options(OnigOptionType options, OnigSyntaxType *sy
|
|||
Set or get the default options for mbregex functions */
|
||||
PHP_FUNCTION(mb_regex_set_options)
|
||||
{
|
||||
OnigOptionType opt;
|
||||
OnigSyntaxType *syntax;
|
||||
OnigOptionType opt, prev_opt;
|
||||
OnigSyntaxType *syntax, *prev_syntax;
|
||||
char *string = NULL;
|
||||
size_t string_len;
|
||||
char buf[16];
|
||||
|
@ -1696,7 +1696,9 @@ PHP_FUNCTION(mb_regex_set_options)
|
|||
opt = 0;
|
||||
syntax = NULL;
|
||||
_php_mb_regex_init_options(string, string_len, &opt, &syntax, NULL);
|
||||
_php_mb_regex_set_options(opt, syntax, NULL, NULL);
|
||||
_php_mb_regex_set_options(opt, syntax, &prev_opt, &prev_syntax);
|
||||
opt = prev_opt;
|
||||
syntax = prev_syntax;
|
||||
} else {
|
||||
opt = MBREX(regex_default_options);
|
||||
syntax = MBREX(regex_default_syntax);
|
||||
|
|
22
ext/mbstring/tests/bug76999.phpt
Normal file
22
ext/mbstring/tests/bug76999.phpt
Normal file
|
@ -0,0 +1,22 @@
|
|||
--TEST--
|
||||
Bug #76999 (mb_regex_set_options() return current options)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
|
||||
if (!function_exists('mb_regex_set_options')) die('skip mb_regex_set_options() not available');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
mb_regex_set_options("pr");
|
||||
var_dump(mb_regex_set_options("m"));
|
||||
var_dump(mb_regex_set_options("mdi"));
|
||||
var_dump(mb_regex_set_options("m"));
|
||||
var_dump(mb_regex_set_options("a"));
|
||||
var_dump(mb_regex_set_options());
|
||||
?>
|
||||
--EXPECT--
|
||||
string(2) "pr"
|
||||
string(2) "mr"
|
||||
string(3) "imd"
|
||||
string(2) "mr"
|
||||
string(1) "r"
|
Loading…
Add table
Add a link
Reference in a new issue