diff --git a/ext/intl/config.m4 b/ext/intl/config.m4 index 3b1c8941291..1745c12c4b1 100644 --- a/ext/intl/config.m4 +++ b/ext/intl/config.m4 @@ -55,7 +55,6 @@ if test "$PHP_INTL" != "no"; then uchar/uchar.c \ idn/idn.c \ spoofchecker/spoofchecker_class.c \ - spoofchecker/spoofchecker.c\ spoofchecker/spoofchecker_create.c\ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx) diff --git a/ext/intl/config.w32 b/ext/intl/config.w32 index 18ea96ea476..aca373f2217 100644 --- a/ext/intl/config.w32 +++ b/ext/intl/config.w32 @@ -84,7 +84,6 @@ if (PHP_INTL != "no") { if (CHECK_HEADER_ADD_INCLUDE("unicode/uspoof.h", "CFLAGS_INTL")) { ADD_SOURCES(configure_module_dirname + "/spoofchecker", "\ - spoofchecker.c \ spoofchecker_class.c \ spoofchecker_create.c \ spoofchecker_main.c", diff --git a/ext/intl/php_intl.c b/ext/intl/php_intl.c index 6eedfb585cb..eabbc1a131f 100644 --- a/ext/intl/php_intl.c +++ b/ext/intl/php_intl.c @@ -62,7 +62,6 @@ #include "uchar/uchar.h" # include "spoofchecker/spoofchecker_class.h" -# include "spoofchecker/spoofchecker.h" #include "common/common_error.h" #include "common/common_enum.h" @@ -195,9 +194,6 @@ PHP_MINIT_FUNCTION( intl ) /* Register 'Spoofchecker' PHP class */ spoofchecker_register_Spoofchecker_class( ); - /* Expose Spoofchecker constants to PHP scripts */ - spoofchecker_register_constants( INIT_FUNC_ARGS_PASSTHRU ); - /* Register 'IntlException' PHP class */ IntlException_ce_ptr = register_class_IntlException(zend_ce_exception); IntlException_ce_ptr->create_object = zend_ce_exception->create_object; diff --git a/ext/intl/spoofchecker/spoofchecker.c b/ext/intl/spoofchecker/spoofchecker.c deleted file mode 100644 index f0ed155726d..00000000000 --- a/ext/intl/spoofchecker/spoofchecker.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | https://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Scott MacVicar | - +----------------------------------------------------------------------+ - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "spoofchecker_class.h" -#include "spoofchecker.h" - -#include - - -/* {{{ spoofchecker_register_constants - * Register constants - */ -void spoofchecker_register_constants(INIT_FUNC_ARGS) -{ - if (!Spoofchecker_ce_ptr) - { - zend_error(E_ERROR, "Spoofchecker class not defined"); - return; - } - - #define SPOOFCHECKER_EXPOSE_CLASS_CONST(x) zend_declare_class_constant_long(Spoofchecker_ce_ptr, ZEND_STRS( #x ) - 1, USPOOF_##x); - - SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT_CONFUSABLE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(MIXED_SCRIPT_CONFUSABLE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(WHOLE_SCRIPT_CONFUSABLE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(ANY_CASE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT) - SPOOFCHECKER_EXPOSE_CLASS_CONST(INVISIBLE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(CHAR_LIMIT) - -#if U_ICU_VERSION_MAJOR_NUM >= 58 - SPOOFCHECKER_EXPOSE_CLASS_CONST(ASCII) - SPOOFCHECKER_EXPOSE_CLASS_CONST(HIGHLY_RESTRICTIVE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(MODERATELY_RESTRICTIVE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(MINIMALLY_RESTRICTIVE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(UNRESTRICTIVE) - SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT_RESTRICTIVE) -#endif - - #undef SPOOFCHECKER_EXPOSE_CLASS_CONST -} -/* }}} */ diff --git a/ext/intl/spoofchecker/spoofchecker.h b/ext/intl/spoofchecker/spoofchecker.h deleted file mode 100644 index 8d706f43562..00000000000 --- a/ext/intl/spoofchecker/spoofchecker.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | https://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Scott MacVicar | - +----------------------------------------------------------------------+ - */ - -#ifndef SPOOFCHECKER_SPOOFCHECKER_H -#define SPOOFCHECKER_SPOOFCHECKER_H - -#include - -void spoofchecker_register_constants(INIT_FUNC_ARGS); - -#endif // SPOOFCHECKER_SPOOFCHECKER_H diff --git a/ext/intl/spoofchecker/spoofchecker.stub.php b/ext/intl/spoofchecker/spoofchecker.stub.php index dc414949b0a..71f6ad0f2e2 100644 --- a/ext/intl/spoofchecker/spoofchecker.stub.php +++ b/ext/intl/spoofchecker/spoofchecker.stub.php @@ -5,6 +5,74 @@ /** @not-serializable */ class Spoofchecker { + /** + * @var int + * @cvalue USPOOF_SINGLE_SCRIPT_CONFUSABLE + */ + public const SINGLE_SCRIPT_CONFUSABLE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_MIXED_SCRIPT_CONFUSABLE + */ + public const MIXED_SCRIPT_CONFUSABLE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_WHOLE_SCRIPT_CONFUSABLE + */ + public const WHOLE_SCRIPT_CONFUSABLE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_ANY_CASE + */ + public const ANY_CASE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_SINGLE_SCRIPT + */ + public const SINGLE_SCRIPT = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_INVISIBLE + */ + public const INVISIBLE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_CHAR_LIMIT + */ + public const CHAR_LIMIT = UNKNOWN; +#if U_ICU_VERSION_MAJOR_NUM >= 58 + /** + * @var int + * @cvalue USPOOF_ASCII + */ + public const ASCII = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_HIGHLY_RESTRICTIVE + */ + public const HIGHLY_RESTRICTIVE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_MODERATELY_RESTRICTIVE + */ + public const MODERATELY_RESTRICTIVE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_MINIMALLY_RESTRICTIVE + */ + public const MINIMALLY_RESTRICTIVE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_UNRESTRICTIVE + */ + public const UNRESTRICTIVE = UNKNOWN; + /** + * @var int + * @cvalue USPOOF_SINGLE_SCRIPT_RESTRICTIVE + */ + public const SINGLE_SCRIPT_RESTRICTIVE = UNKNOWN; +#endif + public function __construct() {} /** diff --git a/ext/intl/spoofchecker/spoofchecker_arginfo.h b/ext/intl/spoofchecker/spoofchecker_arginfo.h index c030015d49c..98df10a3350 100644 --- a/ext/intl/spoofchecker/spoofchecker_arginfo.h +++ b/ext/intl/spoofchecker/spoofchecker_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: f1c86958a39aa8f89ee468a0753f6a5b232c3e1f */ + * Stub hash: eb2f5a660053b4a38858045968b746bdb3be072e */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Spoofchecker___construct, 0, 0, 0) ZEND_END_ARG_INFO() @@ -60,5 +60,95 @@ static zend_class_entry *register_class_Spoofchecker(void) class_entry = zend_register_internal_class_ex(&ce, NULL); class_entry->ce_flags |= ZEND_ACC_NOT_SERIALIZABLE; + zval const_SINGLE_SCRIPT_CONFUSABLE_value; + ZVAL_LONG(&const_SINGLE_SCRIPT_CONFUSABLE_value, USPOOF_SINGLE_SCRIPT_CONFUSABLE); + zend_string *const_SINGLE_SCRIPT_CONFUSABLE_name = zend_string_init_interned("SINGLE_SCRIPT_CONFUSABLE", sizeof("SINGLE_SCRIPT_CONFUSABLE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_SINGLE_SCRIPT_CONFUSABLE_name, &const_SINGLE_SCRIPT_CONFUSABLE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_SINGLE_SCRIPT_CONFUSABLE_name); + + zval const_MIXED_SCRIPT_CONFUSABLE_value; + ZVAL_LONG(&const_MIXED_SCRIPT_CONFUSABLE_value, USPOOF_MIXED_SCRIPT_CONFUSABLE); + zend_string *const_MIXED_SCRIPT_CONFUSABLE_name = zend_string_init_interned("MIXED_SCRIPT_CONFUSABLE", sizeof("MIXED_SCRIPT_CONFUSABLE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_MIXED_SCRIPT_CONFUSABLE_name, &const_MIXED_SCRIPT_CONFUSABLE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_MIXED_SCRIPT_CONFUSABLE_name); + + zval const_WHOLE_SCRIPT_CONFUSABLE_value; + ZVAL_LONG(&const_WHOLE_SCRIPT_CONFUSABLE_value, USPOOF_WHOLE_SCRIPT_CONFUSABLE); + zend_string *const_WHOLE_SCRIPT_CONFUSABLE_name = zend_string_init_interned("WHOLE_SCRIPT_CONFUSABLE", sizeof("WHOLE_SCRIPT_CONFUSABLE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_WHOLE_SCRIPT_CONFUSABLE_name, &const_WHOLE_SCRIPT_CONFUSABLE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_WHOLE_SCRIPT_CONFUSABLE_name); + + zval const_ANY_CASE_value; + ZVAL_LONG(&const_ANY_CASE_value, USPOOF_ANY_CASE); + zend_string *const_ANY_CASE_name = zend_string_init_interned("ANY_CASE", sizeof("ANY_CASE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_ANY_CASE_name, &const_ANY_CASE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_ANY_CASE_name); + + zval const_SINGLE_SCRIPT_value; + ZVAL_LONG(&const_SINGLE_SCRIPT_value, USPOOF_SINGLE_SCRIPT); + zend_string *const_SINGLE_SCRIPT_name = zend_string_init_interned("SINGLE_SCRIPT", sizeof("SINGLE_SCRIPT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_SINGLE_SCRIPT_name, &const_SINGLE_SCRIPT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_SINGLE_SCRIPT_name); + + zval const_INVISIBLE_value; + ZVAL_LONG(&const_INVISIBLE_value, USPOOF_INVISIBLE); + zend_string *const_INVISIBLE_name = zend_string_init_interned("INVISIBLE", sizeof("INVISIBLE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_INVISIBLE_name, &const_INVISIBLE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_INVISIBLE_name); + + zval const_CHAR_LIMIT_value; + ZVAL_LONG(&const_CHAR_LIMIT_value, USPOOF_CHAR_LIMIT); + zend_string *const_CHAR_LIMIT_name = zend_string_init_interned("CHAR_LIMIT", sizeof("CHAR_LIMIT") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_CHAR_LIMIT_name, &const_CHAR_LIMIT_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_CHAR_LIMIT_name); +#if U_ICU_VERSION_MAJOR_NUM >= 58 + + zval const_ASCII_value; + ZVAL_LONG(&const_ASCII_value, USPOOF_ASCII); + zend_string *const_ASCII_name = zend_string_init_interned("ASCII", sizeof("ASCII") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_ASCII_name, &const_ASCII_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_ASCII_name); +#endif +#if U_ICU_VERSION_MAJOR_NUM >= 58 + + zval const_HIGHLY_RESTRICTIVE_value; + ZVAL_LONG(&const_HIGHLY_RESTRICTIVE_value, USPOOF_HIGHLY_RESTRICTIVE); + zend_string *const_HIGHLY_RESTRICTIVE_name = zend_string_init_interned("HIGHLY_RESTRICTIVE", sizeof("HIGHLY_RESTRICTIVE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_HIGHLY_RESTRICTIVE_name, &const_HIGHLY_RESTRICTIVE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_HIGHLY_RESTRICTIVE_name); +#endif +#if U_ICU_VERSION_MAJOR_NUM >= 58 + + zval const_MODERATELY_RESTRICTIVE_value; + ZVAL_LONG(&const_MODERATELY_RESTRICTIVE_value, USPOOF_MODERATELY_RESTRICTIVE); + zend_string *const_MODERATELY_RESTRICTIVE_name = zend_string_init_interned("MODERATELY_RESTRICTIVE", sizeof("MODERATELY_RESTRICTIVE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_MODERATELY_RESTRICTIVE_name, &const_MODERATELY_RESTRICTIVE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_MODERATELY_RESTRICTIVE_name); +#endif +#if U_ICU_VERSION_MAJOR_NUM >= 58 + + zval const_MINIMALLY_RESTRICTIVE_value; + ZVAL_LONG(&const_MINIMALLY_RESTRICTIVE_value, USPOOF_MINIMALLY_RESTRICTIVE); + zend_string *const_MINIMALLY_RESTRICTIVE_name = zend_string_init_interned("MINIMALLY_RESTRICTIVE", sizeof("MINIMALLY_RESTRICTIVE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_MINIMALLY_RESTRICTIVE_name, &const_MINIMALLY_RESTRICTIVE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_MINIMALLY_RESTRICTIVE_name); +#endif +#if U_ICU_VERSION_MAJOR_NUM >= 58 + + zval const_UNRESTRICTIVE_value; + ZVAL_LONG(&const_UNRESTRICTIVE_value, USPOOF_UNRESTRICTIVE); + zend_string *const_UNRESTRICTIVE_name = zend_string_init_interned("UNRESTRICTIVE", sizeof("UNRESTRICTIVE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_UNRESTRICTIVE_name, &const_UNRESTRICTIVE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_UNRESTRICTIVE_name); +#endif +#if U_ICU_VERSION_MAJOR_NUM >= 58 + + zval const_SINGLE_SCRIPT_RESTRICTIVE_value; + ZVAL_LONG(&const_SINGLE_SCRIPT_RESTRICTIVE_value, USPOOF_SINGLE_SCRIPT_RESTRICTIVE); + zend_string *const_SINGLE_SCRIPT_RESTRICTIVE_name = zend_string_init_interned("SINGLE_SCRIPT_RESTRICTIVE", sizeof("SINGLE_SCRIPT_RESTRICTIVE") - 1, 1); + zend_declare_class_constant_ex(class_entry, const_SINGLE_SCRIPT_RESTRICTIVE_name, &const_SINGLE_SCRIPT_RESTRICTIVE_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(const_SINGLE_SCRIPT_RESTRICTIVE_name); +#endif + return class_entry; }