summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2018-10-29 18:56:43 +0100
committerNikita Popov <nikita.ppv@gmail.com>2018-10-29 18:56:43 +0100
commit493b534c84a4d6d1ef38c322c9c214e81b1dc530 (patch)
tree36888cf62a92e96cb31b2baee412ac96c1c78097
parent359f19edc9b200dd94a3d30dc14bd4a22903d80c (diff)
parent09c7108f743612e77826eac90e6f4d371d4209f9 (diff)
downloadphp-git-493b534c84a4d6d1ef38c322c9c214e81b1dc530.tar.gz
Merge branch 'PHP-7.3'
-rw-r--r--ext/mbstring/mbstring.c12
-rw-r--r--ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt11
2 files changed, 17 insertions, 6 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index bfda20aa75..e86369cbeb 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -2399,12 +2399,6 @@ PHP_FUNCTION(mb_strrpos)
return;
}
- haystack.no_language = needle.no_language = MBSTRG(language);
- haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name);
- if (!haystack.encoding) {
- RETURN_FALSE;
- }
-
if (zoffset) {
if (Z_TYPE_P(zoffset) == IS_STRING) {
enc_name2 = Z_STRVAL_P(zoffset);
@@ -2446,6 +2440,12 @@ PHP_FUNCTION(mb_strrpos)
}
}
+ haystack.no_language = needle.no_language = MBSTRG(language);
+ haystack.encoding = needle.encoding = php_mb_get_encoding(enc_name);
+ if (!haystack.encoding) {
+ RETURN_FALSE;
+ }
+
if (offset != 0) {
size_t haystack_char_len = mbfl_strlen(&haystack);
if ((offset > 0 && offset > haystack_char_len) ||
diff --git a/ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt b/ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt
new file mode 100644
index 0000000000..50b48d9941
--- /dev/null
+++ b/ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Passing encoding as 3rd param to mb_strrpos (legacy)
+--FILE--
+<?php
+
+mb_internal_encoding('UTF-16');
+var_dump(mb_strrpos("abc abc abc", "abc", "UTF-8"));
+
+?>
+--EXPECT--
+int(8)