1 /*
2    +----------------------------------------------------------------------+
3    | PHP Version 7                                                        |
4    +----------------------------------------------------------------------+
5    | This source file is subject to version 3.01 of the PHP license,      |
6    | that is bundled with this package in the file LICENSE, and is        |
7    | available through the world-wide-web at the following url:           |
8    | http://www.php.net/license/3_01.txt                                  |
9    | If you did not receive a copy of the PHP license and are unable to   |
10    | obtain it through the world-wide-web, please send a note to          |
11    | license@php.net so we can mail you a copy immediately.               |
12    +----------------------------------------------------------------------+
13    | Authors: Scott MacVicar <scottmac@php.net>                           |
14    +----------------------------------------------------------------------+
15  */
16 
17 #ifdef HAVE_CONFIG_H
18 #include "config.h"
19 #endif
20 
21 #include "spoofchecker_class.h"
22 #include "spoofchecker.h"
23 
24 #include <unicode/uspoof.h>
25 
26 
27 /* {{{ spoofchecker_register_constants
28  * Register constants
29  */
spoofchecker_register_constants(INIT_FUNC_ARGS)30 void spoofchecker_register_constants(INIT_FUNC_ARGS)
31 {
32 	if (!Spoofchecker_ce_ptr)
33 	{
34 		zend_error(E_ERROR, "Spoofchecker class not defined");
35 		return;
36 	}
37 
38 	#define SPOOFCHECKER_EXPOSE_CLASS_CONST(x) zend_declare_class_constant_long(Spoofchecker_ce_ptr, ZEND_STRS( #x ) - 1, USPOOF_##x);
39 
40 	SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT_CONFUSABLE)
41 	SPOOFCHECKER_EXPOSE_CLASS_CONST(MIXED_SCRIPT_CONFUSABLE)
42 	SPOOFCHECKER_EXPOSE_CLASS_CONST(WHOLE_SCRIPT_CONFUSABLE)
43 	SPOOFCHECKER_EXPOSE_CLASS_CONST(ANY_CASE)
44 	SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT)
45 	SPOOFCHECKER_EXPOSE_CLASS_CONST(INVISIBLE)
46 	SPOOFCHECKER_EXPOSE_CLASS_CONST(CHAR_LIMIT)
47 
48 #if U_ICU_VERSION_MAJOR_NUM >= 58
49 	SPOOFCHECKER_EXPOSE_CLASS_CONST(ASCII)
50 	SPOOFCHECKER_EXPOSE_CLASS_CONST(HIGHLY_RESTRICTIVE)
51 	SPOOFCHECKER_EXPOSE_CLASS_CONST(MODERATELY_RESTRICTIVE)
52 	SPOOFCHECKER_EXPOSE_CLASS_CONST(MINIMALLY_RESTRICTIVE)
53 	SPOOFCHECKER_EXPOSE_CLASS_CONST(UNRESTRICTIVE)
54 	SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT_RESTRICTIVE)
55 #endif
56 
57 	#undef SPOOFCHECKER_EXPOSE_CLASS_CONST
58 }
59 /* }}} */
60