summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2020-04-01 00:54:36 +0200
committerGeorge Peter Banyard <girgias@php.net>2020-04-01 00:54:36 +0200
commit229dff9f08741c34267ba24668da97d8945f8626 (patch)
treebf25b6622151168ab9ebc17b7a041e589a76b90b
parent21227dc1f19ea9007ecfc6929261f16900359c4d (diff)
downloadphp-git-229dff9f08741c34267ba24668da97d8945f8626.tar.gz
Promote unsupported encoding warnings to ValueError
-rw-r--r--ext/mbstring/mbstring.c8
-rw-r--r--ext/mbstring/tests/mb_check_encoding_invalid_encodings.phpt4
-rw-r--r--ext/mbstring/tests/mb_chr.phpt26
-rw-r--r--ext/mbstring/tests/mb_ord.phpt36
4 files changed, 36 insertions, 38 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 57cf2b8630..4215d7b7a4 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -4304,7 +4304,7 @@ PHP_FUNCTION(mb_check_encoding)
RETURN_THROWS();
}
if (encoding == &mbfl_encoding_pass) {
- zend_argument_value_error(2, "cannot check \"pass\" encoding");
+ zend_value_error("mb_check_encoding() does not support the \"pass\" encoding");
RETURN_THROWS();
}
@@ -4342,8 +4342,8 @@ static inline zend_long php_mb_ord(const char *str, size_t str_len, zend_string
no_enc = enc->no_encoding;
if (php_mb_is_unsupported_no_encoding(no_enc)) {
- php_error_docref(NULL, E_WARNING, "Unsupported encoding \"%s\"", enc->name);
- return -1;
+ zend_value_error("mb_ord() does not support the \"%s\" encoding", enc->name);
+ return -2;
}
if (str_len == 0) {
@@ -4425,7 +4425,7 @@ static inline zend_string *php_mb_chr(zend_long cp, zend_string *enc_name, uint3
no_enc = enc->no_encoding;
if (php_mb_is_unsupported_no_encoding(no_enc)) {
- php_error_docref(NULL, E_WARNING, "Unsupported encoding \"%s\"", ZSTR_VAL(enc_name));
+ zend_value_error("mb_chr() does not support the \"%s\" encoding", enc->name);
return NULL;
}
diff --git a/ext/mbstring/tests/mb_check_encoding_invalid_encodings.phpt b/ext/mbstring/tests/mb_check_encoding_invalid_encodings.phpt
index 9b9cd4db7e..80e99ce3a1 100644
--- a/ext/mbstring/tests/mb_check_encoding_invalid_encodings.phpt
+++ b/ext/mbstring/tests/mb_check_encoding_invalid_encodings.phpt
@@ -38,5 +38,5 @@ Using "BAD" as encoding
mb_check_encoding(): Argument #2 ($encoding) must be a valid encoding, "BAD" given
mb_check_encoding(): Argument #2 ($encoding) must be a valid encoding, "BAD" given
Using "pass" as encoding
-mb_check_encoding(): Argument #2 ($encoding) cannot check "pass" encoding
-mb_check_encoding(): Argument #2 ($encoding) cannot check "pass" encoding
+mb_check_encoding() does not support the "pass" encoding
+mb_check_encoding() does not support the "pass" encoding
diff --git a/ext/mbstring/tests/mb_chr.phpt b/ext/mbstring/tests/mb_chr.phpt
index ee47aca0c7..fb917371a0 100644
--- a/ext/mbstring/tests/mb_chr.phpt
+++ b/ext/mbstring/tests/mb_chr.phpt
@@ -38,22 +38,22 @@ try {
echo $e->getMessage() . \PHP_EOL;
}
+mb_internal_encoding("utf-7");
+try {
+ var_dump( mb_chr(0xd800) );
+} catch (\ValueError $e) {
+ echo $e->getMessage() . \PHP_EOL;
+}
+
?>
---EXPECTF--
+--EXPECT--
bool(true)
bool(true)
bool(true)
bool(true)
mb_chr(): Argument #2 ($encoding) must be a valid encoding, "typo" given
-
-Warning: mb_chr(): Unsupported encoding "pass" in %s on line %d
-bool(false)
-
-Warning: mb_chr(): Unsupported encoding "jis" in %s on line %d
-bool(false)
-
-Warning: mb_chr(): Unsupported encoding "cp50222" in %s on line %d
-bool(false)
-
-Warning: mb_chr(): Unsupported encoding "utf-7" in %s on line %d
-bool(false)
+mb_chr() does not support the "pass" encoding
+mb_chr() does not support the "JIS" encoding
+mb_chr() does not support the "CP50222" encoding
+mb_chr() does not support the "UTF-7" encoding
+mb_chr() does not support the "UTF-7" encoding
diff --git a/ext/mbstring/tests/mb_ord.phpt b/ext/mbstring/tests/mb_ord.phpt
index 4250555fe1..5c7fdf3168 100644
--- a/ext/mbstring/tests/mb_ord.phpt
+++ b/ext/mbstring/tests/mb_ord.phpt
@@ -10,6 +10,13 @@ var_dump(
0x50aa === mb_ord("\x8f\xa1\xef", "EUC-JP-2004")
);
+// Empty string
+try {
+ var_dump( mb_ord("") );
+} catch (\ValueError $e) {
+ echo $e->getMessage() . \PHP_EOL;
+}
+
// Invalid
try {
var_dump( mb_ord("\u{d800}", "typo") );
@@ -36,34 +43,25 @@ try {
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
+
+mb_internal_encoding("utf-7");
try {
- var_dump( mb_ord("") );
+ var_dump( mb_ord("\u{d800}") );
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
-
-mb_internal_encoding("utf-7");
-mb_ord("");
+;
?>
--EXPECTF--
bool(true)
bool(true)
bool(true)
-mb_ord(): Argument #2 ($encoding) must be a valid encoding, "typo" given
-
-Warning: mb_ord(): Unsupported encoding "pass" in %s on line %d
-bool(false)
-
-Warning: mb_ord(): Unsupported encoding "JIS" in %s on line %d
-bool(false)
-
-Warning: mb_ord(): Unsupported encoding "CP50222" in %s on line %d
-bool(false)
-
-Warning: mb_ord(): Unsupported encoding "UTF-7" in %s on line %d
-bool(false)
Warning: mb_ord(): Empty string in %s on line %d
bool(false)
-
-Warning: mb_ord(): Unsupported encoding "UTF-7" in %s on line %d
+mb_ord(): Argument #2 ($encoding) must be a valid encoding, "typo" given
+mb_ord() does not support the "pass" encoding
+mb_ord() does not support the "JIS" encoding
+mb_ord() does not support the "CP50222" encoding
+mb_ord() does not support the "UTF-7" encoding
+mb_ord() does not support the "UTF-7" encoding