PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LTP GCOV extension - code coverage report
Current view: directory - unicode - constants.c
Test: PHP Code Coverage
Date: 2009-11-23 Instrumented lines: 505
Code covered: 100.0 % Executed lines: 505
Legend: not executed executed

       1                 : /*
       2                 :   +----------------------------------------------------------------------+
       3                 :   | PHP Version 6                                                        |
       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: Andrei Zmievski <andrei@php.net>                            |
      14                 :   |          Wez Furlong <wez@php.net>                                   |
      15                 :   +----------------------------------------------------------------------+
      16                 : */
      17                 : 
      18                 : #include "php_unicode.h"
      19                 : 
      20                 : PHPAPI zend_class_entry *u_const_ce;
      21                 : 
      22                 : #define REGISTER_U_CONST(constant) \
      23                 :         php_register_u_constant(#constant, (long)constant TSRMLS_CC)
      24                 : 
      25                 : static void php_register_u_constant(const char *name, long value TSRMLS_DC)
      26         7619136 : {
      27         7619136 :         const char *p = name;
      28                 : 
      29         7619136 :         if (*p == 'U') p++;
      30         7619136 :         if (*p == '_') p++;
      31                 : 
      32         7619136 :         zend_declare_class_constant_long(u_const_ce, (char *)p, strlen(p), value TSRMLS_CC);
      33         7619136 : }
      34                 : 
      35                 : /* {{{ Character property constants */
      36                 : static void php_register_property_constants(TSRMLS_D)
      37           17007 : {
      38           17007 :         REGISTER_U_CONST(UCHAR_ALPHABETIC);
      39           17007 :         REGISTER_U_CONST(UCHAR_ASCII_HEX_DIGIT);
      40           17007 :         REGISTER_U_CONST(UCHAR_BIDI_CONTROL);
      41           17007 :         REGISTER_U_CONST(UCHAR_BIDI_MIRRORED);
      42           17007 :         REGISTER_U_CONST(UCHAR_DASH);
      43           17007 :         REGISTER_U_CONST(UCHAR_DEFAULT_IGNORABLE_CODE_POINT);
      44           17007 :         REGISTER_U_CONST(UCHAR_DEPRECATED);
      45           17007 :         REGISTER_U_CONST(UCHAR_DIACRITIC);
      46           17007 :         REGISTER_U_CONST(UCHAR_EXTENDER);
      47           17007 :         REGISTER_U_CONST(UCHAR_FULL_COMPOSITION_EXCLUSION);
      48           17007 :         REGISTER_U_CONST(UCHAR_GRAPHEME_BASE);
      49           17007 :         REGISTER_U_CONST(UCHAR_GRAPHEME_EXTEND);
      50           17007 :         REGISTER_U_CONST(UCHAR_GRAPHEME_LINK);
      51           17007 :         REGISTER_U_CONST(UCHAR_HEX_DIGIT);
      52           17007 :         REGISTER_U_CONST(UCHAR_HYPHEN);
      53           17007 :         REGISTER_U_CONST(UCHAR_ID_CONTINUE);
      54           17007 :         REGISTER_U_CONST(UCHAR_ID_START);
      55           17007 :         REGISTER_U_CONST(UCHAR_IDEOGRAPHIC);
      56           17007 :         REGISTER_U_CONST(UCHAR_IDS_BINARY_OPERATOR);
      57           17007 :         REGISTER_U_CONST(UCHAR_IDS_TRINARY_OPERATOR);
      58           17007 :         REGISTER_U_CONST(UCHAR_JOIN_CONTROL);
      59           17007 :         REGISTER_U_CONST(UCHAR_LOGICAL_ORDER_EXCEPTION);
      60           17007 :         REGISTER_U_CONST(UCHAR_LOWERCASE);
      61           17007 :         REGISTER_U_CONST(UCHAR_MATH);
      62           17007 :         REGISTER_U_CONST(UCHAR_NONCHARACTER_CODE_POINT);
      63           17007 :         REGISTER_U_CONST(UCHAR_QUOTATION_MARK);
      64           17007 :         REGISTER_U_CONST(UCHAR_RADICAL);
      65           17007 :         REGISTER_U_CONST(UCHAR_SOFT_DOTTED);
      66           17007 :         REGISTER_U_CONST(UCHAR_TERMINAL_PUNCTUATION);
      67           17007 :         REGISTER_U_CONST(UCHAR_UNIFIED_IDEOGRAPH);
      68           17007 :         REGISTER_U_CONST(UCHAR_UPPERCASE);
      69           17007 :         REGISTER_U_CONST(UCHAR_WHITE_SPACE);
      70           17007 :         REGISTER_U_CONST(UCHAR_XID_CONTINUE);
      71           17007 :         REGISTER_U_CONST(UCHAR_XID_START);
      72           17007 :         REGISTER_U_CONST(UCHAR_CASE_SENSITIVE);
      73           17007 :         REGISTER_U_CONST(UCHAR_S_TERM);
      74           17007 :         REGISTER_U_CONST(UCHAR_VARIATION_SELECTOR);
      75           17007 :         REGISTER_U_CONST(UCHAR_NFD_INERT);
      76           17007 :         REGISTER_U_CONST(UCHAR_NFKD_INERT);
      77           17007 :         REGISTER_U_CONST(UCHAR_NFC_INERT);
      78           17007 :         REGISTER_U_CONST(UCHAR_NFKC_INERT);
      79           17007 :         REGISTER_U_CONST(UCHAR_SEGMENT_STARTER);
      80           17007 :         REGISTER_U_CONST(UCHAR_PATTERN_SYNTAX);
      81           17007 :         REGISTER_U_CONST(UCHAR_PATTERN_WHITE_SPACE);
      82           17007 :         REGISTER_U_CONST(UCHAR_POSIX_ALNUM);
      83           17007 :         REGISTER_U_CONST(UCHAR_POSIX_BLANK);
      84           17007 :         REGISTER_U_CONST(UCHAR_POSIX_GRAPH);
      85           17007 :         REGISTER_U_CONST(UCHAR_POSIX_PRINT);
      86           17007 :         REGISTER_U_CONST(UCHAR_POSIX_XDIGIT);
      87           17007 :         REGISTER_U_CONST(UCHAR_BIDI_CLASS);
      88           17007 :         REGISTER_U_CONST(UCHAR_INT_START);
      89           17007 :         REGISTER_U_CONST(UCHAR_BLOCK);
      90           17007 :         REGISTER_U_CONST(UCHAR_CANONICAL_COMBINING_CLASS);
      91           17007 :         REGISTER_U_CONST(UCHAR_DECOMPOSITION_TYPE);
      92           17007 :         REGISTER_U_CONST(UCHAR_EAST_ASIAN_WIDTH);
      93           17007 :         REGISTER_U_CONST(UCHAR_GENERAL_CATEGORY);
      94           17007 :         REGISTER_U_CONST(UCHAR_JOINING_GROUP);
      95           17007 :         REGISTER_U_CONST(UCHAR_JOINING_TYPE);
      96           17007 :         REGISTER_U_CONST(UCHAR_LINE_BREAK);
      97           17007 :         REGISTER_U_CONST(UCHAR_NUMERIC_TYPE);
      98           17007 :         REGISTER_U_CONST(UCHAR_SCRIPT);
      99           17007 :         REGISTER_U_CONST(UCHAR_HANGUL_SYLLABLE_TYPE);
     100           17007 :         REGISTER_U_CONST(UCHAR_NFD_QUICK_CHECK);
     101           17007 :         REGISTER_U_CONST(UCHAR_NFKD_QUICK_CHECK);
     102           17007 :         REGISTER_U_CONST(UCHAR_NFC_QUICK_CHECK);
     103           17007 :         REGISTER_U_CONST(UCHAR_NFKC_QUICK_CHECK);
     104           17007 :         REGISTER_U_CONST(UCHAR_LEAD_CANONICAL_COMBINING_CLASS);
     105           17007 :         REGISTER_U_CONST(UCHAR_TRAIL_CANONICAL_COMBINING_CLASS);
     106           17007 :         REGISTER_U_CONST(UCHAR_GRAPHEME_CLUSTER_BREAK);
     107           17007 :         REGISTER_U_CONST(UCHAR_SENTENCE_BREAK);
     108           17007 :         REGISTER_U_CONST(UCHAR_WORD_BREAK);
     109           17007 :         REGISTER_U_CONST(UCHAR_GENERAL_CATEGORY_MASK);
     110           17007 :         REGISTER_U_CONST(UCHAR_NUMERIC_VALUE);
     111           17007 :         REGISTER_U_CONST(UCHAR_AGE);
     112           17007 :         REGISTER_U_CONST(UCHAR_BIDI_MIRRORING_GLYPH);
     113           17007 :         REGISTER_U_CONST(UCHAR_CASE_FOLDING);
     114           17007 :         REGISTER_U_CONST(UCHAR_ISO_COMMENT);
     115           17007 :         REGISTER_U_CONST(UCHAR_LOWERCASE_MAPPING);
     116           17007 :         REGISTER_U_CONST(UCHAR_NAME);
     117           17007 :         REGISTER_U_CONST(UCHAR_SIMPLE_CASE_FOLDING);
     118           17007 :         REGISTER_U_CONST(UCHAR_SIMPLE_LOWERCASE_MAPPING);
     119           17007 :         REGISTER_U_CONST(UCHAR_SIMPLE_TITLECASE_MAPPING);
     120           17007 :         REGISTER_U_CONST(UCHAR_SIMPLE_UPPERCASE_MAPPING);
     121           17007 :         REGISTER_U_CONST(UCHAR_TITLECASE_MAPPING);
     122           17007 :         REGISTER_U_CONST(UCHAR_UNICODE_1_NAME);
     123           17007 :         REGISTER_U_CONST(UCHAR_UPPERCASE_MAPPING);
     124           17007 :         REGISTER_U_CONST(UCHAR_INVALID_CODE);
     125           17007 : }
     126                 : /* }}} */
     127                 : 
     128                 : /* {{{ General category constants */
     129                 : static void php_register_general_category_constants(TSRMLS_D)
     130           17007 : {
     131           17007 :         REGISTER_U_CONST(U_UNASSIGNED);
     132           17007 :         REGISTER_U_CONST(U_GENERAL_OTHER_TYPES);
     133           17007 :         REGISTER_U_CONST(U_UPPERCASE_LETTER);
     134           17007 :         REGISTER_U_CONST(U_LOWERCASE_LETTER);
     135           17007 :         REGISTER_U_CONST(U_TITLECASE_LETTER);
     136           17007 :         REGISTER_U_CONST(U_MODIFIER_LETTER);
     137           17007 :         REGISTER_U_CONST(U_OTHER_LETTER);
     138           17007 :         REGISTER_U_CONST(U_NON_SPACING_MARK);
     139           17007 :         REGISTER_U_CONST(U_ENCLOSING_MARK);
     140           17007 :         REGISTER_U_CONST(U_COMBINING_SPACING_MARK);
     141           17007 :         REGISTER_U_CONST(U_DECIMAL_DIGIT_NUMBER);
     142           17007 :         REGISTER_U_CONST(U_LETTER_NUMBER);
     143           17007 :         REGISTER_U_CONST(U_OTHER_NUMBER);
     144           17007 :         REGISTER_U_CONST(U_SPACE_SEPARATOR);
     145           17007 :         REGISTER_U_CONST(U_LINE_SEPARATOR);
     146           17007 :         REGISTER_U_CONST(U_PARAGRAPH_SEPARATOR);
     147           17007 :         REGISTER_U_CONST(U_CONTROL_CHAR);
     148           17007 :         REGISTER_U_CONST(U_FORMAT_CHAR);
     149           17007 :         REGISTER_U_CONST(U_PRIVATE_USE_CHAR);
     150           17007 :         REGISTER_U_CONST(U_SURROGATE);
     151           17007 :         REGISTER_U_CONST(U_DASH_PUNCTUATION);
     152           17007 :         REGISTER_U_CONST(U_START_PUNCTUATION);
     153           17007 :         REGISTER_U_CONST(U_END_PUNCTUATION);
     154           17007 :         REGISTER_U_CONST(U_CONNECTOR_PUNCTUATION);
     155           17007 :         REGISTER_U_CONST(U_OTHER_PUNCTUATION);
     156           17007 :         REGISTER_U_CONST(U_MATH_SYMBOL);
     157           17007 :         REGISTER_U_CONST(U_CURRENCY_SYMBOL);
     158           17007 :         REGISTER_U_CONST(U_MODIFIER_SYMBOL);
     159           17007 :         REGISTER_U_CONST(U_OTHER_SYMBOL);
     160           17007 :         REGISTER_U_CONST(U_INITIAL_PUNCTUATION);
     161           17007 :         REGISTER_U_CONST(U_FINAL_PUNCTUATION);
     162           17007 : }
     163                 : /* }}} */
     164                 : 
     165                 : /* {{{ Character direction constants */
     166                 : static void php_register_char_direction_constants(TSRMLS_D)
     167           17007 : {
     168           17007 :         REGISTER_U_CONST(U_LEFT_TO_RIGHT);
     169           17007 :         REGISTER_U_CONST(U_RIGHT_TO_LEFT);
     170           17007 :         REGISTER_U_CONST(U_EUROPEAN_NUMBER);
     171           17007 :         REGISTER_U_CONST(U_EUROPEAN_NUMBER_SEPARATOR);
     172           17007 :         REGISTER_U_CONST(U_EUROPEAN_NUMBER_TERMINATOR);
     173           17007 :         REGISTER_U_CONST(U_ARABIC_NUMBER);
     174           17007 :         REGISTER_U_CONST(U_COMMON_NUMBER_SEPARATOR);
     175           17007 :         REGISTER_U_CONST(U_BLOCK_SEPARATOR);
     176           17007 :         REGISTER_U_CONST(U_SEGMENT_SEPARATOR);
     177           17007 :         REGISTER_U_CONST(U_WHITE_SPACE_NEUTRAL);
     178           17007 :         REGISTER_U_CONST(U_OTHER_NEUTRAL);
     179           17007 :         REGISTER_U_CONST(U_LEFT_TO_RIGHT_EMBEDDING);
     180           17007 :         REGISTER_U_CONST(U_LEFT_TO_RIGHT_OVERRIDE);
     181           17007 :         REGISTER_U_CONST(U_RIGHT_TO_LEFT_ARABIC);
     182           17007 :         REGISTER_U_CONST(U_RIGHT_TO_LEFT_EMBEDDING);
     183           17007 :         REGISTER_U_CONST(U_RIGHT_TO_LEFT_OVERRIDE);
     184           17007 :         REGISTER_U_CONST(U_POP_DIRECTIONAL_FORMAT);
     185           17007 :         REGISTER_U_CONST(U_DIR_NON_SPACING_MARK);
     186           17007 :         REGISTER_U_CONST(U_BOUNDARY_NEUTRAL);
     187           17007 : }
     188                 : /* }}} */
     189                 : 
     190                 : /* {{{ Unicode block constants */
     191                 : static void php_register_block_constants(TSRMLS_D)
     192           17007 : {
     193           17007 :         REGISTER_U_CONST(UBLOCK_NO_BLOCK);
     194           17007 :         REGISTER_U_CONST(UBLOCK_BASIC_LATIN);
     195           17007 :         REGISTER_U_CONST(UBLOCK_LATIN_1_SUPPLEMENT);
     196           17007 :         REGISTER_U_CONST(UBLOCK_LATIN_EXTENDED_A);
     197           17007 :         REGISTER_U_CONST(UBLOCK_LATIN_EXTENDED_B);
     198           17007 :         REGISTER_U_CONST(UBLOCK_IPA_EXTENSIONS);
     199           17007 :         REGISTER_U_CONST(UBLOCK_SPACING_MODIFIER_LETTERS);
     200           17007 :         REGISTER_U_CONST(UBLOCK_COMBINING_DIACRITICAL_MARKS);
     201           17007 :         REGISTER_U_CONST(UBLOCK_GREEK);
     202           17007 :         REGISTER_U_CONST(UBLOCK_CYRILLIC);
     203           17007 :         REGISTER_U_CONST(UBLOCK_ARMENIAN);
     204           17007 :         REGISTER_U_CONST(UBLOCK_HEBREW);
     205           17007 :         REGISTER_U_CONST(UBLOCK_ARABIC);
     206           17007 :         REGISTER_U_CONST(UBLOCK_SYRIAC);
     207           17007 :         REGISTER_U_CONST(UBLOCK_THAANA);
     208           17007 :         REGISTER_U_CONST(UBLOCK_DEVANAGARI);
     209           17007 :         REGISTER_U_CONST(UBLOCK_BENGALI);
     210           17007 :         REGISTER_U_CONST(UBLOCK_GURMUKHI);
     211           17007 :         REGISTER_U_CONST(UBLOCK_GUJARATI);
     212           17007 :         REGISTER_U_CONST(UBLOCK_ORIYA);
     213           17007 :         REGISTER_U_CONST(UBLOCK_TAMIL);
     214           17007 :         REGISTER_U_CONST(UBLOCK_TELUGU);
     215           17007 :         REGISTER_U_CONST(UBLOCK_KANNADA);
     216           17007 :         REGISTER_U_CONST(UBLOCK_MALAYALAM);
     217           17007 :         REGISTER_U_CONST(UBLOCK_SINHALA);
     218           17007 :         REGISTER_U_CONST(UBLOCK_THAI);
     219           17007 :         REGISTER_U_CONST(UBLOCK_LAO);
     220           17007 :         REGISTER_U_CONST(UBLOCK_TIBETAN);
     221           17007 :         REGISTER_U_CONST(UBLOCK_MYANMAR);
     222           17007 :         REGISTER_U_CONST(UBLOCK_GEORGIAN);
     223           17007 :         REGISTER_U_CONST(UBLOCK_HANGUL_JAMO);
     224           17007 :         REGISTER_U_CONST(UBLOCK_ETHIOPIC);
     225           17007 :         REGISTER_U_CONST(UBLOCK_CHEROKEE);
     226           17007 :         REGISTER_U_CONST(UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS);
     227           17007 :         REGISTER_U_CONST(UBLOCK_OGHAM);
     228           17007 :         REGISTER_U_CONST(UBLOCK_RUNIC);
     229           17007 :         REGISTER_U_CONST(UBLOCK_KHMER);
     230           17007 :         REGISTER_U_CONST(UBLOCK_MONGOLIAN);
     231           17007 :         REGISTER_U_CONST(UBLOCK_LATIN_EXTENDED_ADDITIONAL);
     232           17007 :         REGISTER_U_CONST(UBLOCK_GREEK_EXTENDED);
     233           17007 :         REGISTER_U_CONST(UBLOCK_GENERAL_PUNCTUATION);
     234           17007 :         REGISTER_U_CONST(UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS);
     235           17007 :         REGISTER_U_CONST(UBLOCK_CURRENCY_SYMBOLS);
     236           17007 :         REGISTER_U_CONST(UBLOCK_COMBINING_MARKS_FOR_SYMBOLS);
     237           17007 :         REGISTER_U_CONST(UBLOCK_LETTERLIKE_SYMBOLS);
     238           17007 :         REGISTER_U_CONST(UBLOCK_NUMBER_FORMS);
     239           17007 :         REGISTER_U_CONST(UBLOCK_ARROWS);
     240           17007 :         REGISTER_U_CONST(UBLOCK_MATHEMATICAL_OPERATORS);
     241           17007 :         REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_TECHNICAL);
     242           17007 :         REGISTER_U_CONST(UBLOCK_CONTROL_PICTURES);
     243           17007 :         REGISTER_U_CONST(UBLOCK_OPTICAL_CHARACTER_RECOGNITION);
     244           17007 :         REGISTER_U_CONST(UBLOCK_ENCLOSED_ALPHANUMERICS);
     245           17007 :         REGISTER_U_CONST(UBLOCK_BOX_DRAWING);
     246           17007 :         REGISTER_U_CONST(UBLOCK_BLOCK_ELEMENTS);
     247           17007 :         REGISTER_U_CONST(UBLOCK_GEOMETRIC_SHAPES);
     248           17007 :         REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_SYMBOLS);
     249           17007 :         REGISTER_U_CONST(UBLOCK_DINGBATS);
     250           17007 :         REGISTER_U_CONST(UBLOCK_BRAILLE_PATTERNS);
     251           17007 :         REGISTER_U_CONST(UBLOCK_CJK_RADICALS_SUPPLEMENT);
     252           17007 :         REGISTER_U_CONST(UBLOCK_KANGXI_RADICALS);
     253           17007 :         REGISTER_U_CONST(UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS);
     254           17007 :         REGISTER_U_CONST(UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION);
     255           17007 :         REGISTER_U_CONST(UBLOCK_HIRAGANA);
     256           17007 :         REGISTER_U_CONST(UBLOCK_KATAKANA);
     257           17007 :         REGISTER_U_CONST(UBLOCK_BOPOMOFO);
     258           17007 :         REGISTER_U_CONST(UBLOCK_HANGUL_COMPATIBILITY_JAMO);
     259           17007 :         REGISTER_U_CONST(UBLOCK_KANBUN);
     260           17007 :         REGISTER_U_CONST(UBLOCK_BOPOMOFO_EXTENDED);
     261           17007 :         REGISTER_U_CONST(UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS);
     262           17007 :         REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY);
     263           17007 :         REGISTER_U_CONST(UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A);
     264           17007 :         REGISTER_U_CONST(UBLOCK_CJK_UNIFIED_IDEOGRAPHS);
     265           17007 :         REGISTER_U_CONST(UBLOCK_YI_SYLLABLES);
     266           17007 :         REGISTER_U_CONST(UBLOCK_YI_RADICALS);
     267           17007 :         REGISTER_U_CONST(UBLOCK_HANGUL_SYLLABLES);
     268           17007 :         REGISTER_U_CONST(UBLOCK_HIGH_SURROGATES);
     269           17007 :         REGISTER_U_CONST(UBLOCK_HIGH_PRIVATE_USE_SURROGATES);
     270           17007 :         REGISTER_U_CONST(UBLOCK_LOW_SURROGATES);
     271           17007 :         REGISTER_U_CONST(UBLOCK_PRIVATE_USE_AREA);
     272           17007 :         REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS);
     273           17007 :         REGISTER_U_CONST(UBLOCK_ALPHABETIC_PRESENTATION_FORMS);
     274           17007 :         REGISTER_U_CONST(UBLOCK_ARABIC_PRESENTATION_FORMS_A);
     275           17007 :         REGISTER_U_CONST(UBLOCK_COMBINING_HALF_MARKS);
     276           17007 :         REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY_FORMS);
     277           17007 :         REGISTER_U_CONST(UBLOCK_SMALL_FORM_VARIANTS);
     278           17007 :         REGISTER_U_CONST(UBLOCK_ARABIC_PRESENTATION_FORMS_B);
     279           17007 :         REGISTER_U_CONST(UBLOCK_SPECIALS);
     280           17007 :         REGISTER_U_CONST(UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS);
     281           17007 :         REGISTER_U_CONST(UBLOCK_OLD_ITALIC);
     282           17007 :         REGISTER_U_CONST(UBLOCK_GOTHIC);
     283           17007 :         REGISTER_U_CONST(UBLOCK_DESERET);
     284           17007 :         REGISTER_U_CONST(UBLOCK_BYZANTINE_MUSICAL_SYMBOLS);
     285           17007 :         REGISTER_U_CONST(UBLOCK_MUSICAL_SYMBOLS);
     286           17007 :         REGISTER_U_CONST(UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS);
     287           17007 :         REGISTER_U_CONST(UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B);
     288           17007 :         REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT);
     289           17007 :         REGISTER_U_CONST(UBLOCK_TAGS);
     290           17007 :         REGISTER_U_CONST(UBLOCK_CYRILLIC_SUPPLEMENT);
     291           17007 :         REGISTER_U_CONST(UBLOCK_TAGALOG);
     292           17007 :         REGISTER_U_CONST(UBLOCK_HANUNOO);
     293           17007 :         REGISTER_U_CONST(UBLOCK_BUHID);
     294           17007 :         REGISTER_U_CONST(UBLOCK_TAGBANWA);
     295           17007 :         REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A);
     296           17007 :         REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_ARROWS_A);
     297           17007 :         REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_ARROWS_B);
     298           17007 :         REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B);
     299           17007 :         REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS);
     300           17007 :         REGISTER_U_CONST(UBLOCK_KATAKANA_PHONETIC_EXTENSIONS);
     301           17007 :         REGISTER_U_CONST(UBLOCK_VARIATION_SELECTORS);
     302           17007 :         REGISTER_U_CONST(UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A);
     303           17007 :         REGISTER_U_CONST(UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B);
     304           17007 :         REGISTER_U_CONST(UBLOCK_LIMBU);
     305           17007 :         REGISTER_U_CONST(UBLOCK_TAI_LE);
     306           17007 :         REGISTER_U_CONST(UBLOCK_KHMER_SYMBOLS);
     307           17007 :         REGISTER_U_CONST(UBLOCK_PHONETIC_EXTENSIONS);
     308           17007 :         REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS);
     309           17007 :         REGISTER_U_CONST(UBLOCK_YIJING_HEXAGRAM_SYMBOLS);
     310           17007 :         REGISTER_U_CONST(UBLOCK_LINEAR_B_SYLLABARY);
     311           17007 :         REGISTER_U_CONST(UBLOCK_LINEAR_B_IDEOGRAMS);
     312           17007 :         REGISTER_U_CONST(UBLOCK_AEGEAN_NUMBERS);
     313           17007 :         REGISTER_U_CONST(UBLOCK_UGARITIC);
     314           17007 :         REGISTER_U_CONST(UBLOCK_SHAVIAN);
     315           17007 :         REGISTER_U_CONST(UBLOCK_OSMANYA);
     316           17007 :         REGISTER_U_CONST(UBLOCK_CYPRIOT_SYLLABARY);
     317           17007 :         REGISTER_U_CONST(UBLOCK_TAI_XUAN_JING_SYMBOLS);
     318           17007 :         REGISTER_U_CONST(UBLOCK_VARIATION_SELECTORS_SUPPLEMENT);
     319           17007 :         REGISTER_U_CONST(UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION);
     320           17007 :         REGISTER_U_CONST(UBLOCK_ANCIENT_GREEK_NUMBERS);
     321           17007 :         REGISTER_U_CONST(UBLOCK_ARABIC_SUPPLEMENT);
     322           17007 :         REGISTER_U_CONST(UBLOCK_BUGINESE);
     323           17007 :         REGISTER_U_CONST(UBLOCK_CJK_STROKES);
     324           17007 :         REGISTER_U_CONST(UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT);
     325           17007 :         REGISTER_U_CONST(UBLOCK_COPTIC);
     326           17007 :         REGISTER_U_CONST(UBLOCK_ETHIOPIC_EXTENDED);
     327           17007 :         REGISTER_U_CONST(UBLOCK_ETHIOPIC_SUPPLEMENT);
     328           17007 :         REGISTER_U_CONST(UBLOCK_GEORGIAN_SUPPLEMENT);
     329           17007 :         REGISTER_U_CONST(UBLOCK_GLAGOLITIC);
     330           17007 :         REGISTER_U_CONST(UBLOCK_KHAROSHTHI);
     331           17007 :         REGISTER_U_CONST(UBLOCK_MODIFIER_TONE_LETTERS);
     332           17007 :         REGISTER_U_CONST(UBLOCK_NEW_TAI_LUE);
     333           17007 :         REGISTER_U_CONST(UBLOCK_OLD_PERSIAN);
     334           17007 :         REGISTER_U_CONST(UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT);
     335           17007 :         REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_PUNCTUATION);
     336           17007 :         REGISTER_U_CONST(UBLOCK_SYLOTI_NAGRI);
     337           17007 :         REGISTER_U_CONST(UBLOCK_TIFINAGH);
     338           17007 :         REGISTER_U_CONST(UBLOCK_VERTICAL_FORMS);
     339           17007 : }
     340                 : /* }}} */
     341                 : 
     342                 : /* {{{ East Asian width constants */
     343                 : static void php_register_east_asian_width_constants(TSRMLS_D)
     344           17007 : {
     345           17007 :         REGISTER_U_CONST(U_EA_NEUTRAL);
     346           17007 :         REGISTER_U_CONST(U_EA_AMBIGUOUS);
     347           17007 :         REGISTER_U_CONST(U_EA_HALFWIDTH);
     348           17007 :         REGISTER_U_CONST(U_EA_FULLWIDTH);
     349           17007 :         REGISTER_U_CONST(U_EA_NARROW);
     350           17007 :         REGISTER_U_CONST(U_EA_WIDE);
     351           17007 : }
     352                 : /* }}} */
     353                 : 
     354                 : /* {{{ Decomposition type constants */
     355                 : static void php_register_decomposition_type_constants(TSRMLS_D)
     356           17007 : {
     357           17007 :         REGISTER_U_CONST(U_DT_NONE);
     358           17007 :         REGISTER_U_CONST(U_DT_CANONICAL);
     359           17007 :         REGISTER_U_CONST(U_DT_COMPAT);
     360           17007 :         REGISTER_U_CONST(U_DT_CIRCLE);
     361           17007 :         REGISTER_U_CONST(U_DT_FINAL);
     362           17007 :         REGISTER_U_CONST(U_DT_FONT);
     363           17007 :         REGISTER_U_CONST(U_DT_FRACTION);
     364           17007 :         REGISTER_U_CONST(U_DT_INITIAL);
     365           17007 :         REGISTER_U_CONST(U_DT_ISOLATED);
     366           17007 :         REGISTER_U_CONST(U_DT_MEDIAL);
     367           17007 :         REGISTER_U_CONST(U_DT_NARROW);
     368           17007 :         REGISTER_U_CONST(U_DT_NOBREAK);
     369           17007 :         REGISTER_U_CONST(U_DT_SMALL);
     370           17007 :         REGISTER_U_CONST(U_DT_SQUARE);
     371           17007 :         REGISTER_U_CONST(U_DT_SUB);
     372           17007 :         REGISTER_U_CONST(U_DT_SUPER);
     373           17007 :         REGISTER_U_CONST(U_DT_VERTICAL);
     374           17007 :         REGISTER_U_CONST(U_DT_WIDE);
     375           17007 : }
     376                 : /* }}} */
     377                 : 
     378                 : /* {{{ Joining type constants */
     379                 : static void php_register_joining_type_constants(TSRMLS_D)
     380           17007 : {
     381           17007 :         REGISTER_U_CONST(U_JT_NON_JOINING);
     382           17007 :         REGISTER_U_CONST(U_JT_JOIN_CAUSING);
     383           17007 :         REGISTER_U_CONST(U_JT_DUAL_JOINING);
     384           17007 :         REGISTER_U_CONST(U_JT_LEFT_JOINING);
     385           17007 :         REGISTER_U_CONST(U_JT_RIGHT_JOINING);
     386           17007 :         REGISTER_U_CONST(U_JT_TRANSPARENT);
     387           17007 : }
     388                 : /* }}} */
     389                 : 
     390                 : /* {{{ Joining group constants */
     391                 : static void php_register_joining_group_constants(TSRMLS_D)
     392           17007 : {
     393           17007 :         REGISTER_U_CONST(U_JG_NO_JOINING_GROUP);
     394           17007 :         REGISTER_U_CONST(U_JG_AIN);
     395           17007 :         REGISTER_U_CONST(U_JG_ALAPH);
     396           17007 :         REGISTER_U_CONST(U_JG_ALEF);
     397           17007 :         REGISTER_U_CONST(U_JG_BEH);
     398           17007 :         REGISTER_U_CONST(U_JG_BETH);
     399           17007 :         REGISTER_U_CONST(U_JG_DAL);
     400           17007 :         REGISTER_U_CONST(U_JG_DALATH_RISH);
     401           17007 :         REGISTER_U_CONST(U_JG_E);
     402           17007 :         REGISTER_U_CONST(U_JG_FEH);
     403           17007 :         REGISTER_U_CONST(U_JG_FINAL_SEMKATH);
     404           17007 :         REGISTER_U_CONST(U_JG_GAF);
     405           17007 :         REGISTER_U_CONST(U_JG_GAMAL);
     406           17007 :         REGISTER_U_CONST(U_JG_HAH);
     407           17007 :         REGISTER_U_CONST(U_JG_HAMZA_ON_HEH_GOAL);
     408           17007 :         REGISTER_U_CONST(U_JG_HE);
     409           17007 :         REGISTER_U_CONST(U_JG_HEH);
     410           17007 :         REGISTER_U_CONST(U_JG_HEH_GOAL);
     411           17007 :         REGISTER_U_CONST(U_JG_HETH);
     412           17007 :         REGISTER_U_CONST(U_JG_KAF);
     413           17007 :         REGISTER_U_CONST(U_JG_KAPH);
     414           17007 :         REGISTER_U_CONST(U_JG_KNOTTED_HEH);
     415           17007 :         REGISTER_U_CONST(U_JG_LAM);
     416           17007 :         REGISTER_U_CONST(U_JG_LAMADH);
     417           17007 :         REGISTER_U_CONST(U_JG_MEEM);
     418           17007 :         REGISTER_U_CONST(U_JG_MIM);
     419           17007 :         REGISTER_U_CONST(U_JG_NOON);
     420           17007 :         REGISTER_U_CONST(U_JG_NUN);
     421           17007 :         REGISTER_U_CONST(U_JG_PE);
     422           17007 :         REGISTER_U_CONST(U_JG_QAF);
     423           17007 :         REGISTER_U_CONST(U_JG_QAPH);
     424           17007 :         REGISTER_U_CONST(U_JG_REH);
     425           17007 :         REGISTER_U_CONST(U_JG_REVERSED_PE);
     426           17007 :         REGISTER_U_CONST(U_JG_SAD);
     427           17007 :         REGISTER_U_CONST(U_JG_SADHE);
     428           17007 :         REGISTER_U_CONST(U_JG_SEEN);
     429           17007 :         REGISTER_U_CONST(U_JG_SEMKATH);
     430           17007 :         REGISTER_U_CONST(U_JG_SHIN);
     431           17007 :         REGISTER_U_CONST(U_JG_SWASH_KAF);
     432           17007 :         REGISTER_U_CONST(U_JG_SYRIAC_WAW);
     433           17007 :         REGISTER_U_CONST(U_JG_TAH);
     434           17007 :         REGISTER_U_CONST(U_JG_TAW);
     435           17007 :         REGISTER_U_CONST(U_JG_TEH_MARBUTA);
     436           17007 :         REGISTER_U_CONST(U_JG_TETH);
     437           17007 :         REGISTER_U_CONST(U_JG_WAW);
     438           17007 :         REGISTER_U_CONST(U_JG_YEH);
     439           17007 :         REGISTER_U_CONST(U_JG_YEH_BARREE);
     440           17007 :         REGISTER_U_CONST(U_JG_YEH_WITH_TAIL);
     441           17007 :         REGISTER_U_CONST(U_JG_YUDH);
     442           17007 :         REGISTER_U_CONST(U_JG_YUDH_HE);
     443           17007 :         REGISTER_U_CONST(U_JG_ZAIN);
     444           17007 :         REGISTER_U_CONST(U_JG_FE);
     445           17007 :         REGISTER_U_CONST(U_JG_KHAPH);
     446           17007 :         REGISTER_U_CONST(U_JG_ZHAIN);
     447           17007 : }
     448                 : /* }}} */
     449                 : 
     450                 : /* {{{ Grapheme cluster break constants */
     451                 : static void php_register_grapheme_cluster_break_constants(TSRMLS_D)
     452           17007 : {
     453           17007 :         REGISTER_U_CONST(U_GCB_OTHER);
     454           17007 :         REGISTER_U_CONST(U_GCB_CONTROL);
     455           17007 :         REGISTER_U_CONST(U_GCB_CR);
     456           17007 :         REGISTER_U_CONST(U_GCB_EXTEND);
     457           17007 :         REGISTER_U_CONST(U_GCB_L);
     458           17007 :         REGISTER_U_CONST(U_GCB_LF);
     459           17007 :         REGISTER_U_CONST(U_GCB_LV);
     460           17007 :         REGISTER_U_CONST(U_GCB_LVT);
     461           17007 :         REGISTER_U_CONST(U_GCB_T);
     462           17007 :         REGISTER_U_CONST(U_GCB_V);
     463           17007 : }
     464                 : /* }}} */
     465                 : 
     466                 : /* {{{ Work break constants */
     467                 : static void php_register_word_break_constants(TSRMLS_D)
     468           17007 : {
     469           17007 :         REGISTER_U_CONST(U_WB_OTHER);
     470           17007 :         REGISTER_U_CONST(U_WB_ALETTER);
     471           17007 :         REGISTER_U_CONST(U_WB_FORMAT);
     472           17007 :         REGISTER_U_CONST(U_WB_KATAKANA);
     473           17007 :         REGISTER_U_CONST(U_WB_MIDLETTER);
     474           17007 :         REGISTER_U_CONST(U_WB_MIDNUM);
     475           17007 :         REGISTER_U_CONST(U_WB_NUMERIC);
     476           17007 :         REGISTER_U_CONST(U_WB_EXTENDNUMLET);
     477           17007 : }
     478                 : /* }}} */
     479                 : 
     480                 : /* {{{ Sentence break constants */
     481                 : static void php_register_sentence_break_constants(TSRMLS_D)
     482           17007 : {
     483           17007 :         REGISTER_U_CONST(U_SB_OTHER);
     484           17007 :         REGISTER_U_CONST(U_SB_ATERM);
     485           17007 :         REGISTER_U_CONST(U_SB_CLOSE);
     486           17007 :         REGISTER_U_CONST(U_SB_FORMAT);
     487           17007 :         REGISTER_U_CONST(U_SB_LOWER);
     488           17007 :         REGISTER_U_CONST(U_SB_NUMERIC);
     489           17007 :         REGISTER_U_CONST(U_SB_OLETTER);
     490           17007 :         REGISTER_U_CONST(U_SB_SEP);
     491           17007 :         REGISTER_U_CONST(U_SB_SP);
     492           17007 :         REGISTER_U_CONST(U_SB_STERM);
     493           17007 :         REGISTER_U_CONST(U_SB_UPPER);
     494           17007 : }
     495                 : /* }}} */
     496                 : 
     497                 : /* {{{ Line break constants */
     498                 : static void php_register_line_break_constants(TSRMLS_D)
     499           17007 : {
     500           17007 :         REGISTER_U_CONST(U_LB_UNKNOWN);
     501           17007 :         REGISTER_U_CONST(U_LB_AMBIGUOUS);
     502           17007 :         REGISTER_U_CONST(U_LB_ALPHABETIC);
     503           17007 :         REGISTER_U_CONST(U_LB_BREAK_BOTH);
     504           17007 :         REGISTER_U_CONST(U_LB_BREAK_AFTER);
     505           17007 :         REGISTER_U_CONST(U_LB_BREAK_BEFORE);
     506           17007 :         REGISTER_U_CONST(U_LB_MANDATORY_BREAK);
     507           17007 :         REGISTER_U_CONST(U_LB_CONTINGENT_BREAK);
     508           17007 :         REGISTER_U_CONST(U_LB_CLOSE_PUNCTUATION);
     509           17007 :         REGISTER_U_CONST(U_LB_COMBINING_MARK);
     510           17007 :         REGISTER_U_CONST(U_LB_CARRIAGE_RETURN);
     511           17007 :         REGISTER_U_CONST(U_LB_EXCLAMATION);
     512           17007 :         REGISTER_U_CONST(U_LB_GLUE);
     513           17007 :         REGISTER_U_CONST(U_LB_HYPHEN);
     514           17007 :         REGISTER_U_CONST(U_LB_IDEOGRAPHIC);
     515           17007 :         REGISTER_U_CONST(U_LB_INSEPARABLE);
     516           17007 :         REGISTER_U_CONST(U_LB_INFIX_NUMERIC);
     517           17007 :         REGISTER_U_CONST(U_LB_LINE_FEED);
     518           17007 :         REGISTER_U_CONST(U_LB_NONSTARTER);
     519           17007 :         REGISTER_U_CONST(U_LB_NUMERIC);
     520           17007 :         REGISTER_U_CONST(U_LB_OPEN_PUNCTUATION);
     521           17007 :         REGISTER_U_CONST(U_LB_POSTFIX_NUMERIC);
     522           17007 :         REGISTER_U_CONST(U_LB_PREFIX_NUMERIC);
     523           17007 :         REGISTER_U_CONST(U_LB_QUOTATION);
     524           17007 :         REGISTER_U_CONST(U_LB_COMPLEX_CONTEXT);
     525           17007 :         REGISTER_U_CONST(U_LB_SURROGATE);
     526           17007 :         REGISTER_U_CONST(U_LB_SPACE);
     527           17007 :         REGISTER_U_CONST(U_LB_BREAK_SYMBOLS);
     528           17007 :         REGISTER_U_CONST(U_LB_ZWSPACE);
     529           17007 :         REGISTER_U_CONST(U_LB_NEXT_LINE);
     530           17007 :         REGISTER_U_CONST(U_LB_WORD_JOINER);
     531           17007 :         REGISTER_U_CONST(U_LB_H2);
     532           17007 :         REGISTER_U_CONST(U_LB_H3);
     533           17007 :         REGISTER_U_CONST(U_LB_JL);
     534           17007 :         REGISTER_U_CONST(U_LB_JT);
     535           17007 :         REGISTER_U_CONST(U_LB_JV);
     536           17007 : }
     537                 : /* }}} */
     538                 : 
     539                 : /* {{{ Numeric type constants */
     540                 : static void php_register_numeric_type_constants(TSRMLS_D)
     541           17007 : {
     542           17007 :         REGISTER_U_CONST(U_NT_NONE);
     543           17007 :         REGISTER_U_CONST(U_NT_DECIMAL);
     544           17007 :         REGISTER_U_CONST(U_NT_DIGIT);
     545           17007 :         REGISTER_U_CONST(U_NT_NUMERIC);
     546           17007 : }
     547                 : /* }}} */
     548                 : 
     549                 : /* {{{ Hangul syllable type constants */
     550                 : static void php_register_hangul_syllable_constants(TSRMLS_D)
     551           17007 : {
     552           17007 :         REGISTER_U_CONST(U_HST_NOT_APPLICABLE);
     553           17007 :         REGISTER_U_CONST(U_HST_LEADING_JAMO);
     554           17007 :         REGISTER_U_CONST(U_HST_VOWEL_JAMO);
     555           17007 :         REGISTER_U_CONST(U_HST_TRAILING_JAMO);
     556           17007 :         REGISTER_U_CONST(U_HST_LV_SYLLABLE);
     557           17007 :         REGISTER_U_CONST(U_HST_LVT_SYLLABLE);
     558           17007 : }
     559                 : /* }}} */
     560                 : 
     561                 : /* {{{ Miscellaneous constants */
     562                 : static void php_register_misc_constants(TSRMLS_D)
     563           17007 : {
     564           17007 :         zend_declare_class_constant_double(u_const_ce, "NO_NUMERIC_VALUE",
     565                 :                                                                            sizeof("NO_NUMERIC_VALUE")-1, U_NO_NUMERIC_VALUE TSRMLS_CC);
     566                 : 
     567                 :         /* Min and max codepoint values */
     568           17007 :         REGISTER_U_CONST(UCHAR_MIN_VALUE);
     569           17007 :         REGISTER_U_CONST(UCHAR_MAX_VALUE);
     570                 : 
     571                 :         /* Property name constants */
     572           17007 :         REGISTER_U_CONST(U_SHORT_PROPERTY_NAME);
     573           17007 :         REGISTER_U_CONST(U_LONG_PROPERTY_NAME);
     574                 : 
     575                 :         /* Case folding constants */
     576           17007 :         REGISTER_U_CONST(U_FOLD_CASE_DEFAULT);
     577           17007 :         REGISTER_U_CONST(U_FOLD_CASE_EXCLUDE_SPECIAL_I);
     578           17007 : }
     579                 : /* }}} */
     580                 : 
     581                 : void php_register_unicode_constants(TSRMLS_D)
     582           17007 : {
     583                 :         zend_class_entry ce;
     584                 : 
     585           17007 :         INIT_CLASS_ENTRY(ce, "U", NULL);
     586           17007 :         u_const_ce = zend_register_internal_class(&ce TSRMLS_CC);
     587           17007 :         u_const_ce->ce_flags = ZEND_ACC_FINAL_CLASS;
     588                 : 
     589           17007 :         php_register_property_constants(TSRMLS_C);
     590           17007 :         php_register_general_category_constants(TSRMLS_C);
     591           17007 :         php_register_char_direction_constants(TSRMLS_C);
     592           17007 :         php_register_block_constants(TSRMLS_C);
     593           17007 :         php_register_east_asian_width_constants(TSRMLS_C);
     594           17007 :         php_register_decomposition_type_constants(TSRMLS_C);
     595           17007 :         php_register_joining_type_constants(TSRMLS_C);
     596           17007 :         php_register_joining_group_constants(TSRMLS_C);
     597           17007 :         php_register_grapheme_cluster_break_constants(TSRMLS_C);
     598           17007 :         php_register_word_break_constants(TSRMLS_C);
     599           17007 :         php_register_sentence_break_constants(TSRMLS_C);
     600           17007 :         php_register_line_break_constants(TSRMLS_C);
     601           17007 :         php_register_numeric_type_constants(TSRMLS_C);
     602           17007 :         php_register_hangul_syllable_constants(TSRMLS_C);
     603           17007 :         php_register_misc_constants(TSRMLS_C);
     604           17007 : }
     605                 : 
     606                 : /*
     607                 :  * Local variables:
     608                 :  * tab-width: 4
     609                 :  * c-basic-offset: 4
     610                 :  * End:
     611                 :  * vim600: noet sw=4 ts=4 fdm=marker
     612                 :  * vim<600: noet sw=4 ts=4
     613                 :  */

Generated by: LTP GCOV extension version 1.5

Generated at Mon, 23 Nov 2009 17:39:43 +0000 (33 hours ago)

Copyright © 2005-2009 The PHP Group
All rights reserved.