Skip to content

Commit cb933d6

Browse files
committed
Add stubs for IntlChar
Closes phpGH-5217
1 parent 118b04b commit cb933d6

File tree

3 files changed

+504
-90
lines changed

3 files changed

+504
-90
lines changed

ext/intl/uchar/uchar.c

Lines changed: 3 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "uchar.h"
22
#include "intl_data.h"
33
#include "intl_convert.h"
4+
#include "uchar_arginfo.h"
45

56
#include <unicode/uchar.h>
67
#include <unicode/utf8.h>
@@ -30,7 +31,7 @@ static inline int convert_cp(UChar32* pcp, zval *zcp) {
3031
}
3132
} else {
3233
intl_error_set_code(NULL, U_ILLEGAL_ARGUMENT_ERROR);
33-
intl_error_set_custom_msg(NULL, "Invalid parameter for unicode point. Must be either integer or UTF-8 sequence.", 0);
34+
intl_error_set_custom_msg(NULL, "Invalid parameter for unicode point. Must be either integer or UTF-8 sequence.", 0);
3435
return FAILURE;
3536
}
3637
if ((cp < UCHAR_MIN_VALUE) || (cp > UCHAR_MAX_VALUE)) {
@@ -46,9 +47,6 @@ static inline int convert_cp(UChar32* pcp, zval *zcp) {
4647
* Converts a numeric codepoint to UTF-8
4748
* Acts as an identify function when given a valid UTF-8 encoded codepoint
4849
*/
49-
ZEND_BEGIN_ARG_INFO_EX(chr_arginfo, 0, ZEND_RETURN_VALUE, 1)
50-
ZEND_ARG_INFO(0, codepoint)
51-
ZEND_END_ARG_INFO();
5250
IC_METHOD(chr) {
5351
UChar32 cp;
5452
zval *zcp;
@@ -76,9 +74,6 @@ IC_METHOD(chr) {
7674
* Converts a UTf-8 encoded codepoint to its integer U32 value
7775
* Acts as an identity function when passed a valid integer codepoint
7876
*/
79-
ZEND_BEGIN_ARG_INFO_EX(ord_arginfo, 0, ZEND_RETURN_VALUE, 1)
80-
ZEND_ARG_INFO(0, character)
81-
ZEND_END_ARG_INFO();
8277
IC_METHOD(ord) {
8378
UChar32 cp;
8479
zval *zcp;
@@ -96,10 +91,6 @@ IC_METHOD(ord) {
9691
/* }}} */
9792

9893
/* {{{ proto bool IntlChar::hasBinaryProperty(int|string $codepoint, int $property) */
99-
ZEND_BEGIN_ARG_INFO_EX(hasBinaryProperty_arginfo, 0, ZEND_RETURN_VALUE, 2)
100-
ZEND_ARG_INFO(0, codepoint)
101-
ZEND_ARG_INFO(0, property)
102-
ZEND_END_ARG_INFO();
10394
IC_METHOD(hasBinaryProperty) {
10495
UChar32 cp;
10596
zend_long prop;
@@ -118,10 +109,6 @@ IC_METHOD(hasBinaryProperty) {
118109
/* }}} */
119110

120111
/* {{{ proto int IntlChar::getIntPropertyValue(int|string $codepoint, int $property) */
121-
ZEND_BEGIN_ARG_INFO_EX(getIntPropertyValue_arginfo, 0, ZEND_RETURN_VALUE, 2)
122-
ZEND_ARG_INFO(0, codepoint)
123-
ZEND_ARG_INFO(0, property)
124-
ZEND_END_ARG_INFO();
125112
IC_METHOD(getIntPropertyValue) {
126113
UChar32 cp;
127114
zend_long prop;
@@ -140,9 +127,6 @@ IC_METHOD(getIntPropertyValue) {
140127
/* }}} */
141128

142129
/* {{{ proto int IntlChar::getIntPropertyMinValue(int $property) */
143-
ZEND_BEGIN_ARG_INFO_EX(getIntPropertyMinValue_arginfo, 0, ZEND_RETURN_VALUE, 1)
144-
ZEND_ARG_INFO(0, property)
145-
ZEND_END_ARG_INFO();
146130
IC_METHOD(getIntPropertyMinValue) {
147131
zend_long prop;
148132

@@ -155,9 +139,6 @@ IC_METHOD(getIntPropertyMinValue) {
155139
/* }}} */
156140

157141
/* {{{ proto int IntlChar::getIntPropertyMaxValue(int $property) */
158-
ZEND_BEGIN_ARG_INFO_EX(getIntPropertyMaxValue_arginfo, 0, ZEND_RETURN_VALUE, 1)
159-
ZEND_ARG_INFO(0, property)
160-
ZEND_END_ARG_INFO();
161142
IC_METHOD(getIntPropertyMaxValue) {
162143
zend_long prop;
163144

@@ -170,9 +151,6 @@ IC_METHOD(getIntPropertyMaxValue) {
170151
/* }}} */
171152

172153
/* {{{ proto float IntlChar::getNumericValue(int|string $codepoint) */
173-
ZEND_BEGIN_ARG_INFO_EX(getNumericValue_arginfo, 0, ZEND_RETURN_VALUE, 1)
174-
ZEND_ARG_INFO(0, codepoint)
175-
ZEND_END_ARG_INFO();
176154
IC_METHOD(getNumericValue) {
177155
UChar32 cp;
178156
zval *zcp;
@@ -190,9 +168,6 @@ IC_METHOD(getNumericValue) {
190168
/* }}} */
191169

192170
/* {{{ proto void IntlChar::enumCharTypes(callable $callback) */
193-
ZEND_BEGIN_ARG_INFO_EX(enumCharTypes_arginfo, 0, ZEND_RETURN_VALUE, 0)
194-
ZEND_ARG_INFO(0, callback)
195-
ZEND_END_ARG_INFO();
196171
typedef struct _enumCharType_data {
197172
zend_fcall_info fci;
198173
zend_fcall_info_cache fci_cache;
@@ -235,9 +210,6 @@ IC_METHOD(enumCharTypes) {
235210
/* }}} */
236211

237212
/* {{{ proto int IntlChar::getBlockCode(int|string $codepoint) */
238-
ZEND_BEGIN_ARG_INFO_EX(getBlockCode_arginfo, 0, ZEND_RETURN_VALUE, 1)
239-
ZEND_ARG_INFO(0, codepoint)
240-
ZEND_END_ARG_INFO()
241213
IC_METHOD(getBlockCode) {
242214
UChar32 cp;
243215
zval *zcp;
@@ -255,10 +227,6 @@ IC_METHOD(getBlockCode) {
255227
/* }}} */
256228

257229
/* {{{ proto string IntlChar::charName(int|string $codepoint, int $nameChoice = IntlChar::UNICODE_CHAR_NAME) */
258-
ZEND_BEGIN_ARG_INFO_EX(charName_arginfo, 0, ZEND_RETURN_VALUE, 1)
259-
ZEND_ARG_INFO(0, codepoint)
260-
ZEND_ARG_INFO(0, nameChoice)
261-
ZEND_END_ARG_INFO()
262230
IC_METHOD(charName) {
263231
UChar32 cp;
264232
zval *zcp;
@@ -288,10 +256,6 @@ IC_METHOD(charName) {
288256
/* }}} */
289257

290258
/* {{{ proto int IntlChar::charFromName(string $characterName, int $nameChoice = IntlChar::UNICODE_CHAR_NAME) */
291-
ZEND_BEGIN_ARG_INFO_EX(charFromName_arginfo, 0, ZEND_RETURN_VALUE, 1)
292-
ZEND_ARG_INFO(0, characterName)
293-
ZEND_ARG_INFO(0, nameChoice)
294-
ZEND_END_ARG_INFO()
295259
IC_METHOD(charFromName) {
296260
char *name;
297261
size_t name_len;
@@ -310,12 +274,6 @@ IC_METHOD(charFromName) {
310274
/* }}} */
311275

312276
/* {{{ void void IntlChar::enumCharNames(int|string $start, int|string $limit, callable $callback, int $nameChoice = IntlChar::UNICODE_CHAR_NAME) */
313-
ZEND_BEGIN_ARG_INFO_EX(enumCharNames_arginfo, 0, ZEND_RETURN_VALUE, 3)
314-
ZEND_ARG_INFO(0, start)
315-
ZEND_ARG_INFO(0, limit)
316-
ZEND_ARG_INFO(0, callback)
317-
ZEND_ARG_INFO(0, nameChoice)
318-
ZEND_END_ARG_INFO();
319277
typedef struct _enumCharNames_data {
320278
zend_fcall_info fci;
321279
zend_fcall_info_cache fci_cache;
@@ -367,10 +325,6 @@ IC_METHOD(enumCharNames) {
367325
/* }}} */
368326

369327
/* {{{ proto string IntlChar::getPropertyName(int $property, int $nameChoice = IntlChar::LONG_PROPERTY_NAME) */
370-
ZEND_BEGIN_ARG_INFO_EX(getPropertyName_arginfo, 0, ZEND_RETURN_VALUE, 1)
371-
ZEND_ARG_INFO(0, property)
372-
ZEND_ARG_INFO(0, nameChoice)
373-
ZEND_END_ARG_INFO();
374328
IC_METHOD(getPropertyName) {
375329
zend_long property;
376330
zend_long nameChoice = U_LONG_PROPERTY_NAME;
@@ -392,9 +346,6 @@ IC_METHOD(getPropertyName) {
392346
/* }}} */
393347

394348
/* {{{ proto int IntlChar::getPropertyEnum(string $alias) */
395-
ZEND_BEGIN_ARG_INFO_EX(getPropertyEnum_arginfo, 0, ZEND_RETURN_VALUE, 1)
396-
ZEND_ARG_INFO(0, alias)
397-
ZEND_END_ARG_INFO();
398349
IC_METHOD(getPropertyEnum) {
399350
char *alias;
400351
size_t alias_len;
@@ -408,11 +359,6 @@ IC_METHOD(getPropertyEnum) {
408359
/* }}} */
409360

410361
/* {{{ proto string IntlChar::getPropertyValueName(int $property, int $value[, int $nameChoice = IntlChar::LONG_PROPERTY_NAME) */
411-
ZEND_BEGIN_ARG_INFO_EX(getPropertyValueName_arginfo, 0, ZEND_RETURN_VALUE, 2)
412-
ZEND_ARG_INFO(0, property)
413-
ZEND_ARG_INFO(0, value)
414-
ZEND_ARG_INFO(0, nameChoice)
415-
ZEND_END_ARG_INFO();
416362
IC_METHOD(getPropertyValueName) {
417363
zend_long property, value, nameChoice = U_LONG_PROPERTY_NAME;
418364
const char *ret;
@@ -433,10 +379,6 @@ IC_METHOD(getPropertyValueName) {
433379
/* }}} */
434380

435381
/* {{{ proto int IntlChar::getPropertyValueEnum(int $property, string $name) */
436-
ZEND_BEGIN_ARG_INFO_EX(getPropertyValueEnum_arginfo, 0, ZEND_RETURN_VALUE, 2)
437-
ZEND_ARG_INFO(0, property)
438-
ZEND_ARG_INFO(0, name)
439-
ZEND_END_ARG_INFO();
440382
IC_METHOD(getPropertyValueEnum) {
441383
zend_long property;
442384
char *name;
@@ -451,10 +393,6 @@ IC_METHOD(getPropertyValueEnum) {
451393
/* }}} */
452394

453395
/* {{{ proto int|string IntlChar::foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT) */
454-
ZEND_BEGIN_ARG_INFO_EX(foldCase_arginfo, 0, ZEND_RETURN_VALUE, 1)
455-
ZEND_ARG_INFO(0, codepoint)
456-
ZEND_ARG_INFO(0, options)
457-
ZEND_END_ARG_INFO();
458396
IC_METHOD(foldCase) {
459397
UChar32 cp, ret;
460398
zval *zcp;
@@ -482,10 +420,6 @@ IC_METHOD(foldCase) {
482420
/* }}} */
483421

484422
/* {{{ proto int IntlChar::digit(int|string $codepoint[, int $radix = 10]) */
485-
ZEND_BEGIN_ARG_INFO_EX(digit_arginfo, 0, ZEND_RETURN_VALUE, 1)
486-
ZEND_ARG_INFO(0, codepoint)
487-
ZEND_ARG_INFO(0, radix)
488-
ZEND_END_ARG_INFO();
489423
IC_METHOD(digit) {
490424
UChar32 cp;
491425
zval *zcp;
@@ -511,10 +445,6 @@ IC_METHOD(digit) {
511445
/* }}} */
512446

513447
/* {{{ proto int IntlChar::forDigit(int $digit[, int $radix = 10]) */
514-
ZEND_BEGIN_ARG_INFO_EX(forDigit_arginfo, 0, ZEND_RETURN_VALUE, 1)
515-
ZEND_ARG_INFO(0, digit)
516-
ZEND_ARG_INFO(0, radix)
517-
ZEND_END_ARG_INFO();
518448
IC_METHOD(forDigit) {
519449
zend_long digit, radix = 10;
520450

@@ -527,9 +457,6 @@ IC_METHOD(forDigit) {
527457
/* }}} */
528458

529459
/* {{{ proto array IntlChar::charAge(int|string $codepoint) */
530-
ZEND_BEGIN_ARG_INFO_EX(charAge_arginfo, 0, ZEND_RETURN_VALUE, 1)
531-
ZEND_ARG_INFO(0, codepoint)
532-
ZEND_END_ARG_INFO();
533460
IC_METHOD(charAge) {
534461
UChar32 cp;
535462
zval *zcp;
@@ -553,8 +480,6 @@ IC_METHOD(charAge) {
553480
/* }}} */
554481

555482
/* {{{ proto array IntlChar::getUnicodeVersion() */
556-
ZEND_BEGIN_ARG_INFO_EX(getUnicodeVersion_arginfo, 0, ZEND_RETURN_VALUE, 0)
557-
ZEND_END_ARG_INFO();
558483
IC_METHOD(getUnicodeVersion) {
559484
UVersionInfo version;
560485
int i;
@@ -572,9 +497,6 @@ IC_METHOD(getUnicodeVersion) {
572497
/* }}} */
573498

574499
/* {{{ proto string IntlChar::getFC_NFKC_Closure(int|string $codepoint) */
575-
ZEND_BEGIN_ARG_INFO_EX(getFC_NFKC_Closure_arginfo, 0, ZEND_RETURN_VALUE, 1)
576-
ZEND_ARG_INFO(0, codepoint)
577-
ZEND_END_ARG_INFO();
578500
IC_METHOD(getFC_NFKC_Closure) {
579501
UChar32 cp;
580502
zval *zcp;
@@ -613,9 +535,6 @@ IC_METHOD(getFC_NFKC_Closure) {
613535

614536
/* {{{ proto bool IntlChar::<name>(int|string $codepoint) */
615537
#define IC_BOOL_METHOD_CHAR(name) \
616-
ZEND_BEGIN_ARG_INFO_EX(name##_arginfo, 0, ZEND_RETURN_VALUE, 1) \
617-
ZEND_ARG_INFO(0, codepoint) \
618-
ZEND_END_ARG_INFO(); \
619538
IC_METHOD(name) { \
620539
UChar32 cp; zval *zcp; \
621540
if ((zend_parse_parameters(ZEND_NUM_ARGS(), "z", &zcp) == FAILURE) || \
@@ -655,9 +574,6 @@ IC_BOOL_METHOD_CHAR(isJavaIDPart)
655574

656575
/* {{{ proto int IntlChar::<name>(int|string $codepoint) */
657576
#define IC_INT_METHOD_CHAR(name) \
658-
ZEND_BEGIN_ARG_INFO_EX(name##_arginfo, 0, ZEND_RETURN_VALUE, 1) \
659-
ZEND_ARG_INFO(0, codepoint) \
660-
ZEND_END_ARG_INFO(); \
661577
IC_METHOD(name) { \
662578
UChar32 cp; zval *zcp; \
663579
if ((zend_parse_parameters(ZEND_NUM_ARGS(), "z", &zcp) == FAILURE) || \
@@ -676,9 +592,6 @@ IC_INT_METHOD_CHAR(charDigitValue)
676592
* Returns an int otherwise
677593
*/
678594
#define IC_CHAR_METHOD_CHAR(name) \
679-
ZEND_BEGIN_ARG_INFO_EX(name##_arginfo, 0, ZEND_RETURN_VALUE, 1) \
680-
ZEND_ARG_INFO(0, codepoint) \
681-
ZEND_END_ARG_INFO(); \
682595
IC_METHOD(name) { \
683596
UChar32 cp, ret; zval *zcp; \
684597
if ((zend_parse_parameters(ZEND_NUM_ARGS(), "z", &zcp) == FAILURE) || \
@@ -705,7 +618,7 @@ IC_CHAR_METHOD_CHAR(getBidiPairedBracket)
705618
/* }}} */
706619

707620
static const zend_function_entry intlchar_methods[] = {
708-
#define IC_ME(mname) PHP_ME(IntlChar, mname, mname##_arginfo, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
621+
#define IC_ME(mname) PHP_ME(IntlChar, mname, arginfo_class_IntlChar_##mname, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
709622
IC_ME(chr)
710623
IC_ME(ord)
711624
IC_ME(hasBinaryProperty)

0 commit comments

Comments
 (0)