1 : /*
2 : +----------------------------------------------------------------------+
3 : | PHP Version 5 |
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: Kirti Velankar <kirtig@yahoo-inc.com> |
14 : +----------------------------------------------------------------------+
15 : */
16 :
17 : /* $Id: locale_class.c 269153 2008-11-17 11:28:01Z felipe $ */
18 :
19 : #include <unicode/uloc.h>
20 : #include "php_intl.h"
21 : #include "intl_error.h"
22 : #include "locale_class.h"
23 : #include "locale_methods.h"
24 : #include "locale.h"
25 :
26 : zend_class_entry *Locale_ce_ptr = NULL;
27 :
28 : /*
29 : * 'Locale' class registration structures & functions
30 : */
31 :
32 : /* {{{ Locale methods arguments info */
33 : /*
34 : * NOTE: when modifying 'locale_XX_args' do not forget to modify
35 : * approptiate 'locale_XX_args' for the procedural API!
36 : */
37 :
38 : ZEND_BEGIN_ARG_INFO_EX( locale_0_args, 0, 0, 0 )
39 : ZEND_END_ARG_INFO()
40 :
41 : ZEND_BEGIN_ARG_INFO_EX( locale_1_arg, 0, 0, 1 )
42 : ZEND_ARG_INFO( 0, arg1 )
43 : ZEND_END_ARG_INFO()
44 :
45 : ZEND_BEGIN_ARG_INFO_EX( locale_2_args, 0, 0, 2 )
46 : ZEND_ARG_INFO( 0, arg1 )
47 : ZEND_ARG_INFO( 0, arg2 )
48 : ZEND_END_ARG_INFO()
49 :
50 : ZEND_BEGIN_ARG_INFO_EX( locale_3_args, 0, 0, 3 )
51 : ZEND_ARG_INFO( 0, arg1 )
52 : ZEND_ARG_INFO( 0, arg2 )
53 : ZEND_ARG_INFO( 0, arg3 )
54 : ZEND_END_ARG_INFO()
55 :
56 : ZEND_BEGIN_ARG_INFO_EX( locale_4_args, 0, 0, 4 )
57 : ZEND_ARG_INFO( 0, arg1 )
58 : ZEND_ARG_INFO( 0, arg2 )
59 : ZEND_ARG_INFO( 0, arg3 )
60 : ZEND_ARG_INFO( 0, arg4 )
61 : ZEND_END_ARG_INFO()
62 :
63 : /* }}} */
64 :
65 : /* {{{ Locale_class_functions
66 : * Every 'Locale' class method has an entry in this table
67 : */
68 :
69 : function_entry Locale_class_functions[] = {
70 : ZEND_FENTRY( getDefault, zif_locale_get_default , locale_0_args , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
71 : ZEND_FENTRY( setDefault, zif_locale_set_default , locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
72 : ZEND_FENTRY( getPrimaryLanguage, ZEND_FN( locale_get_primary_language ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
73 : ZEND_FENTRY( getScript, ZEND_FN( locale_get_script ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
74 : ZEND_FENTRY( getRegion, ZEND_FN( locale_get_region ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
75 : ZEND_FENTRY( getKeywords, ZEND_FN( locale_get_keywords ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
76 : ZEND_FENTRY( getDisplayScript, ZEND_FN( locale_get_display_script ), locale_2_args , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
77 : ZEND_FENTRY( getDisplayRegion, ZEND_FN( locale_get_display_region ), locale_2_args , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
78 : ZEND_FENTRY( getDisplayName, ZEND_FN( locale_get_display_name ), locale_2_args , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
79 : ZEND_FENTRY( getDisplayLanguage, ZEND_FN( locale_get_display_language ), locale_2_args , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
80 : ZEND_FENTRY( getDisplayVariant, ZEND_FN( locale_get_display_variant ), locale_2_args , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
81 : ZEND_FENTRY( composeLocale, ZEND_FN( locale_compose ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
82 : ZEND_FENTRY( parseLocale, ZEND_FN( locale_parse ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
83 : ZEND_FENTRY( getAllVariants, ZEND_FN( locale_get_all_variants ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
84 : ZEND_FENTRY( filterMatches, ZEND_FN( locale_filter_matches ), locale_3_args, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
85 : ZEND_FENTRY( lookup, ZEND_FN( locale_lookup ), locale_4_args, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
86 : ZEND_FENTRY( canonicalize, ZEND_FN( locale_canonicalize ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
87 : ZEND_FENTRY( acceptFromHttp, ZEND_FN( locale_accept_from_http ), locale_1_arg , ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
88 : { NULL, NULL, NULL }
89 : };
90 : /* }}} */
91 :
92 : /* {{{ locale_register_Locale_class
93 : * Initialize 'Locale' class
94 : */
95 : void locale_register_Locale_class( TSRMLS_D )
96 17633 : {
97 : zend_class_entry ce;
98 :
99 : /* Create and register 'Locale' class. */
100 17633 : INIT_CLASS_ENTRY( ce, "Locale", Locale_class_functions );
101 17633 : ce.create_object = NULL;
102 17633 : Locale_ce_ptr = zend_register_internal_class( &ce TSRMLS_CC );
103 :
104 : /* Declare 'Locale' class properties. */
105 17633 : if( !Locale_ce_ptr )
106 : {
107 0 : zend_error( E_ERROR,
108 : "Locale: Failed to register Locale class.");
109 0 : return;
110 : }
111 : }
112 : /* }}} */
113 :
114 : /*
115 : * Local variables:
116 : * tab-width: 4
117 : * c-basic-offset: 4
118 : * End:
119 : * vim600: noet sw=4 ts=4 fdm=marker
120 : * vim<600: noet sw=4 ts=4
121 : */
|