Declare ext/intl constants in stubs - part 6 (#9268)

This commit is contained in:
Máté Kocsis 2022-08-08 14:21:48 +02:00 committed by GitHub
parent 614e9ec804
commit d97f8eef33
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 159 additions and 86 deletions

View file

@ -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)

View file

@ -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",

View file

@ -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;

View file

@ -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 <scottmac@php.net> |
+----------------------------------------------------------------------+
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "spoofchecker_class.h"
#include "spoofchecker.h"
#include <unicode/uspoof.h>
/* {{{ 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
}
/* }}} */

View file

@ -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 <scottmac@php.net> |
+----------------------------------------------------------------------+
*/
#ifndef SPOOFCHECKER_SPOOFCHECKER_H
#define SPOOFCHECKER_SPOOFCHECKER_H
#include <php.h>
void spoofchecker_register_constants(INIT_FUNC_ARGS);
#endif // SPOOFCHECKER_SPOOFCHECKER_H

View file

@ -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() {}
/**

View file

@ -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;
}