Merge branch 'PHP-8.2' into PHP-8.3

This commit is contained in:
David Carlier 2024-03-05 18:39:46 +00:00
commit 487f24898b
3 changed files with 11 additions and 26 deletions

View File

@ -196,10 +196,6 @@ PHP 8.3 UPGRADE NOTES
. Calling ldap_connect() with separate hostname and port is deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_3#deprecate_calling_ldap_connect_with_2_parameters
- Gettext:
. dcgettext/dcngettext throw now an exception if the category's argument if set to
`LC_ALL`.
- MBString
. Passing a negative $width to mb_strimwidth() is now deprecated.

View File

@ -62,12 +62,6 @@ ZEND_GET_MODULE(php_gettext)
RETURN_THROWS(); \
}
#define PHP_DCGETTEXT_CATEGORY_CHECK(_arg_num, category) \
if (category == LC_ALL) { \
zend_argument_value_error(_arg_num, "cannot be LC_ALL"); \
RETURN_THROWS(); \
}
PHP_MINFO_FUNCTION(php_gettext)
{
php_info_print_table_start();
@ -153,7 +147,9 @@ PHP_FUNCTION(dcgettext)
PHP_GETTEXT_DOMAIN_LENGTH_CHECK(1, ZSTR_LEN(domain))
PHP_GETTEXT_LENGTH_CHECK(2, ZSTR_LEN(msgid))
PHP_DCGETTEXT_CATEGORY_CHECK(3, category)
if (category == LC_ALL) {
RETURN_STR_COPY(msgid);
}
msgstr = dcgettext(ZSTR_VAL(domain), ZSTR_VAL(msgid), category);
@ -268,7 +264,9 @@ PHP_FUNCTION(dcngettext)
PHP_GETTEXT_DOMAIN_LENGTH_CHECK(1, domain_len)
PHP_GETTEXT_LENGTH_CHECK(2, msgid1_len)
PHP_GETTEXT_LENGTH_CHECK(3, msgid2_len)
PHP_DCGETTEXT_CATEGORY_CHECK(5, category)
if (category == LC_ALL) {
RETURN_STRING(msgid1);
}
msgstr = dcngettext(domain, msgid1, msgid2, count, category);

View File

@ -4,18 +4,9 @@ dcgettext with LC_ALL is undefined behavior.
gettext
--FILE--
<?php
try {
dcgettext('dngettextTest', 'item', LC_ALL);
} catch (ValueError $e) {
echo $e->getMessage() . PHP_EOL;
}
try {
dcngettext('dngettextTest', 'item', 'item2', 1, LC_ALL);
} catch (ValueError $e) {
echo $e->getMessage();
}
var_dump(dcgettext('dngettextTest', 'item', LC_ALL));
var_dump(dcngettext('dngettextTest', 'item', 'item2', 1, LC_ALL));
?>
--EXPECTF--
dcgettext(): Argument #3 ($category) cannot be LC_ALL
dcngettext(): Argument #5 ($category) cannot be LC_ALL
--EXPECT--
string(4) "item"
string(4) "item"