andrei          Fri May  5 20:56:21 2006 UTC

  Added files:                 
    /php-src/ext/unicode        constants.c 

  Modified files:              
    /php-src/ext/unicode        config.m4 php_unicode.h unicode.c 
  Log:
  Register slightly under half a metric ton of constants.
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/unicode/config.m4?r1=1.8&r2=1.9&diff_format=u
Index: php-src/ext/unicode/config.m4
diff -u php-src/ext/unicode/config.m4:1.8 php-src/ext/unicode/config.m4:1.9
--- php-src/ext/unicode/config.m4:1.8   Tue May  2 20:58:30 2006
+++ php-src/ext/unicode/config.m4       Fri May  5 20:56:21 2006
@@ -1,7 +1,7 @@
 dnl
-dnl $Id: config.m4,v 1.8 2006/05/02 20:58:30 andrei Exp $
+dnl $Id: config.m4,v 1.9 2006/05/05 20:56:21 andrei Exp $
 dnl
 
 PHP_SUBST(UNICODE_SHARED_LIBADD)
 AC_DEFINE(HAVE_UNICODE, 1, [ ])
-PHP_NEW_EXTENSION(unicode, unicode.c locale.c unicode_iterators.c collator.c 
property.c, $ext_shared)
+PHP_NEW_EXTENSION(unicode, unicode.c locale.c unicode_iterators.c collator.c 
property.c constants.c, $ext_shared)
http://cvs.php.net/viewcvs.cgi/php-src/ext/unicode/php_unicode.h?r1=1.13&r2=1.14&diff_format=u
Index: php-src/ext/unicode/php_unicode.h
diff -u php-src/ext/unicode/php_unicode.h:1.13 
php-src/ext/unicode/php_unicode.h:1.14
--- php-src/ext/unicode/php_unicode.h:1.13      Thu May  4 16:49:33 2006
+++ php-src/ext/unicode/php_unicode.h   Fri May  5 20:56:21 2006
@@ -14,7 +14,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_unicode.h,v 1.13 2006/05/04 16:49:33 andrei Exp $ */ 
+/* $Id: php_unicode.h,v 1.14 2006/05/05 20:56:21 andrei Exp $ */ 
 
 #ifndef PHP_UNICODE_H
 #define PHP_UNICODE_H
@@ -33,7 +33,6 @@
 #include <SAPI.h>
 #include <ext/standard/info.h>
 
-
 extern zend_module_entry unicode_module_entry;
 #define phpext_unicode_ptr &unicode_module_entry
 
@@ -55,7 +54,7 @@
 
 /*
  * Because of ICU they are expanded to have _<version> suffix
- * We don't want that
+ * We don't want that.
  */
 #undef locale_get_default
 #undef locale_set_default
@@ -74,6 +73,9 @@
 PHP_METHOD(collator, __construct);
 
 void php_init_collation(TSRMLS_D);
+void php_register_unicode_constants(TSRMLS_D);
+
+PHPAPI zend_class_entry *u_const_ce;
 
 #ifdef  __cplusplus
 } // extern "C" 
http://cvs.php.net/viewcvs.cgi/php-src/ext/unicode/unicode.c?r1=1.28&r2=1.29&diff_format=u
Index: php-src/ext/unicode/unicode.c
diff -u php-src/ext/unicode/unicode.c:1.28 php-src/ext/unicode/unicode.c:1.29
--- php-src/ext/unicode/unicode.c:1.28  Thu May  4 18:37:12 2006
+++ php-src/ext/unicode/unicode.c       Fri May  5 20:56:21 2006
@@ -15,7 +15,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: unicode.c,v 1.28 2006/05/04 18:37:12 andrei Exp $ */ 
+/* $Id: unicode.c,v 1.29 2006/05/05 20:56:21 andrei Exp $ */ 
 
 #include "php_unicode.h"
 #include "zend_unicode.h"
@@ -317,6 +317,7 @@
 {
        php_register_unicode_iterators(TSRMLS_C);
        php_init_collation(TSRMLS_C);
+       php_register_unicode_constants(TSRMLS_C);
        
        return SUCCESS;
 }

http://cvs.php.net/viewcvs.cgi/php-src/ext/unicode/constants.c?view=markup&rev=1.1
Index: php-src/ext/unicode/constants.c
+++ php-src/ext/unicode/constants.c
/*
  +----------------------------------------------------------------------+
  | PHP Version 6                                                        |
  +----------------------------------------------------------------------+
  | 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:           |
  | http://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          |
  | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
  +----------------------------------------------------------------------+
  | Authors: Andrei Zmievski <[EMAIL PROTECTED]>                            |
  |          Wez Furlong <[EMAIL PROTECTED]>                                   |
  +----------------------------------------------------------------------+
*/

#include "php_unicode.h"

PHPAPI zend_class_entry *u_const_ce;

#define REGISTER_U_CONST(constant) \
        php_register_u_constant(#constant, (long)constant TSRMLS_CC)

static void php_register_u_constant(const char *name, long value TSRMLS_DC)
{
        const char *p = name;

        if (*p == 'U') p++;
        if (*p == '_') p++;

        zend_declare_class_constant_long(u_const_ce, (char *)p, strlen(p), 
value TSRMLS_CC);
}

/* {{{ Character property constants */
static void php_register_property_constants(TSRMLS_D)
{
        REGISTER_U_CONST(UCHAR_ALPHABETIC);
        REGISTER_U_CONST(UCHAR_ASCII_HEX_DIGIT);
        REGISTER_U_CONST(UCHAR_BIDI_CONTROL);
        REGISTER_U_CONST(UCHAR_BIDI_MIRRORED);
        REGISTER_U_CONST(UCHAR_DASH);
        REGISTER_U_CONST(UCHAR_DEFAULT_IGNORABLE_CODE_POINT);
        REGISTER_U_CONST(UCHAR_DEPRECATED);
        REGISTER_U_CONST(UCHAR_DIACRITIC);
        REGISTER_U_CONST(UCHAR_EXTENDER);
        REGISTER_U_CONST(UCHAR_FULL_COMPOSITION_EXCLUSION);
        REGISTER_U_CONST(UCHAR_GRAPHEME_BASE);
        REGISTER_U_CONST(UCHAR_GRAPHEME_EXTEND);
        REGISTER_U_CONST(UCHAR_GRAPHEME_LINK);
        REGISTER_U_CONST(UCHAR_HEX_DIGIT);
        REGISTER_U_CONST(UCHAR_HYPHEN);
        REGISTER_U_CONST(UCHAR_ID_CONTINUE);
        REGISTER_U_CONST(UCHAR_ID_START);
        REGISTER_U_CONST(UCHAR_IDEOGRAPHIC);
        REGISTER_U_CONST(UCHAR_IDS_BINARY_OPERATOR);
        REGISTER_U_CONST(UCHAR_IDS_TRINARY_OPERATOR);
        REGISTER_U_CONST(UCHAR_JOIN_CONTROL);
        REGISTER_U_CONST(UCHAR_LOGICAL_ORDER_EXCEPTION);
        REGISTER_U_CONST(UCHAR_LOWERCASE);
        REGISTER_U_CONST(UCHAR_MATH);
        REGISTER_U_CONST(UCHAR_NONCHARACTER_CODE_POINT);
        REGISTER_U_CONST(UCHAR_QUOTATION_MARK);
        REGISTER_U_CONST(UCHAR_RADICAL);
        REGISTER_U_CONST(UCHAR_SOFT_DOTTED);
        REGISTER_U_CONST(UCHAR_TERMINAL_PUNCTUATION);
        REGISTER_U_CONST(UCHAR_UNIFIED_IDEOGRAPH);
        REGISTER_U_CONST(UCHAR_UPPERCASE);
        REGISTER_U_CONST(UCHAR_WHITE_SPACE);
        REGISTER_U_CONST(UCHAR_XID_CONTINUE);
        REGISTER_U_CONST(UCHAR_XID_START);
        REGISTER_U_CONST(UCHAR_CASE_SENSITIVE);
        REGISTER_U_CONST(UCHAR_S_TERM);
        REGISTER_U_CONST(UCHAR_VARIATION_SELECTOR);
        REGISTER_U_CONST(UCHAR_NFD_INERT);
        REGISTER_U_CONST(UCHAR_NFKD_INERT);
        REGISTER_U_CONST(UCHAR_NFC_INERT);
        REGISTER_U_CONST(UCHAR_NFKC_INERT);
        REGISTER_U_CONST(UCHAR_SEGMENT_STARTER);
        REGISTER_U_CONST(UCHAR_PATTERN_SYNTAX);
        REGISTER_U_CONST(UCHAR_PATTERN_WHITE_SPACE);
        REGISTER_U_CONST(UCHAR_POSIX_ALNUM);
        REGISTER_U_CONST(UCHAR_POSIX_BLANK);
        REGISTER_U_CONST(UCHAR_POSIX_GRAPH);
        REGISTER_U_CONST(UCHAR_POSIX_PRINT);
        REGISTER_U_CONST(UCHAR_POSIX_XDIGIT);
        REGISTER_U_CONST(UCHAR_BIDI_CLASS);
        REGISTER_U_CONST(UCHAR_INT_START);
        REGISTER_U_CONST(UCHAR_BLOCK);
        REGISTER_U_CONST(UCHAR_CANONICAL_COMBINING_CLASS);
        REGISTER_U_CONST(UCHAR_DECOMPOSITION_TYPE);
        REGISTER_U_CONST(UCHAR_EAST_ASIAN_WIDTH);
        REGISTER_U_CONST(UCHAR_GENERAL_CATEGORY);
        REGISTER_U_CONST(UCHAR_JOINING_GROUP);
        REGISTER_U_CONST(UCHAR_JOINING_TYPE);
        REGISTER_U_CONST(UCHAR_LINE_BREAK);
        REGISTER_U_CONST(UCHAR_NUMERIC_TYPE);
        REGISTER_U_CONST(UCHAR_SCRIPT);
        REGISTER_U_CONST(UCHAR_HANGUL_SYLLABLE_TYPE);
        REGISTER_U_CONST(UCHAR_NFD_QUICK_CHECK);
        REGISTER_U_CONST(UCHAR_NFKD_QUICK_CHECK);
        REGISTER_U_CONST(UCHAR_NFC_QUICK_CHECK);
        REGISTER_U_CONST(UCHAR_NFKC_QUICK_CHECK);
        REGISTER_U_CONST(UCHAR_LEAD_CANONICAL_COMBINING_CLASS);
        REGISTER_U_CONST(UCHAR_TRAIL_CANONICAL_COMBINING_CLASS);
        REGISTER_U_CONST(UCHAR_GRAPHEME_CLUSTER_BREAK);
        REGISTER_U_CONST(UCHAR_SENTENCE_BREAK);
        REGISTER_U_CONST(UCHAR_WORD_BREAK);
        REGISTER_U_CONST(UCHAR_GENERAL_CATEGORY_MASK);
        REGISTER_U_CONST(UCHAR_NUMERIC_VALUE);
        REGISTER_U_CONST(UCHAR_AGE);
        REGISTER_U_CONST(UCHAR_BIDI_MIRRORING_GLYPH);
        REGISTER_U_CONST(UCHAR_CASE_FOLDING);
        REGISTER_U_CONST(UCHAR_ISO_COMMENT);
        REGISTER_U_CONST(UCHAR_LOWERCASE_MAPPING);
        REGISTER_U_CONST(UCHAR_NAME);
        REGISTER_U_CONST(UCHAR_SIMPLE_CASE_FOLDING);
        REGISTER_U_CONST(UCHAR_SIMPLE_LOWERCASE_MAPPING);
        REGISTER_U_CONST(UCHAR_SIMPLE_TITLECASE_MAPPING);
        REGISTER_U_CONST(UCHAR_SIMPLE_UPPERCASE_MAPPING);
        REGISTER_U_CONST(UCHAR_TITLECASE_MAPPING);
        REGISTER_U_CONST(UCHAR_UNICODE_1_NAME);
        REGISTER_U_CONST(UCHAR_UPPERCASE_MAPPING);
        REGISTER_U_CONST(UCHAR_INVALID_CODE);
}
/* }}} */

/* {{{ General category constants */
static void php_register_general_category_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_UNASSIGNED);
        REGISTER_U_CONST(U_GENERAL_OTHER_TYPES);
        REGISTER_U_CONST(U_UPPERCASE_LETTER);
        REGISTER_U_CONST(U_LOWERCASE_LETTER);
        REGISTER_U_CONST(U_TITLECASE_LETTER);
        REGISTER_U_CONST(U_MODIFIER_LETTER);
        REGISTER_U_CONST(U_OTHER_LETTER);
        REGISTER_U_CONST(U_NON_SPACING_MARK);
        REGISTER_U_CONST(U_ENCLOSING_MARK);
        REGISTER_U_CONST(U_COMBINING_SPACING_MARK);
        REGISTER_U_CONST(U_DECIMAL_DIGIT_NUMBER);
        REGISTER_U_CONST(U_LETTER_NUMBER);
        REGISTER_U_CONST(U_OTHER_NUMBER);
        REGISTER_U_CONST(U_SPACE_SEPARATOR);
        REGISTER_U_CONST(U_LINE_SEPARATOR);
        REGISTER_U_CONST(U_PARAGRAPH_SEPARATOR);
        REGISTER_U_CONST(U_CONTROL_CHAR);
        REGISTER_U_CONST(U_FORMAT_CHAR);
        REGISTER_U_CONST(U_PRIVATE_USE_CHAR);
        REGISTER_U_CONST(U_SURROGATE);
        REGISTER_U_CONST(U_DASH_PUNCTUATION);
        REGISTER_U_CONST(U_START_PUNCTUATION);
        REGISTER_U_CONST(U_END_PUNCTUATION);
        REGISTER_U_CONST(U_CONNECTOR_PUNCTUATION);
        REGISTER_U_CONST(U_OTHER_PUNCTUATION);
        REGISTER_U_CONST(U_MATH_SYMBOL);
        REGISTER_U_CONST(U_CURRENCY_SYMBOL);
        REGISTER_U_CONST(U_MODIFIER_SYMBOL);
        REGISTER_U_CONST(U_OTHER_SYMBOL);
        REGISTER_U_CONST(U_INITIAL_PUNCTUATION);
        REGISTER_U_CONST(U_FINAL_PUNCTUATION);
}
/* }}} */

/* {{{ Character direction constants */
static void php_register_char_direction_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_LEFT_TO_RIGHT);
        REGISTER_U_CONST(U_RIGHT_TO_LEFT);
        REGISTER_U_CONST(U_EUROPEAN_NUMBER);
        REGISTER_U_CONST(U_EUROPEAN_NUMBER_SEPARATOR);
        REGISTER_U_CONST(U_EUROPEAN_NUMBER_TERMINATOR);
        REGISTER_U_CONST(U_ARABIC_NUMBER);
        REGISTER_U_CONST(U_COMMON_NUMBER_SEPARATOR);
        REGISTER_U_CONST(U_BLOCK_SEPARATOR);
        REGISTER_U_CONST(U_SEGMENT_SEPARATOR);
        REGISTER_U_CONST(U_WHITE_SPACE_NEUTRAL);
        REGISTER_U_CONST(U_OTHER_NEUTRAL);
        REGISTER_U_CONST(U_LEFT_TO_RIGHT_EMBEDDING);
        REGISTER_U_CONST(U_LEFT_TO_RIGHT_OVERRIDE);
        REGISTER_U_CONST(U_RIGHT_TO_LEFT_ARABIC);
        REGISTER_U_CONST(U_RIGHT_TO_LEFT_EMBEDDING);
        REGISTER_U_CONST(U_RIGHT_TO_LEFT_OVERRIDE);
        REGISTER_U_CONST(U_POP_DIRECTIONAL_FORMAT);
        REGISTER_U_CONST(U_DIR_NON_SPACING_MARK);
        REGISTER_U_CONST(U_BOUNDARY_NEUTRAL);
}
/* }}} */

/* {{{ Unicode block constants */
static void php_register_block_constants(TSRMLS_D)
{
        REGISTER_U_CONST(UBLOCK_NO_BLOCK);
        REGISTER_U_CONST(UBLOCK_BASIC_LATIN);
        REGISTER_U_CONST(UBLOCK_LATIN_1_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_LATIN_EXTENDED_A);
        REGISTER_U_CONST(UBLOCK_LATIN_EXTENDED_B);
        REGISTER_U_CONST(UBLOCK_IPA_EXTENSIONS);
        REGISTER_U_CONST(UBLOCK_SPACING_MODIFIER_LETTERS);
        REGISTER_U_CONST(UBLOCK_COMBINING_DIACRITICAL_MARKS);
        REGISTER_U_CONST(UBLOCK_GREEK);
        REGISTER_U_CONST(UBLOCK_CYRILLIC);
        REGISTER_U_CONST(UBLOCK_ARMENIAN);
        REGISTER_U_CONST(UBLOCK_HEBREW);
        REGISTER_U_CONST(UBLOCK_ARABIC);
        REGISTER_U_CONST(UBLOCK_SYRIAC);
        REGISTER_U_CONST(UBLOCK_THAANA);
        REGISTER_U_CONST(UBLOCK_DEVANAGARI);
        REGISTER_U_CONST(UBLOCK_BENGALI);
        REGISTER_U_CONST(UBLOCK_GURMUKHI);
        REGISTER_U_CONST(UBLOCK_GUJARATI);
        REGISTER_U_CONST(UBLOCK_ORIYA);
        REGISTER_U_CONST(UBLOCK_TAMIL);
        REGISTER_U_CONST(UBLOCK_TELUGU);
        REGISTER_U_CONST(UBLOCK_KANNADA);
        REGISTER_U_CONST(UBLOCK_MALAYALAM);
        REGISTER_U_CONST(UBLOCK_SINHALA);
        REGISTER_U_CONST(UBLOCK_THAI);
        REGISTER_U_CONST(UBLOCK_LAO);
        REGISTER_U_CONST(UBLOCK_TIBETAN);
        REGISTER_U_CONST(UBLOCK_MYANMAR);
        REGISTER_U_CONST(UBLOCK_GEORGIAN);
        REGISTER_U_CONST(UBLOCK_HANGUL_JAMO);
        REGISTER_U_CONST(UBLOCK_ETHIOPIC);
        REGISTER_U_CONST(UBLOCK_CHEROKEE);
        REGISTER_U_CONST(UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS);
        REGISTER_U_CONST(UBLOCK_OGHAM);
        REGISTER_U_CONST(UBLOCK_RUNIC);
        REGISTER_U_CONST(UBLOCK_KHMER);
        REGISTER_U_CONST(UBLOCK_MONGOLIAN);
        REGISTER_U_CONST(UBLOCK_LATIN_EXTENDED_ADDITIONAL);
        REGISTER_U_CONST(UBLOCK_GREEK_EXTENDED);
        REGISTER_U_CONST(UBLOCK_GENERAL_PUNCTUATION);
        REGISTER_U_CONST(UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS);
        REGISTER_U_CONST(UBLOCK_CURRENCY_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_COMBINING_MARKS_FOR_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_LETTERLIKE_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_NUMBER_FORMS);
        REGISTER_U_CONST(UBLOCK_ARROWS);
        REGISTER_U_CONST(UBLOCK_MATHEMATICAL_OPERATORS);
        REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_TECHNICAL);
        REGISTER_U_CONST(UBLOCK_CONTROL_PICTURES);
        REGISTER_U_CONST(UBLOCK_OPTICAL_CHARACTER_RECOGNITION);
        REGISTER_U_CONST(UBLOCK_ENCLOSED_ALPHANUMERICS);
        REGISTER_U_CONST(UBLOCK_BOX_DRAWING);
        REGISTER_U_CONST(UBLOCK_BLOCK_ELEMENTS);
        REGISTER_U_CONST(UBLOCK_GEOMETRIC_SHAPES);
        REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_DINGBATS);
        REGISTER_U_CONST(UBLOCK_BRAILLE_PATTERNS);
        REGISTER_U_CONST(UBLOCK_CJK_RADICALS_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_KANGXI_RADICALS);
        REGISTER_U_CONST(UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS);
        REGISTER_U_CONST(UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION);
        REGISTER_U_CONST(UBLOCK_HIRAGANA);
        REGISTER_U_CONST(UBLOCK_KATAKANA);
        REGISTER_U_CONST(UBLOCK_BOPOMOFO);
        REGISTER_U_CONST(UBLOCK_HANGUL_COMPATIBILITY_JAMO);
        REGISTER_U_CONST(UBLOCK_KANBUN);
        REGISTER_U_CONST(UBLOCK_BOPOMOFO_EXTENDED);
        REGISTER_U_CONST(UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS);
        REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY);
        REGISTER_U_CONST(UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A);
        REGISTER_U_CONST(UBLOCK_CJK_UNIFIED_IDEOGRAPHS);
        REGISTER_U_CONST(UBLOCK_YI_SYLLABLES);
        REGISTER_U_CONST(UBLOCK_YI_RADICALS);
        REGISTER_U_CONST(UBLOCK_HANGUL_SYLLABLES);
        REGISTER_U_CONST(UBLOCK_HIGH_SURROGATES);
        REGISTER_U_CONST(UBLOCK_HIGH_PRIVATE_USE_SURROGATES);
        REGISTER_U_CONST(UBLOCK_LOW_SURROGATES);
        REGISTER_U_CONST(UBLOCK_PRIVATE_USE_AREA);
        REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS);
        REGISTER_U_CONST(UBLOCK_ALPHABETIC_PRESENTATION_FORMS);
        REGISTER_U_CONST(UBLOCK_ARABIC_PRESENTATION_FORMS_A);
        REGISTER_U_CONST(UBLOCK_COMBINING_HALF_MARKS);
        REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY_FORMS);
        REGISTER_U_CONST(UBLOCK_SMALL_FORM_VARIANTS);
        REGISTER_U_CONST(UBLOCK_ARABIC_PRESENTATION_FORMS_B);
        REGISTER_U_CONST(UBLOCK_SPECIALS);
        REGISTER_U_CONST(UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS);
        REGISTER_U_CONST(UBLOCK_OLD_ITALIC);
        REGISTER_U_CONST(UBLOCK_GOTHIC);
        REGISTER_U_CONST(UBLOCK_DESERET);
        REGISTER_U_CONST(UBLOCK_BYZANTINE_MUSICAL_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_MUSICAL_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B);
        REGISTER_U_CONST(UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_TAGS);
        REGISTER_U_CONST(UBLOCK_CYRILLIC_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_TAGALOG);
        REGISTER_U_CONST(UBLOCK_HANUNOO);
        REGISTER_U_CONST(UBLOCK_BUHID);
        REGISTER_U_CONST(UBLOCK_TAGBANWA);
        REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A);
        REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_ARROWS_A);
        REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_ARROWS_B);
        REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B);
        REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS);
        REGISTER_U_CONST(UBLOCK_KATAKANA_PHONETIC_EXTENSIONS);
        REGISTER_U_CONST(UBLOCK_VARIATION_SELECTORS);
        REGISTER_U_CONST(UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A);
        REGISTER_U_CONST(UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B);
        REGISTER_U_CONST(UBLOCK_LIMBU);
        REGISTER_U_CONST(UBLOCK_TAI_LE);
        REGISTER_U_CONST(UBLOCK_KHMER_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_PHONETIC_EXTENSIONS);
        REGISTER_U_CONST(UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS);
        REGISTER_U_CONST(UBLOCK_YIJING_HEXAGRAM_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_LINEAR_B_SYLLABARY);
        REGISTER_U_CONST(UBLOCK_LINEAR_B_IDEOGRAMS);
        REGISTER_U_CONST(UBLOCK_AEGEAN_NUMBERS);
        REGISTER_U_CONST(UBLOCK_UGARITIC);
        REGISTER_U_CONST(UBLOCK_SHAVIAN);
        REGISTER_U_CONST(UBLOCK_OSMANYA);
        REGISTER_U_CONST(UBLOCK_CYPRIOT_SYLLABARY);
        REGISTER_U_CONST(UBLOCK_TAI_XUAN_JING_SYMBOLS);
        REGISTER_U_CONST(UBLOCK_VARIATION_SELECTORS_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION);
        REGISTER_U_CONST(UBLOCK_ANCIENT_GREEK_NUMBERS);
        REGISTER_U_CONST(UBLOCK_ARABIC_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_BUGINESE);
        REGISTER_U_CONST(UBLOCK_CJK_STROKES);
        REGISTER_U_CONST(UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_COPTIC);
        REGISTER_U_CONST(UBLOCK_ETHIOPIC_EXTENDED);
        REGISTER_U_CONST(UBLOCK_ETHIOPIC_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_GEORGIAN_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_GLAGOLITIC);
        REGISTER_U_CONST(UBLOCK_KHAROSHTHI);
        REGISTER_U_CONST(UBLOCK_MODIFIER_TONE_LETTERS);
        REGISTER_U_CONST(UBLOCK_NEW_TAI_LUE);
        REGISTER_U_CONST(UBLOCK_OLD_PERSIAN);
        REGISTER_U_CONST(UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT);
        REGISTER_U_CONST(UBLOCK_SUPPLEMENTAL_PUNCTUATION);
        REGISTER_U_CONST(UBLOCK_SYLOTI_NAGRI);
        REGISTER_U_CONST(UBLOCK_TIFINAGH);
        REGISTER_U_CONST(UBLOCK_VERTICAL_FORMS);
}
/* }}} */

/* {{{ East Asian width constants */
static void php_register_east_asian_width_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_EA_NEUTRAL);
        REGISTER_U_CONST(U_EA_AMBIGUOUS);
        REGISTER_U_CONST(U_EA_HALFWIDTH);
        REGISTER_U_CONST(U_EA_FULLWIDTH);
        REGISTER_U_CONST(U_EA_NARROW);
        REGISTER_U_CONST(U_EA_WIDE);
}
/* }}} */

/* {{{ Decomposition type constants */
static void php_register_decomposition_type_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_DT_NONE);
        REGISTER_U_CONST(U_DT_CANONICAL);
        REGISTER_U_CONST(U_DT_COMPAT);
        REGISTER_U_CONST(U_DT_CIRCLE);
        REGISTER_U_CONST(U_DT_FINAL);
        REGISTER_U_CONST(U_DT_FONT);
        REGISTER_U_CONST(U_DT_FRACTION);
        REGISTER_U_CONST(U_DT_INITIAL);
        REGISTER_U_CONST(U_DT_ISOLATED);
        REGISTER_U_CONST(U_DT_MEDIAL);
        REGISTER_U_CONST(U_DT_NARROW);
        REGISTER_U_CONST(U_DT_NOBREAK);
        REGISTER_U_CONST(U_DT_SMALL);
        REGISTER_U_CONST(U_DT_SQUARE);
        REGISTER_U_CONST(U_DT_SUB);
        REGISTER_U_CONST(U_DT_SUPER);
        REGISTER_U_CONST(U_DT_VERTICAL);
        REGISTER_U_CONST(U_DT_WIDE);
}
/* }}} */

/* {{{ Joining type constants */
static void php_register_joining_type_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_JT_NON_JOINING);
        REGISTER_U_CONST(U_JT_JOIN_CAUSING);
        REGISTER_U_CONST(U_JT_DUAL_JOINING);
        REGISTER_U_CONST(U_JT_LEFT_JOINING);
        REGISTER_U_CONST(U_JT_RIGHT_JOINING);
        REGISTER_U_CONST(U_JT_TRANSPARENT);
}
/* }}} */

/* {{{ Joining group constants */
static void php_register_joining_group_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_JG_NO_JOINING_GROUP);
        REGISTER_U_CONST(U_JG_AIN);
        REGISTER_U_CONST(U_JG_ALAPH);
        REGISTER_U_CONST(U_JG_ALEF);
        REGISTER_U_CONST(U_JG_BEH);
        REGISTER_U_CONST(U_JG_BETH);
        REGISTER_U_CONST(U_JG_DAL);
        REGISTER_U_CONST(U_JG_DALATH_RISH);
        REGISTER_U_CONST(U_JG_E);
        REGISTER_U_CONST(U_JG_FEH);
        REGISTER_U_CONST(U_JG_FINAL_SEMKATH);
        REGISTER_U_CONST(U_JG_GAF);
        REGISTER_U_CONST(U_JG_GAMAL);
        REGISTER_U_CONST(U_JG_HAH);
        REGISTER_U_CONST(U_JG_HAMZA_ON_HEH_GOAL);
        REGISTER_U_CONST(U_JG_HE);
        REGISTER_U_CONST(U_JG_HEH);
        REGISTER_U_CONST(U_JG_HEH_GOAL);
        REGISTER_U_CONST(U_JG_HETH);
        REGISTER_U_CONST(U_JG_KAF);
        REGISTER_U_CONST(U_JG_KAPH);
        REGISTER_U_CONST(U_JG_KNOTTED_HEH);
        REGISTER_U_CONST(U_JG_LAM);
        REGISTER_U_CONST(U_JG_LAMADH);
        REGISTER_U_CONST(U_JG_MEEM);
        REGISTER_U_CONST(U_JG_MIM);
        REGISTER_U_CONST(U_JG_NOON);
        REGISTER_U_CONST(U_JG_NUN);
        REGISTER_U_CONST(U_JG_PE);
        REGISTER_U_CONST(U_JG_QAF);
        REGISTER_U_CONST(U_JG_QAPH);
        REGISTER_U_CONST(U_JG_REH);
        REGISTER_U_CONST(U_JG_REVERSED_PE);
        REGISTER_U_CONST(U_JG_SAD);
        REGISTER_U_CONST(U_JG_SADHE);
        REGISTER_U_CONST(U_JG_SEEN);
        REGISTER_U_CONST(U_JG_SEMKATH);
        REGISTER_U_CONST(U_JG_SHIN);
        REGISTER_U_CONST(U_JG_SWASH_KAF);
        REGISTER_U_CONST(U_JG_SYRIAC_WAW);
        REGISTER_U_CONST(U_JG_TAH);
        REGISTER_U_CONST(U_JG_TAW);
        REGISTER_U_CONST(U_JG_TEH_MARBUTA);
        REGISTER_U_CONST(U_JG_TETH);
        REGISTER_U_CONST(U_JG_WAW);
        REGISTER_U_CONST(U_JG_YEH);
        REGISTER_U_CONST(U_JG_YEH_BARREE);
        REGISTER_U_CONST(U_JG_YEH_WITH_TAIL);
        REGISTER_U_CONST(U_JG_YUDH);
        REGISTER_U_CONST(U_JG_YUDH_HE);
        REGISTER_U_CONST(U_JG_ZAIN);
        REGISTER_U_CONST(U_JG_FE);
        REGISTER_U_CONST(U_JG_KHAPH);
        REGISTER_U_CONST(U_JG_ZHAIN);
}
/* }}} */

/* {{{ Grapheme cluster break constants */
static void php_register_grapheme_cluster_break_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_GCB_OTHER);
        REGISTER_U_CONST(U_GCB_CONTROL);
        REGISTER_U_CONST(U_GCB_CR);
        REGISTER_U_CONST(U_GCB_EXTEND);
        REGISTER_U_CONST(U_GCB_L);
        REGISTER_U_CONST(U_GCB_LF);
        REGISTER_U_CONST(U_GCB_LV);
        REGISTER_U_CONST(U_GCB_LVT);
        REGISTER_U_CONST(U_GCB_T);
        REGISTER_U_CONST(U_GCB_V);
}
/* }}} */

/* {{{ Work break constants */
static void php_register_word_break_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_WB_OTHER);
        REGISTER_U_CONST(U_WB_ALETTER);
        REGISTER_U_CONST(U_WB_FORMAT);
        REGISTER_U_CONST(U_WB_KATAKANA);
        REGISTER_U_CONST(U_WB_MIDLETTER);
        REGISTER_U_CONST(U_WB_MIDNUM);
        REGISTER_U_CONST(U_WB_NUMERIC);
        REGISTER_U_CONST(U_WB_EXTENDNUMLET);
}
/* }}} */

/* {{{ Sentence break constants */
static void php_register_sentence_break_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_SB_OTHER);
        REGISTER_U_CONST(U_SB_ATERM);
        REGISTER_U_CONST(U_SB_CLOSE);
        REGISTER_U_CONST(U_SB_FORMAT);
        REGISTER_U_CONST(U_SB_LOWER);
        REGISTER_U_CONST(U_SB_NUMERIC);
        REGISTER_U_CONST(U_SB_OLETTER);
        REGISTER_U_CONST(U_SB_SEP);
        REGISTER_U_CONST(U_SB_SP);
        REGISTER_U_CONST(U_SB_STERM);
        REGISTER_U_CONST(U_SB_UPPER);
}
/* }}} */

/* {{{ Line break constants */
static void php_register_line_break_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_LB_UNKNOWN);
        REGISTER_U_CONST(U_LB_AMBIGUOUS);
        REGISTER_U_CONST(U_LB_ALPHABETIC);
        REGISTER_U_CONST(U_LB_BREAK_BOTH);
        REGISTER_U_CONST(U_LB_BREAK_AFTER);
        REGISTER_U_CONST(U_LB_BREAK_BEFORE);
        REGISTER_U_CONST(U_LB_MANDATORY_BREAK);
        REGISTER_U_CONST(U_LB_CONTINGENT_BREAK);
        REGISTER_U_CONST(U_LB_CLOSE_PUNCTUATION);
        REGISTER_U_CONST(U_LB_COMBINING_MARK);
        REGISTER_U_CONST(U_LB_CARRIAGE_RETURN);
        REGISTER_U_CONST(U_LB_EXCLAMATION);
        REGISTER_U_CONST(U_LB_GLUE);
        REGISTER_U_CONST(U_LB_HYPHEN);
        REGISTER_U_CONST(U_LB_IDEOGRAPHIC);
        REGISTER_U_CONST(U_LB_INSEPARABLE);
        REGISTER_U_CONST(U_LB_INFIX_NUMERIC);
        REGISTER_U_CONST(U_LB_LINE_FEED);
        REGISTER_U_CONST(U_LB_NONSTARTER);
        REGISTER_U_CONST(U_LB_NUMERIC);
        REGISTER_U_CONST(U_LB_OPEN_PUNCTUATION);
        REGISTER_U_CONST(U_LB_POSTFIX_NUMERIC);
        REGISTER_U_CONST(U_LB_PREFIX_NUMERIC);
        REGISTER_U_CONST(U_LB_QUOTATION);
        REGISTER_U_CONST(U_LB_COMPLEX_CONTEXT);
        REGISTER_U_CONST(U_LB_SURROGATE);
        REGISTER_U_CONST(U_LB_SPACE);
        REGISTER_U_CONST(U_LB_BREAK_SYMBOLS);
        REGISTER_U_CONST(U_LB_ZWSPACE);
        REGISTER_U_CONST(U_LB_NEXT_LINE);
        REGISTER_U_CONST(U_LB_WORD_JOINER);
        REGISTER_U_CONST(U_LB_H2);
        REGISTER_U_CONST(U_LB_H3);
        REGISTER_U_CONST(U_LB_JL);
        REGISTER_U_CONST(U_LB_JT);
        REGISTER_U_CONST(U_LB_JV);
}
/* }}} */

/* {{{ Numeric type constants */
static void php_register_numeric_type_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_NT_NONE);
        REGISTER_U_CONST(U_NT_DECIMAL);
        REGISTER_U_CONST(U_NT_DIGIT);
        REGISTER_U_CONST(U_NT_NUMERIC);
}
/* }}} */

/* {{{ Hangul syllable type constants */
static void php_register_hangul_syllable_constants(TSRMLS_D)
{
        REGISTER_U_CONST(U_HST_NOT_APPLICABLE);
        REGISTER_U_CONST(U_HST_LEADING_JAMO);
        REGISTER_U_CONST(U_HST_VOWEL_JAMO);
        REGISTER_U_CONST(U_HST_TRAILING_JAMO);
        REGISTER_U_CONST(U_HST_LV_SYLLABLE);
        REGISTER_U_CONST(U_HST_LVT_SYLLABLE);
}
/* }}} */

/* {{{ Miscellaneous constants */
static void php_register_misc_constants(TSRMLS_D)
{
        zend_declare_class_constant_double(u_const_ce, "NO_NUMERIC_VALUE",
                                                                           
sizeof("NO_NUMERIC_VALUE")-1, U_NO_NUMERIC_VALUE TSRMLS_CC);

        /* Min and max codepoint values */
        REGISTER_U_CONST(UCHAR_MIN_VALUE);
        REGISTER_U_CONST(UCHAR_MAX_VALUE);

        /* Property name constants */
        REGISTER_U_CONST(U_SHORT_PROPERTY_NAME);
        REGISTER_U_CONST(U_LONG_PROPERTY_NAME);

        /* Case folding constants */
        REGISTER_U_CONST(U_FOLD_CASE_DEFAULT);
        REGISTER_U_CONST(U_FOLD_CASE_EXCLUDE_SPECIAL_I);
}
/* }}} */

void php_register_unicode_constants(TSRMLS_D)
{
        zend_class_entry ce;

        INIT_CLASS_ENTRY(ce, "U", NULL);
        u_const_ce = zend_register_internal_class(&ce TSRMLS_CC);
        u_const_ce->ce_flags = ZEND_ACC_FINAL_CLASS;

        php_register_property_constants(TSRMLS_C);
        php_register_general_category_constants(TSRMLS_C);
        php_register_char_direction_constants(TSRMLS_C);
        php_register_block_constants(TSRMLS_C);
        php_register_east_asian_width_constants(TSRMLS_C);
        php_register_decomposition_type_constants(TSRMLS_C);
        php_register_joining_type_constants(TSRMLS_C);
        php_register_joining_group_constants(TSRMLS_C);
        php_register_grapheme_cluster_break_constants(TSRMLS_C);
        php_register_word_break_constants(TSRMLS_C);
        php_register_sentence_break_constants(TSRMLS_C);
        php_register_line_break_constants(TSRMLS_C);
        php_register_numeric_type_constants(TSRMLS_C);
        php_register_hangul_syllable_constants(TSRMLS_C);
        php_register_misc_constants(TSRMLS_C);
}

/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4
 * End:
 * vim600: noet sw=4 ts=4 fdm=marker
 * vim<600: noet sw=4 ts=4
 */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to