summaryrefslogtreecommitdiff
path: root/ext/mbstring
diff options
context:
space:
mode:
authorMáté Kocsis <kocsismate@woohoolabs.com>2020-09-10 13:28:18 +0200
committerMáté Kocsis <kocsismate@woohoolabs.com>2020-09-15 14:26:16 +0200
commitc37a1cd650a5399c4a89543759deedcc7280becd (patch)
tree3a36dcdb3a20042ce3f37b3b534cbc5fbec7d1d4 /ext/mbstring
parent62c20c662a961f030178a15311bfe37591c10316 (diff)
downloadphp-git-c37a1cd650a5399c4a89543759deedcc7280becd.tar.gz
Promote a few remaining errors in ext/standard
Closes GH-6110
Diffstat (limited to 'ext/mbstring')
-rw-r--r--ext/mbstring/mbstring.c6
-rw-r--r--ext/mbstring/mbstring.stub.php2
-rw-r--r--ext/mbstring/mbstring_arginfo.h9
-rw-r--r--ext/mbstring/tests/bug49354.phpt3
-rw-r--r--ext/mbstring/tests/mb_strcut.phpt2
5 files changed, 10 insertions, 12 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 58797eb244..274feec35e 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -2233,8 +2233,7 @@ PHP_FUNCTION(mb_strcut)
}
if (from > string.len) {
- // TODO Out of bounds ValueError
- RETURN_FALSE;
+ RETURN_EMPTY_STRING();
}
ret = mbfl_strcut(&string, &result, from, len);
@@ -3500,6 +3499,9 @@ PHP_FUNCTION(mb_send_mail)
str_headers = php_trim(str_headers, NULL, 0, 2);
} else if (headers_ht) {
str_headers = php_mail_build_headers(headers_ht);
+ if (EG(exception)) {
+ RETURN_THROWS();
+ }
}
zend_hash_init(&ht_headers, 0, NULL, ZVAL_PTR_DTOR, 0);
diff --git a/ext/mbstring/mbstring.stub.php b/ext/mbstring/mbstring.stub.php
index 3be9aad66c..74f86404cf 100644
--- a/ext/mbstring/mbstring.stub.php
+++ b/ext/mbstring/mbstring.stub.php
@@ -45,7 +45,7 @@ function mb_substr_count(string $haystack, string $needle, ?string $encoding = n
function mb_substr(string $str, int $start, ?int $length = null, ?string $encoding = null): string {}
-function mb_strcut(string $str, int $start, ?int $length = null, ?string $encoding = null): string|false {}
+function mb_strcut(string $str, int $start, ?int $length = null, ?string $encoding = null): string {}
function mb_strwidth(string $str, ?string $encoding = null): int {}
diff --git a/ext/mbstring/mbstring_arginfo.h b/ext/mbstring/mbstring_arginfo.h
index 8bea3306f2..27b692c26f 100644
--- a/ext/mbstring/mbstring_arginfo.h
+++ b/ext/mbstring/mbstring_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 442b9dc473714c91663fcd530214935ba74302e4 */
+ * Stub hash: e02a0588d1f46fa96452558e35ea904907b8bdf2 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_language, 0, 0, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, language, IS_STRING, 1, "null")
@@ -87,12 +87,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mb_substr, 0, 2, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_strcut, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
- ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 1, "null")
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null")
-ZEND_END_ARG_INFO()
+#define arginfo_mb_strcut arginfo_mb_substr
#define arginfo_mb_strwidth arginfo_mb_strlen
diff --git a/ext/mbstring/tests/bug49354.phpt b/ext/mbstring/tests/bug49354.phpt
index c25b405d82..1326efca7d 100644
--- a/ext/mbstring/tests/bug49354.phpt
+++ b/ext/mbstring/tests/bug49354.phpt
@@ -11,6 +11,7 @@ var_dump(mb_strcut($crap, 2, 100, 'UTF-8'));
var_dump(mb_strcut($crap, 3, 100, 'UTF-8'));
var_dump(mb_strcut($crap, 12, 100, 'UTF-8'));
var_dump(mb_strcut($crap, 13, 100, 'UTF-8'));
+
?>
--EXPECT--
string(12) "AåBäCöDü"
@@ -18,4 +19,4 @@ string(11) "åBäCöDü"
string(11) "åBäCöDü"
string(9) "BäCöDü"
string(0) ""
-bool(false)
+string(0) ""
diff --git a/ext/mbstring/tests/mb_strcut.phpt b/ext/mbstring/tests/mb_strcut.phpt
index 40cc3ddb0d..5c191f7dcd 100644
--- a/ext/mbstring/tests/mb_strcut.phpt
+++ b/ext/mbstring/tests/mb_strcut.phpt
@@ -29,7 +29,7 @@ print MBStringChars(mb_strcut($euc_jp, 5, 5,'EUC-JP'), 'EUC-JP') . "\n";
print MBStringChars(mb_strcut($euc_jp, 0, 100,'EUC-JP'), 'EUC-JP') . "\n";
$str = mb_strcut($euc_jp, 100, 10,'EUC-JP');
-($str === false) ? print "OK\n" : print "No good\n";
+($str === "") ? print "OK\n" : print "No good\n";
$str = mb_strcut($euc_jp, -100, 10,'EUC-JP');
($str !== "") ? print "OK\n" : print "No good\n";