From 17c015888f2e9a5dbacf2f2a0e37f1c7ea06dee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Sat, 20 Aug 2022 16:09:27 +0200 Subject: [PATCH] Declare ext/intl constants in stubs - part 14 --- ext/intl/grapheme/grapheme.h | 7 +- ext/intl/grapheme/grapheme_string.c | 18 ---- ext/intl/idn/idn.c | 60 +----------- ext/intl/idn/idn.h | 4 +- ext/intl/php_intl.c | 6 +- ext/intl/php_intl.stub.php | 147 ++++++++++++++++++++++++++++ ext/intl/php_intl_arginfo.h | 26 ++++- 7 files changed, 183 insertions(+), 85 deletions(-) diff --git a/ext/intl/grapheme/grapheme.h b/ext/intl/grapheme/grapheme.h index 0ac477a9c1f2a..003e0d49317a9 100644 --- a/ext/intl/grapheme/grapheme.h +++ b/ext/intl/grapheme/grapheme.h @@ -18,7 +18,12 @@ #include #include -void grapheme_register_constants( INIT_FUNC_ARGS ); void grapheme_close_global_iterator( void ); +#define GRAPHEME_EXTRACT_TYPE_COUNT 0 +#define GRAPHEME_EXTRACT_TYPE_MAXBYTES 1 +#define GRAPHEME_EXTRACT_TYPE_MAXCHARS 2 +#define GRAPHEME_EXTRACT_TYPE_MIN GRAPHEME_EXTRACT_TYPE_COUNT +#define GRAPHEME_EXTRACT_TYPE_MAX GRAPHEME_EXTRACT_TYPE_MAXCHARS + #endif // GRAPHEME_GRAPHEME_H diff --git a/ext/intl/grapheme/grapheme_string.c b/ext/intl/grapheme/grapheme_string.c index 6baf0993e9bfc..29bbdf7ff950c 100644 --- a/ext/intl/grapheme/grapheme_string.c +++ b/ext/intl/grapheme/grapheme_string.c @@ -29,24 +29,6 @@ /* }}} */ -#define GRAPHEME_EXTRACT_TYPE_COUNT 0 -#define GRAPHEME_EXTRACT_TYPE_MAXBYTES 1 -#define GRAPHEME_EXTRACT_TYPE_MAXCHARS 2 -#define GRAPHEME_EXTRACT_TYPE_MIN GRAPHEME_EXTRACT_TYPE_COUNT -#define GRAPHEME_EXTRACT_TYPE_MAX GRAPHEME_EXTRACT_TYPE_MAXCHARS - - -/* {{{ grapheme_register_constants - * Register API constants - */ -void grapheme_register_constants( INIT_FUNC_ARGS ) -{ - REGISTER_LONG_CONSTANT("GRAPHEME_EXTR_COUNT", GRAPHEME_EXTRACT_TYPE_COUNT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("GRAPHEME_EXTR_MAXBYTES", GRAPHEME_EXTRACT_TYPE_MAXBYTES, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("GRAPHEME_EXTR_MAXCHARS", GRAPHEME_EXTRACT_TYPE_MAXCHARS, CONST_CS | CONST_PERSISTENT); -} -/* }}} */ - /* {{{ Get number of graphemes in a string */ PHP_FUNCTION(grapheme_strlen) { diff --git a/ext/intl/idn/idn.c b/ext/intl/idn/idn.c index 7ab0e1daf7c8a..257e0a00ca109 100644 --- a/ext/intl/idn/idn.c +++ b/ext/intl/idn/idn.c @@ -26,69 +26,11 @@ #include #include "ext/standard/php_string.h" +#include "idn.h" #include "intl_error.h" #include "intl_convert.h" /* }}} */ -enum { - INTL_IDN_VARIANT_UTS46 = 1 -}; - -/* {{{ grapheme_register_constants - * Register API constants - */ -void idn_register_constants( INIT_FUNC_ARGS ) -{ - /* OPTIONS */ - - /* Option to prohibit processing of unassigned codepoints in the input and - do not check if the input conforms to STD-3 ASCII rules. */ - REGISTER_LONG_CONSTANT("IDNA_DEFAULT", UIDNA_DEFAULT, CONST_CS | CONST_PERSISTENT); - - /* Option to allow processing of unassigned codepoints in the input */ - REGISTER_LONG_CONSTANT("IDNA_ALLOW_UNASSIGNED", UIDNA_ALLOW_UNASSIGNED, CONST_CS | CONST_PERSISTENT); - - /* Option to check if input conforms to STD-3 ASCII rules */ - REGISTER_LONG_CONSTANT("IDNA_USE_STD3_RULES", UIDNA_USE_STD3_RULES, CONST_CS | CONST_PERSISTENT); - - /* Option to check for whether the input conforms to the BiDi rules. - * Ignored by the IDNA2003 implementation. (IDNA2003 always performs a BiDi check.) */ - REGISTER_LONG_CONSTANT("IDNA_CHECK_BIDI", UIDNA_CHECK_BIDI, CONST_CS | CONST_PERSISTENT); - - /* Option to check for whether the input conforms to the CONTEXTJ rules. - * Ignored by the IDNA2003 implementation. (The CONTEXTJ check is new in IDNA2008.) */ - REGISTER_LONG_CONSTANT("IDNA_CHECK_CONTEXTJ", UIDNA_CHECK_CONTEXTJ, CONST_CS | CONST_PERSISTENT); - - /* Option for nontransitional processing in ToASCII(). - * By default, ToASCII() uses transitional processing. - * Ignored by the IDNA2003 implementation. */ - REGISTER_LONG_CONSTANT("IDNA_NONTRANSITIONAL_TO_ASCII", UIDNA_NONTRANSITIONAL_TO_ASCII, CONST_CS | CONST_PERSISTENT); - - /* Option for nontransitional processing in ToUnicode(). - * By default, ToUnicode() uses transitional processing. - * Ignored by the IDNA2003 implementation. */ - REGISTER_LONG_CONSTANT("IDNA_NONTRANSITIONAL_TO_UNICODE", UIDNA_NONTRANSITIONAL_TO_UNICODE, CONST_CS | CONST_PERSISTENT); - - /* VARIANTS */ - REGISTER_LONG_CONSTANT("INTL_IDNA_VARIANT_UTS46", INTL_IDN_VARIANT_UTS46, CONST_CS | CONST_PERSISTENT); - - /* PINFO ERROR CODES */ - REGISTER_LONG_CONSTANT("IDNA_ERROR_EMPTY_LABEL", UIDNA_ERROR_EMPTY_LABEL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_LABEL_TOO_LONG", UIDNA_ERROR_LABEL_TOO_LONG, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_DOMAIN_NAME_TOO_LONG", UIDNA_ERROR_DOMAIN_NAME_TOO_LONG, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_LEADING_HYPHEN", UIDNA_ERROR_LEADING_HYPHEN, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_TRAILING_HYPHEN", UIDNA_ERROR_TRAILING_HYPHEN, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_HYPHEN_3_4", UIDNA_ERROR_HYPHEN_3_4, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_LEADING_COMBINING_MARK", UIDNA_ERROR_LEADING_COMBINING_MARK, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_DISALLOWED", UIDNA_ERROR_DISALLOWED, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_PUNYCODE", UIDNA_ERROR_PUNYCODE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_LABEL_HAS_DOT", UIDNA_ERROR_LABEL_HAS_DOT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_INVALID_ACE_LABEL", UIDNA_ERROR_INVALID_ACE_LABEL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_BIDI", UIDNA_ERROR_BIDI, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("IDNA_ERROR_CONTEXTJ", UIDNA_ERROR_CONTEXTJ, CONST_CS | CONST_PERSISTENT); -} -/* }}} */ - enum { INTL_IDN_TO_ASCII = 0, INTL_IDN_TO_UTF8 diff --git a/ext/intl/idn/idn.h b/ext/intl/idn/idn.h index c4d2703059e75..596e63f207e00 100644 --- a/ext/intl/idn/idn.h +++ b/ext/intl/idn/idn.h @@ -19,6 +19,8 @@ #include -void idn_register_constants(INIT_FUNC_ARGS); +enum { + INTL_IDN_VARIANT_UTS46 = 1 +}; #endif /* IDN_IDN_H */ diff --git a/ext/intl/php_intl.c b/ext/intl/php_intl.c index 398fd1ee545ab..b12583e35bbd6 100644 --- a/ext/intl/php_intl.c +++ b/ext/intl/php_intl.c @@ -58,6 +58,7 @@ #include "breakiterator/breakiterator_class.h" #include "breakiterator/breakiterator_iterators.h" +#include #include "idn/idn.h" #include "uchar/uchar.h" @@ -161,8 +162,6 @@ PHP_MINIT_FUNCTION( intl ) msgformat_register_class(); - grapheme_register_constants( INIT_FUNC_ARGS_PASSTHRU ); - /* Register 'DateFormat' PHP class */ dateformat_register_IntlDateFormatter_class( ); @@ -181,9 +180,6 @@ PHP_MINIT_FUNCTION( intl ) /* Register 'IntlCalendar' PHP class */ calendar_register_IntlCalendar_class( ); - /* Expose IDN constants to PHP scripts. */ - idn_register_constants(INIT_FUNC_ARGS_PASSTHRU); - /* Register 'Spoofchecker' PHP class */ spoofchecker_register_Spoofchecker_class( ); diff --git a/ext/intl/php_intl.stub.php b/ext/intl/php_intl.stub.php index 5d1dd192a3e92..c21ad58fa092e 100644 --- a/ext/intl/php_intl.stub.php +++ b/ext/intl/php_intl.stub.php @@ -20,6 +20,153 @@ const INTL_ICU_DATA_VERSION = UNKNOWN; #endif +/** + * @var int + * @cvalue GRAPHEME_EXTRACT_TYPE_COUNT + */ +const GRAPHEME_EXTR_COUNT = UNKNOWN; +/** + * @var int + * @cvalue GRAPHEME_EXTRACT_TYPE_MAXBYTES + */ +const GRAPHEME_EXTR_MAXBYTES = UNKNOWN; +/** + * @var int + * @cvalue GRAPHEME_EXTRACT_TYPE_MAXCHARS + */ +const GRAPHEME_EXTR_MAXCHARS = UNKNOWN; + +/** + * Option to prohibit processing of unassigned codepoints in the input and + * do not check if the input conforms to STD-3 ASCII rules. + * @var int + * @cvalue UIDNA_DEFAULT + */ +const IDNA_DEFAULT = UNKNOWN; + +/** + * Option to allow processing of unassigned codepoints in the input + * @var int + * @cvalue UIDNA_ALLOW_UNASSIGNED + */ +const IDNA_ALLOW_UNASSIGNED = UNKNOWN; + +/** + * Option to check if input conforms to STD-3 ASCII rules + * @var int + * @cvalue UIDNA_USE_STD3_RULES + */ +const IDNA_USE_STD3_RULES = UNKNOWN; + +/** + * Option to check for whether the input conforms to the BiDi rules. + * Ignored by the IDNA2003 implementation. (IDNA2003 always performs a BiDi check.) + * @var int + * @cvalue UIDNA_CHECK_BIDI + */ +const IDNA_CHECK_BIDI = UNKNOWN; + +/** + * Option to check for whether the input conforms to the CONTEXTJ rules. + * Ignored by the IDNA2003 implementation. (The CONTEXTJ check is new in IDNA2008.) + * @var int + * @cvalue UIDNA_CHECK_CONTEXTJ + */ +const IDNA_CHECK_CONTEXTJ = UNKNOWN; + +/** + * Option for nontransitional processing in ToASCII(). + * By default, ToASCII() uses transitional processing. + * Ignored by the IDNA2003 implementation. + * @var int + * @cvalue UIDNA_NONTRANSITIONAL_TO_ASCII + */ +const IDNA_NONTRANSITIONAL_TO_ASCII = UNKNOWN; + +/** + * Option for nontransitional processing in ToUnicode(). + * By default, ToUnicode() uses transitional processing. + * Ignored by the IDNA2003 implementation. + * @var int + * @cvalue UIDNA_NONTRANSITIONAL_TO_UNICODE + */ +const IDNA_NONTRANSITIONAL_TO_UNICODE = UNKNOWN; + +/* VARIANTS */ + +/** + * @var int + * @cvalue INTL_IDN_VARIANT_UTS46 + */ +const INTL_IDNA_VARIANT_UTS46 = UNKNOWN; + +/* PINFO ERROR CODES */ +/** + * @var int + * @cvalue UIDNA_ERROR_EMPTY_LABEL + */ +const IDNA_ERROR_EMPTY_LABEL = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_LABEL_TOO_LONG + */ +const IDNA_ERROR_LABEL_TOO_LONG = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_DOMAIN_NAME_TOO_LONG + */ +const IDNA_ERROR_DOMAIN_NAME_TOO_LONG = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_LEADING_HYPHEN + */ +const IDNA_ERROR_LEADING_HYPHEN = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_TRAILING_HYPHEN + */ +const IDNA_ERROR_TRAILING_HYPHEN = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_HYPHEN_3_4 + */ +const IDNA_ERROR_HYPHEN_3_4 = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_LEADING_COMBINING_MARK + */ +const IDNA_ERROR_LEADING_COMBINING_MARK = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_DISALLOWED + */ +const IDNA_ERROR_DISALLOWED = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_PUNYCODE + */ +const IDNA_ERROR_PUNYCODE = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_LABEL_HAS_DOT + */ +const IDNA_ERROR_LABEL_HAS_DOT = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_INVALID_ACE_LABEL + */ +const IDNA_ERROR_INVALID_ACE_LABEL = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_BIDI + */ +const IDNA_ERROR_BIDI = UNKNOWN; +/** + * @var int + * @cvalue UIDNA_ERROR_CONTEXTJ + */ +const IDNA_ERROR_CONTEXTJ = UNKNOWN; + class IntlException extends Exception { } diff --git a/ext/intl/php_intl_arginfo.h b/ext/intl/php_intl_arginfo.h index bbdbb23b300a7..c28c74b9e9664 100644 --- a/ext/intl/php_intl_arginfo.h +++ b/ext/intl/php_intl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 00c129ef1fe3ff8227fd6926f8702e05582a33a8 */ + * Stub hash: 7008d442eba36e2bc468cc4a7a30eb859d10c07d */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_intlcal_create_instance, 0, 0, IntlCalendar, 1) ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, timezone, "null") @@ -1178,6 +1178,30 @@ static void register_php_intl_symbols(int module_number) #if defined(U_ICU_DATA_VERSION) REGISTER_STRING_CONSTANT("INTL_ICU_DATA_VERSION", U_ICU_DATA_VERSION, CONST_CS | CONST_PERSISTENT); #endif + REGISTER_LONG_CONSTANT("GRAPHEME_EXTR_COUNT", GRAPHEME_EXTRACT_TYPE_COUNT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("GRAPHEME_EXTR_MAXBYTES", GRAPHEME_EXTRACT_TYPE_MAXBYTES, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("GRAPHEME_EXTR_MAXCHARS", GRAPHEME_EXTRACT_TYPE_MAXCHARS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_DEFAULT", UIDNA_DEFAULT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ALLOW_UNASSIGNED", UIDNA_ALLOW_UNASSIGNED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_USE_STD3_RULES", UIDNA_USE_STD3_RULES, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_CHECK_BIDI", UIDNA_CHECK_BIDI, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_CHECK_CONTEXTJ", UIDNA_CHECK_CONTEXTJ, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_NONTRANSITIONAL_TO_ASCII", UIDNA_NONTRANSITIONAL_TO_ASCII, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_NONTRANSITIONAL_TO_UNICODE", UIDNA_NONTRANSITIONAL_TO_UNICODE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("INTL_IDNA_VARIANT_UTS46", INTL_IDN_VARIANT_UTS46, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_EMPTY_LABEL", UIDNA_ERROR_EMPTY_LABEL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_LABEL_TOO_LONG", UIDNA_ERROR_LABEL_TOO_LONG, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_DOMAIN_NAME_TOO_LONG", UIDNA_ERROR_DOMAIN_NAME_TOO_LONG, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_LEADING_HYPHEN", UIDNA_ERROR_LEADING_HYPHEN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_TRAILING_HYPHEN", UIDNA_ERROR_TRAILING_HYPHEN, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_HYPHEN_3_4", UIDNA_ERROR_HYPHEN_3_4, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_LEADING_COMBINING_MARK", UIDNA_ERROR_LEADING_COMBINING_MARK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_DISALLOWED", UIDNA_ERROR_DISALLOWED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_PUNYCODE", UIDNA_ERROR_PUNYCODE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_LABEL_HAS_DOT", UIDNA_ERROR_LABEL_HAS_DOT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_INVALID_ACE_LABEL", UIDNA_ERROR_INVALID_ACE_LABEL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_BIDI", UIDNA_ERROR_BIDI, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("IDNA_ERROR_CONTEXTJ", UIDNA_ERROR_CONTEXTJ, CONST_CS | CONST_PERSISTENT); } static zend_class_entry *register_class_IntlException(zend_class_entry *class_entry_Exception)