diff options
author | George Peter Banyard <girgias@php.net> | 2020-04-01 00:54:36 +0200 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2020-04-01 00:54:36 +0200 |
commit | 229dff9f08741c34267ba24668da97d8945f8626 (patch) | |
tree | bf25b6622151168ab9ebc17b7a041e589a76b90b | |
parent | 21227dc1f19ea9007ecfc6929261f16900359c4d (diff) | |
download | php-git-229dff9f08741c34267ba24668da97d8945f8626.tar.gz |
Promote unsupported encoding warnings to ValueError
-rw-r--r-- | ext/mbstring/mbstring.c | 8 | ||||
-rw-r--r-- | ext/mbstring/tests/mb_check_encoding_invalid_encodings.phpt | 4 | ||||
-rw-r--r-- | ext/mbstring/tests/mb_chr.phpt | 26 | ||||
-rw-r--r-- | ext/mbstring/tests/mb_ord.phpt | 36 |
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 |