diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-08-24 11:10:09 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-08-24 11:10:09 +0200 |
commit | c925028d49febfe2fbec2de148e5fc24fa159bd1 (patch) | |
tree | 77c40be64fd1ba5e369b590401a22e927dfeb067 | |
parent | 08d2e511e4405f527ffcd5af8aec841f34af4b8e (diff) | |
parent | 5ab7b30cd6fa6973197e660ca7a86df686558562 (diff) | |
download | php-git-c925028d49febfe2fbec2de148e5fc24fa159bd1.tar.gz |
Merge branch 'PHP-7.4' into master
* PHP-7.4:
Fix #79986: str_ireplace bug with diacritics characters
-rw-r--r-- | ext/standard/string.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/strings/bug79986.phpt | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index 9a877ce138..bf64fcdea8 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2897,7 +2897,7 @@ static zend_string* php_char_to_str_ex(zend_string *str, char from, char *to, si { zend_string *result; size_t char_count = 0; - char lc_from = 0; + int lc_from = 0; const char *source, *source_end= ZSTR_VAL(str) + ZSTR_LEN(str); char *target; diff --git a/ext/standard/tests/strings/bug79986.phpt b/ext/standard/tests/strings/bug79986.phpt new file mode 100644 index 0000000000..fcbc72148c --- /dev/null +++ b/ext/standard/tests/strings/bug79986.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #79986 (str_ireplace bug with diacritics characters) +--SKIPIF-- +<?php +if (!setlocale(LC_ALL, 'de_DE.ISO-8859-1', 'de-DE')) die('skip German locale not available'); +?> +--FILE-- +<?php +setlocale(LC_ALL, 'de_DE.ISO-8859-1', 'de-DE'); +echo str_ireplace(["\xE4", "\xF6", "\xFC"], ['1', '2', '3'], "\xE4\xC4 \xF6\xD6 \xFC\xDC") . PHP_EOL; +?> +--EXPECT-- +11 22 33 |