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

LCOV - code coverage report
Current view: top level - ext/intl - php_intl.c (source / functions) Hit Total Coverage
Test: PHP Code Coverage Lines: 52 53 98.1 %
Date: 2014-09-13 Functions: 6 6 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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: Vadim Savchuk <vsavchuk@productengine.com>                  |
      14             :    |          Dmitry Lakhtyuk <dlakhtyuk@productengine.com>               |
      15             :    |          Stanislav Malyshev <stas@zend.com>                          |
      16             :    |          Kirti Velankar <kirtig@yahoo-inc.com>                         |
      17             :    +----------------------------------------------------------------------+
      18             :  */
      19             : 
      20             : #ifdef HAVE_CONFIG_H
      21             : #include "config.h"
      22             : #endif
      23             : 
      24             : 
      25             : #include "php_intl.h"
      26             : #include "intl_error.h"
      27             : #include "collator/collator_class.h"
      28             : #include "collator/collator.h"
      29             : #include "collator/collator_attr.h"
      30             : #include "collator/collator_compare.h"
      31             : #include "collator/collator_sort.h"
      32             : #include "collator/collator_convert.h"
      33             : #include "collator/collator_locale.h"
      34             : #include "collator/collator_create.h"
      35             : #include "collator/collator_error.h"
      36             : 
      37             : #include "formatter/formatter.h"
      38             : #include "formatter/formatter_class.h"
      39             : #include "formatter/formatter_attr.h"
      40             : #include "formatter/formatter_format.h"
      41             : #include "formatter/formatter_main.h"
      42             : #include "formatter/formatter_parse.h"
      43             : 
      44             : #include "msgformat/msgformat.h"
      45             : #include "msgformat/msgformat_class.h"
      46             : #include "msgformat/msgformat_attr.h"
      47             : #include "msgformat/msgformat_format.h"
      48             : #include "msgformat/msgformat_parse.h"
      49             : 
      50             : #include "normalizer/normalizer.h"
      51             : #include "normalizer/normalizer_class.h"
      52             : #include "normalizer/normalizer_normalize.h"
      53             : 
      54             : #include "locale/locale.h"
      55             : #include "locale/locale_class.h"
      56             : #include "locale/locale_methods.h"
      57             : 
      58             : #include "dateformat/dateformat.h"
      59             : #include "dateformat/dateformat_class.h"
      60             : #include "dateformat/dateformat_attr.h"
      61             : #include "dateformat/dateformat_format.h"
      62             : #include "dateformat/dateformat_parse.h"
      63             : #include "dateformat/dateformat_data.h"
      64             : 
      65             : #include "resourcebundle/resourcebundle_class.h"
      66             : 
      67             : #include "transliterator/transliterator.h"
      68             : #include "transliterator/transliterator_class.h"
      69             : #include "transliterator/transliterator_methods.h"
      70             : 
      71             : #include "idn/idn.h"
      72             : 
      73             : #if U_ICU_VERSION_MAJOR_NUM * 1000 + U_ICU_VERSION_MINOR_NUM >= 4002
      74             : # include "spoofchecker/spoofchecker_class.h"
      75             : # include "spoofchecker/spoofchecker.h"
      76             : # include "spoofchecker/spoofchecker_create.h"
      77             : # include "spoofchecker/spoofchecker_main.h"
      78             : #endif
      79             : 
      80             : #include "msgformat/msgformat.h"
      81             : #include "common/common_error.h"
      82             : 
      83             : #include <unicode/uloc.h>
      84             : #include <ext/standard/info.h>
      85             : 
      86             : #include "php_ini.h"
      87             : #define INTL_MODULE_VERSION PHP_INTL_VERSION
      88             : 
      89             : /*
      90             :  * locale_get_default has a conflict since ICU also has
      91             :  * a function with the same  name
      92             :  * in fact ICU appends the version no. to it also
      93             :  * Hence the following undef for ICU version
      94             :  * Same true for the locale_set_default function
      95             : */
      96             : #undef locale_get_default
      97             : #undef locale_set_default
      98             : 
      99             : ZEND_DECLARE_MODULE_GLOBALS( intl )
     100             : 
     101             : /* {{{ Arguments info */
     102             : ZEND_BEGIN_ARG_INFO_EX(collator_static_0_args, 0, 0, 0)
     103             : ZEND_END_ARG_INFO()
     104             : 
     105             : ZEND_BEGIN_ARG_INFO_EX(collator_static_1_arg, 0, 0, 1)
     106             :         ZEND_ARG_INFO(0, arg1)
     107             : ZEND_END_ARG_INFO()
     108             : 
     109             : ZEND_BEGIN_ARG_INFO_EX(collator_static_2_args, 0, 0, 2)
     110             :         ZEND_ARG_INFO(0, arg1)
     111             :         ZEND_ARG_INFO(0, arg2)
     112             : ZEND_END_ARG_INFO()
     113             : 
     114             : ZEND_BEGIN_ARG_INFO_EX(collator_0_args, 0, 0, 1)
     115             :         ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
     116             : ZEND_END_ARG_INFO()
     117             : 
     118             : ZEND_BEGIN_ARG_INFO_EX(collator_1_arg, 0, 0, 2)
     119             :         ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
     120             :         ZEND_ARG_INFO(0, arg1)
     121             : ZEND_END_ARG_INFO()
     122             : 
     123             : ZEND_BEGIN_ARG_INFO_EX(collator_2_args, 0, 0, 3)
     124             :         ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
     125             :         ZEND_ARG_INFO(0, arg1)
     126             :         ZEND_ARG_INFO(0, arg2)
     127             : ZEND_END_ARG_INFO()
     128             : 
     129             : ZEND_BEGIN_ARG_INFO_EX(collator_sort_args, 0, 0, 2)
     130             :         ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
     131             :         ZEND_ARG_ARRAY_INFO(1, arr, 0)
     132             :         ZEND_ARG_INFO(0, sort_flags)
     133             : ZEND_END_ARG_INFO()
     134             : 
     135             : ZEND_BEGIN_ARG_INFO_EX(numfmt_parse_arginfo, 0, 0, 2)
     136             :         ZEND_ARG_INFO(0, formatter)
     137             :         ZEND_ARG_INFO(0, string)
     138             :         ZEND_ARG_INFO(0, type)
     139             :         ZEND_ARG_INFO(1, position)
     140             : ZEND_END_ARG_INFO()
     141             : 
     142             : ZEND_BEGIN_ARG_INFO_EX(numfmt_parse_currency_arginfo, 0, 0, 3)
     143             :         ZEND_ARG_INFO(0, formatter)
     144             :         ZEND_ARG_INFO(0, string)
     145             :         ZEND_ARG_INFO(1, currency)
     146             :         ZEND_ARG_INFO(1, position)
     147             : ZEND_END_ARG_INFO()
     148             : 
     149             : ZEND_BEGIN_ARG_INFO_EX(locale_0_args, 0, 0, 0)
     150             : ZEND_END_ARG_INFO()
     151             : 
     152             : ZEND_BEGIN_ARG_INFO_EX(locale_1_arg, 0, 0, 1)
     153             :         ZEND_ARG_INFO(0, arg1)
     154             : ZEND_END_ARG_INFO()
     155             : 
     156             : ZEND_BEGIN_ARG_INFO_EX(locale_2_args, 0, 0, 2)
     157             :         ZEND_ARG_INFO(0, arg1)
     158             :         ZEND_ARG_INFO(0, arg2)
     159             : ZEND_END_ARG_INFO()
     160             : 
     161             : ZEND_BEGIN_ARG_INFO_EX(locale_3_args, 0, 0, 3)
     162             :         ZEND_ARG_INFO(0, arg1)
     163             :         ZEND_ARG_INFO(0, arg2)
     164             :         ZEND_ARG_INFO(0, arg3)
     165             : ZEND_END_ARG_INFO()
     166             : 
     167             : ZEND_BEGIN_ARG_INFO_EX(locale_4_args, 0, 0, 4)
     168             :         ZEND_ARG_INFO(0, arg1)
     169             :         ZEND_ARG_INFO(0, arg2)
     170             :         ZEND_ARG_INFO(0, arg3)
     171             :         ZEND_ARG_INFO(0, arg4)
     172             : ZEND_END_ARG_INFO()
     173             : 
     174             : #define intl_0_args collator_static_0_args
     175             : #define intl_1_arg collator_static_1_arg
     176             : 
     177             : ZEND_BEGIN_ARG_INFO_EX(normalizer_args, 0, 0, 1)
     178             :         ZEND_ARG_INFO(0, input)
     179             :         ZEND_ARG_INFO(0, form)
     180             : ZEND_END_ARG_INFO()
     181             : 
     182             : ZEND_BEGIN_ARG_INFO_EX(grapheme_1_arg, 0, 0, 1)
     183             :         ZEND_ARG_INFO(0, string)
     184             : ZEND_END_ARG_INFO()
     185             : 
     186             : ZEND_BEGIN_ARG_INFO_EX(grapheme_search_args, 0, 0, 2)
     187             :         ZEND_ARG_INFO(0, haystack)
     188             :         ZEND_ARG_INFO(0, needle)
     189             :         ZEND_ARG_INFO(0, offset)
     190             : ZEND_END_ARG_INFO()
     191             : 
     192             : ZEND_BEGIN_ARG_INFO_EX(grapheme_substr_args, 0, 0, 2)
     193             :         ZEND_ARG_INFO(0, string)
     194             :         ZEND_ARG_INFO(0, start)
     195             :         ZEND_ARG_INFO(0, length)
     196             : ZEND_END_ARG_INFO()
     197             : 
     198             : ZEND_BEGIN_ARG_INFO_EX(grapheme_strstr_args, 0, 0, 2)
     199             :         ZEND_ARG_INFO(0, haystack)
     200             :         ZEND_ARG_INFO(0, needle)
     201             :         ZEND_ARG_INFO(0, before_needle)
     202             : ZEND_END_ARG_INFO()
     203             : 
     204             : ZEND_BEGIN_ARG_INFO_EX(grapheme_extract_args, 0, 0, 2)
     205             :         ZEND_ARG_INFO(0, arg1)
     206             :         ZEND_ARG_INFO(0, arg2)
     207             :         ZEND_ARG_INFO(0, arg3)
     208             :         ZEND_ARG_INFO(0, arg4)
     209             :         ZEND_ARG_INFO(1, arg5)  /* 1 = pass by reference */
     210             : ZEND_END_ARG_INFO()
     211             : 
     212             : ZEND_BEGIN_ARG_INFO_EX(datefmt_parse_args, 0, 0, 2)
     213             :         ZEND_ARG_INFO(0, formatter)
     214             :         ZEND_ARG_INFO(0, string)
     215             :         ZEND_ARG_INFO(1, position)
     216             : ZEND_END_ARG_INFO()
     217             : 
     218             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_create, 0, 0, 2)
     219             :         ZEND_ARG_INFO(0, locale)
     220             :         ZEND_ARG_INFO(0, style)
     221             :         ZEND_ARG_INFO(0, pattern)
     222             : ZEND_END_ARG_INFO()
     223             : 
     224             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_get_error_code, 0, 0, 1)
     225             :         ZEND_ARG_INFO(0, nf)
     226             : ZEND_END_ARG_INFO()
     227             : 
     228             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_format, 0, 0, 2)
     229             :         ZEND_ARG_INFO(0, nf)
     230             :         ZEND_ARG_INFO(0, num)
     231             :         ZEND_ARG_INFO(0, type)
     232             : ZEND_END_ARG_INFO()
     233             : 
     234             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_format_currency, 0, 0, 3)
     235             :         ZEND_ARG_INFO(0, nf)
     236             :         ZEND_ARG_INFO(0, num)
     237             :         ZEND_ARG_INFO(0, currency)
     238             : ZEND_END_ARG_INFO()
     239             : 
     240             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_get_attribute, 0, 0, 2)
     241             :         ZEND_ARG_INFO(0, nf)
     242             :         ZEND_ARG_INFO(0, attr)
     243             : ZEND_END_ARG_INFO()
     244             : 
     245             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_set_attribute, 0, 0, 3)
     246             :         ZEND_ARG_INFO(0, nf)
     247             :         ZEND_ARG_INFO(0, attr)
     248             :         ZEND_ARG_INFO(0, value)
     249             : ZEND_END_ARG_INFO()
     250             : 
     251             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_set_symbol, 0, 0, 3)
     252             :         ZEND_ARG_INFO(0, nf)
     253             :         ZEND_ARG_INFO(0, attr)
     254             :         ZEND_ARG_INFO(0, symbol)
     255             : ZEND_END_ARG_INFO()
     256             : 
     257             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_set_pattern, 0, 0, 2)
     258             :         ZEND_ARG_INFO(0, nf)
     259             :         ZEND_ARG_INFO(0, pattern)
     260             : ZEND_END_ARG_INFO()
     261             : 
     262             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_get_locale, 0, 0, 1)
     263             :         ZEND_ARG_INFO(0, nf)
     264             :         ZEND_ARG_INFO(0, type)
     265             : ZEND_END_ARG_INFO()
     266             : 
     267             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_create, 0, 0, 2)
     268             :         ZEND_ARG_INFO(0, locale)
     269             :         ZEND_ARG_INFO(0, pattern)
     270             : ZEND_END_ARG_INFO()
     271             : 
     272             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_error_code, 0, 0, 1)
     273             :         ZEND_ARG_INFO(0, nf)
     274             : ZEND_END_ARG_INFO()
     275             : 
     276             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_error_message, 0, 0, 1)
     277             :         ZEND_ARG_INFO(0, coll)
     278             : ZEND_END_ARG_INFO()
     279             : 
     280             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_format, 0, 0, 2)
     281             :         ZEND_ARG_INFO(0, nf)
     282             :         ZEND_ARG_INFO(0, args)
     283             : ZEND_END_ARG_INFO()
     284             : 
     285             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_format_message, 0, 0, 3)
     286             :         ZEND_ARG_INFO(0, locale)
     287             :         ZEND_ARG_INFO(0, pattern)
     288             :         ZEND_ARG_INFO(0, args)
     289             : ZEND_END_ARG_INFO()
     290             : 
     291             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_parse, 0, 0, 2)
     292             :         ZEND_ARG_INFO(0, nf)
     293             :         ZEND_ARG_INFO(0, source)
     294             : ZEND_END_ARG_INFO()
     295             : 
     296             : ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_parse_message, 0, 0, 3)
     297             :         ZEND_ARG_INFO(0, locale)
     298             :         ZEND_ARG_INFO(0, pattern)
     299             :         ZEND_ARG_INFO(0, source)
     300             : ZEND_END_ARG_INFO()
     301             : 
     302             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_set_pattern, 0, 0, 2)
     303             :         ZEND_ARG_INFO(0, mf)
     304             :         ZEND_ARG_INFO(0, pattern)
     305             : ZEND_END_ARG_INFO()
     306             : 
     307             : ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_locale, 0, 0, 1)
     308             :         ZEND_ARG_INFO(0, mf)
     309             : ZEND_END_ARG_INFO()
     310             : 
     311             : ZEND_BEGIN_ARG_INFO_EX(arginfo_datefmt_set_pattern, 0, 0, 2)
     312             :         ZEND_ARG_INFO(0, mf)
     313             :         ZEND_ARG_INFO(0, pattern)
     314             : ZEND_END_ARG_INFO()
     315             : 
     316             : ZEND_BEGIN_ARG_INFO_EX(arginfo_datefmt_set_calendar, 0, 0, 2)
     317             :         ZEND_ARG_INFO(0, mf)
     318             :         ZEND_ARG_INFO(0, calendar)
     319             : ZEND_END_ARG_INFO()
     320             : 
     321             : ZEND_BEGIN_ARG_INFO_EX(arginfo_datefmt_format, 0, 0, 0)
     322             :         ZEND_ARG_INFO(0, args)
     323             :         ZEND_ARG_INFO(0, array)
     324             : ZEND_END_ARG_INFO()
     325             : 
     326             : ZEND_BEGIN_ARG_INFO_EX(arginfo_datefmt_create, 0, 0, 3)
     327             :         ZEND_ARG_INFO(0, locale)
     328             :         ZEND_ARG_INFO(0, date_type)
     329             :         ZEND_ARG_INFO(0, time_type)
     330             :         ZEND_ARG_INFO(0, timezone_str)
     331             :         ZEND_ARG_INFO(0, calendar)
     332             :         ZEND_ARG_INFO(0, pattern)
     333             : ZEND_END_ARG_INFO()
     334             : 
     335             : ZEND_BEGIN_ARG_INFO_EX(arginfo_idn_to_ascii, 0, 0, 1)
     336             :         ZEND_ARG_INFO(0, domain)
     337             :         ZEND_ARG_INFO(0, option)
     338             :         ZEND_ARG_INFO(0, variant)
     339             :         ZEND_ARG_INFO(1, idn_info)
     340             : ZEND_END_ARG_INFO()
     341             : 
     342             : ZEND_BEGIN_ARG_INFO_EX(arginfo_idn_to_utf8, 0, 0, 1)
     343             :         ZEND_ARG_INFO(0, domain)
     344             :         ZEND_ARG_INFO(0, option)
     345             :         ZEND_ARG_INFO(0, variant)
     346             :         ZEND_ARG_INFO(1, idn_info)
     347             : ZEND_END_ARG_INFO()
     348             : 
     349             : ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_create_proc, 0, 0, 2 )
     350             :         ZEND_ARG_INFO( 0, locale )
     351             :         ZEND_ARG_INFO( 0, bundlename )
     352             :         ZEND_ARG_INFO( 0, fallback )
     353             : ZEND_END_ARG_INFO()
     354             : 
     355             : ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_get_proc, 0, 0, 2 )
     356             :     ZEND_ARG_INFO( 0, bundle )
     357             :         ZEND_ARG_INFO( 0, index )
     358             :         ZEND_ARG_INFO( 0, fallback )
     359             : ZEND_END_ARG_INFO()
     360             : 
     361             : ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_count_proc, 0, 0, 1 )
     362             :   ZEND_ARG_INFO( 0, bundle )
     363             : ZEND_END_ARG_INFO()
     364             : 
     365             : ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_locales_proc, 0, 0, 1 )
     366             :         ZEND_ARG_INFO( 0, bundlename )
     367             : ZEND_END_ARG_INFO()
     368             : 
     369             : ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_get_error_code_proc, 0, 0, 1 )
     370             :   ZEND_ARG_INFO( 0, bundle )
     371             : ZEND_END_ARG_INFO()
     372             : 
     373             : ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_get_error_message_proc, 0, 0, 1 )
     374             :   ZEND_ARG_INFO( 0, bundle )
     375             : ZEND_END_ARG_INFO()
     376             : 
     377             : ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_void, 0, 0, 0 )
     378             : ZEND_END_ARG_INFO()
     379             : 
     380             : ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create, 0, 0, 1 )
     381             :         ZEND_ARG_INFO( 0, id )
     382             :         ZEND_ARG_INFO( 0, direction )
     383             : ZEND_END_ARG_INFO()
     384             : 
     385             : ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create_from_rules, 0, 0, 1 )
     386             :         ZEND_ARG_INFO( 0, rules )
     387             :         ZEND_ARG_INFO( 0, direction )
     388             : ZEND_END_ARG_INFO()
     389             : 
     390             : ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create_inverse, 0, 0, 1 )
     391             :         ZEND_ARG_OBJ_INFO( 0, orig_trans, Transliterator, 0 )
     392             : ZEND_END_ARG_INFO()
     393             : 
     394             : ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_transliterate, 0, 0, 2 )
     395             :         ZEND_ARG_INFO( 0, trans )
     396             :         ZEND_ARG_INFO( 0, subject )
     397             :         ZEND_ARG_INFO( 0, start )
     398             :         ZEND_ARG_INFO( 0, end )
     399             : ZEND_END_ARG_INFO()
     400             : 
     401             : ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_error, 0, 0, 1 )
     402             :         ZEND_ARG_OBJ_INFO( 0, trans, Transliterator, 0 )
     403             : ZEND_END_ARG_INFO()
     404             : 
     405             : /* }}} */
     406             : 
     407             : /* {{{ intl_functions
     408             :  *
     409             :  * Every user visible function must have an entry in intl_functions[].
     410             :  */
     411             : zend_function_entry intl_functions[] = {
     412             : 
     413             :         /* collator functions */
     414             :         PHP_FE( collator_create, collator_static_1_arg )
     415             :         PHP_FE( collator_compare, collator_2_args )
     416             :         PHP_FE( collator_get_attribute, collator_1_arg )
     417             :         PHP_FE( collator_set_attribute, collator_2_args )
     418             :         PHP_FE( collator_get_strength, collator_0_args )
     419             :         PHP_FE( collator_set_strength, collator_1_arg )
     420             :         PHP_FE( collator_sort, collator_sort_args )
     421             :         PHP_FE( collator_sort_with_sort_keys, collator_sort_args )
     422             :         PHP_FE( collator_asort, collator_sort_args )
     423             :         PHP_FE( collator_get_locale, collator_1_arg )
     424             :         PHP_FE( collator_get_error_code, collator_0_args )
     425             :         PHP_FE( collator_get_error_message, collator_0_args )
     426             :         PHP_FE( collator_get_sort_key, collator_2_args )
     427             : 
     428             :         /* formatter functions */
     429             :         PHP_FE( numfmt_create, arginfo_numfmt_create )
     430             :         PHP_FE( numfmt_format, arginfo_numfmt_format )
     431             :         PHP_FE( numfmt_parse, numfmt_parse_arginfo )
     432             :         PHP_FE( numfmt_format_currency, arginfo_numfmt_format_currency )
     433             :         PHP_FE( numfmt_parse_currency, numfmt_parse_currency_arginfo )
     434             :         PHP_FE( numfmt_set_attribute, arginfo_numfmt_set_attribute )
     435             :         PHP_FE( numfmt_get_attribute, arginfo_numfmt_get_attribute )
     436             :         PHP_FE( numfmt_set_text_attribute, arginfo_numfmt_set_attribute )
     437             :         PHP_FE( numfmt_get_text_attribute, arginfo_numfmt_get_attribute )
     438             :         PHP_FE( numfmt_set_symbol, arginfo_numfmt_set_symbol )
     439             :         PHP_FE( numfmt_get_symbol, arginfo_numfmt_get_attribute )
     440             :         PHP_FE( numfmt_set_pattern, arginfo_numfmt_set_pattern )
     441             :         PHP_FE( numfmt_get_pattern, arginfo_numfmt_get_error_code )
     442             :         PHP_FE( numfmt_get_locale, arginfo_numfmt_get_locale )
     443             :         PHP_FE( numfmt_get_error_code, arginfo_numfmt_get_error_code )
     444             :         PHP_FE( numfmt_get_error_message, arginfo_numfmt_get_error_code )
     445             : 
     446             :         /* normalizer functions */
     447             :         PHP_FE( normalizer_normalize, normalizer_args )
     448             :         PHP_FE( normalizer_is_normalized, normalizer_args )
     449             : 
     450             :         /* Locale functions */
     451             :         PHP_NAMED_FE( locale_get_default, zif_locale_get_default, locale_0_args )
     452             :         PHP_NAMED_FE( locale_set_default, zif_locale_set_default, locale_1_arg )
     453             :         PHP_FE( locale_get_primary_language, locale_1_arg )
     454             :         PHP_FE( locale_get_script, locale_1_arg )
     455             :         PHP_FE( locale_get_region, locale_1_arg )
     456             :         PHP_FE( locale_get_keywords, locale_1_arg )
     457             :         PHP_FE( locale_get_display_script, locale_2_args )
     458             :         PHP_FE( locale_get_display_region, locale_2_args )
     459             :         PHP_FE( locale_get_display_name, locale_2_args )
     460             :         PHP_FE( locale_get_display_language, locale_2_args)
     461             :         PHP_FE( locale_get_display_variant, locale_2_args )
     462             :         PHP_FE( locale_compose, locale_1_arg )
     463             :         PHP_FE( locale_parse, locale_1_arg )
     464             :         PHP_FE( locale_get_all_variants, locale_1_arg )
     465             :         PHP_FE( locale_filter_matches, locale_3_args )
     466             :         PHP_FE( locale_canonicalize, locale_1_arg )
     467             :         PHP_FE( locale_lookup, locale_4_args )
     468             :         PHP_FE( locale_accept_from_http, locale_1_arg )
     469             : 
     470             :         /* MessageFormatter functions */
     471             :         PHP_FE( msgfmt_create, arginfo_msgfmt_create )
     472             :         PHP_FE( msgfmt_format, arginfo_msgfmt_format )
     473             :         PHP_FE( msgfmt_format_message, arginfo_msgfmt_format_message )
     474             :         PHP_FE( msgfmt_parse, arginfo_msgfmt_parse )
     475             :         PHP_FE( msgfmt_parse_message, arginfo_numfmt_parse_message )
     476             :         PHP_FE( msgfmt_set_pattern, arginfo_msgfmt_set_pattern )
     477             :         PHP_FE( msgfmt_get_pattern, arginfo_msgfmt_get_locale )
     478             :         PHP_FE( msgfmt_get_locale, arginfo_msgfmt_get_locale )
     479             :         PHP_FE( msgfmt_get_error_code, arginfo_msgfmt_get_error_code )
     480             :         PHP_FE( msgfmt_get_error_message, arginfo_msgfmt_get_error_message )
     481             : 
     482             :         /* IntlDateFormatter functions */
     483             :         PHP_FE( datefmt_create, arginfo_datefmt_create )
     484             :         PHP_FE( datefmt_get_datetype, arginfo_msgfmt_get_locale )
     485             :         PHP_FE( datefmt_get_timetype, arginfo_msgfmt_get_locale )
     486             :         PHP_FE( datefmt_get_calendar, arginfo_msgfmt_get_locale )
     487             :         PHP_FE( datefmt_set_calendar, arginfo_datefmt_set_calendar )
     488             :         PHP_FE( datefmt_get_locale, arginfo_msgfmt_get_locale )
     489             :         PHP_FE( datefmt_get_timezone_id, arginfo_msgfmt_get_locale )
     490             :         PHP_FE( datefmt_set_timezone_id, arginfo_msgfmt_get_locale )
     491             :         PHP_FE( datefmt_get_pattern, arginfo_msgfmt_get_locale )
     492             :         PHP_FE( datefmt_set_pattern, arginfo_datefmt_set_pattern )
     493             :         PHP_FE( datefmt_is_lenient, arginfo_msgfmt_get_locale )
     494             :         PHP_FE( datefmt_set_lenient, arginfo_msgfmt_get_locale )
     495             :         PHP_FE( datefmt_format, arginfo_datefmt_format )
     496             :         PHP_FE( datefmt_parse, datefmt_parse_args )
     497             :         PHP_FE( datefmt_localtime , datefmt_parse_args )
     498             :         PHP_FE( datefmt_get_error_code, arginfo_msgfmt_get_error_code )
     499             :         PHP_FE( datefmt_get_error_message, arginfo_msgfmt_get_error_message )
     500             : 
     501             :         /* grapheme functions */
     502             :         PHP_FE( grapheme_strlen, grapheme_1_arg )
     503             :         PHP_FE( grapheme_strpos, grapheme_search_args )
     504             :         PHP_FE( grapheme_stripos, grapheme_search_args )
     505             :         PHP_FE( grapheme_strrpos, grapheme_search_args )
     506             :         PHP_FE( grapheme_strripos, grapheme_search_args )
     507             :         PHP_FE( grapheme_substr, grapheme_substr_args )
     508             :         PHP_FE( grapheme_strstr, grapheme_strstr_args )
     509             :         PHP_FE( grapheme_stristr, grapheme_strstr_args )
     510             :         PHP_FE( grapheme_extract, grapheme_extract_args )
     511             : 
     512             :         /* IDN functions */
     513             :         PHP_FE( idn_to_ascii, arginfo_idn_to_ascii)
     514             :         PHP_FE( idn_to_utf8, arginfo_idn_to_ascii)
     515             : 
     516             :         /* ResourceBundle functions */
     517             :         PHP_FE( resourcebundle_create, arginfo_resourcebundle_create_proc )
     518             :         PHP_FE( resourcebundle_get, arginfo_resourcebundle_get_proc )
     519             :         PHP_FE( resourcebundle_count, arginfo_resourcebundle_count_proc )
     520             :         PHP_FE( resourcebundle_locales, arginfo_resourcebundle_locales_proc )
     521             :         PHP_FE( resourcebundle_get_error_code, arginfo_resourcebundle_get_error_code_proc )
     522             :         PHP_FE( resourcebundle_get_error_message, arginfo_resourcebundle_get_error_message_proc )
     523             :         
     524             :         /* Transliterator functions */
     525             :         PHP_FE( transliterator_create, arginfo_transliterator_create )
     526             :         PHP_FE( transliterator_create_from_rules, arginfo_transliterator_create_from_rules )
     527             :         PHP_FE( transliterator_list_ids, arginfo_transliterator_void )
     528             :         PHP_FE( transliterator_create_inverse, arginfo_transliterator_create_inverse)
     529             :         PHP_FE( transliterator_transliterate, arginfo_transliterator_transliterate )
     530             :         PHP_FE( transliterator_get_error_code, arginfo_transliterator_error )
     531             :         PHP_FE( transliterator_get_error_message, arginfo_transliterator_error )
     532             : 
     533             :         /* common functions */
     534             :         PHP_FE( intl_get_error_code, intl_0_args )
     535             :         PHP_FE( intl_get_error_message, intl_0_args )
     536             :         PHP_FE( intl_is_failure, intl_1_arg )
     537             :         PHP_FE( intl_error_name, intl_1_arg )
     538             : 
     539             :         PHP_FE_END
     540             : };
     541             : /* }}} */
     542             : 
     543             : 
     544             : /* {{{ INI Settings */
     545             : PHP_INI_BEGIN()
     546             :     STD_PHP_INI_ENTRY(LOCALE_INI_NAME, NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_locale, zend_intl_globals, intl_globals)
     547             :     STD_PHP_INI_ENTRY("intl.error_level", "0", PHP_INI_ALL, OnUpdateLong, error_level, zend_intl_globals, intl_globals)
     548             : 
     549             : PHP_INI_END()
     550             : /* }}} */
     551             : 
     552             : 
     553             : static PHP_GINIT_FUNCTION(intl);
     554             : 
     555             : /* {{{ intl_module_entry */
     556             : zend_module_entry intl_module_entry = {
     557             : #if ZEND_MODULE_API_NO >= 20010901
     558             :         STANDARD_MODULE_HEADER,
     559             : #endif
     560             :         "intl",
     561             :         intl_functions,
     562             :         PHP_MINIT( intl ),
     563             :         PHP_MSHUTDOWN( intl ),
     564             :         PHP_RINIT( intl ),
     565             :         PHP_RSHUTDOWN( intl ),
     566             :         PHP_MINFO( intl ),
     567             :         INTL_MODULE_VERSION,
     568             :         PHP_MODULE_GLOBALS(intl),   /* globals descriptor */
     569             :         PHP_GINIT(intl),            /* globals ctor */
     570             :         NULL,                       /* globals dtor */
     571             :         NULL,                       /* post deactivate */
     572             :         STANDARD_MODULE_PROPERTIES_EX
     573             : };
     574             : /* }}} */
     575             : 
     576             : #ifdef COMPILE_DL_INTL
     577             : ZEND_GET_MODULE( intl )
     578             : #endif
     579             : 
     580             : /* {{{ intl_init_globals */
     581       20225 : static PHP_GINIT_FUNCTION(intl)
     582             : {
     583       20225 :         memset( intl_globals, 0, sizeof(zend_intl_globals) );
     584       20225 : }
     585             : /* }}} */
     586             : 
     587             : /* {{{ PHP_MINIT_FUNCTION
     588             :  */
     589       20225 : PHP_MINIT_FUNCTION( intl )
     590             : {
     591             :         /* For the default locale php.ini setting */
     592       20225 :         REGISTER_INI_ENTRIES();
     593             : 
     594       20225 :         REGISTER_LONG_CONSTANT("INTL_MAX_LOCALE_LEN", INTL_MAX_LOCALE_LEN, CONST_CS);
     595       20225 :         REGISTER_STRING_CONSTANT("INTL_ICU_VERSION", U_ICU_VERSION, CONST_PERSISTENT | CONST_CS);
     596             : #ifdef U_ICU_DATA_VERSION
     597             :         REGISTER_STRING_CONSTANT("INTL_ICU_DATA_VERSION", U_ICU_DATA_VERSION, CONST_PERSISTENT | CONST_CS);
     598             : #endif  
     599             : 
     600             :         /* Register 'Collator' PHP class */
     601       20225 :         collator_register_Collator_class( TSRMLS_C );
     602             : 
     603             :         /* Expose Collator constants to PHP scripts */
     604       20225 :         collator_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     605             : 
     606             :         /* Register 'NumberFormatter' PHP class */
     607       20225 :         formatter_register_class( TSRMLS_C );
     608             : 
     609             :         /* Expose NumberFormatter constants to PHP scripts */
     610       20225 :         formatter_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     611             : 
     612             :         /* Register 'Normalizer' PHP class */
     613       20225 :         normalizer_register_Normalizer_class( TSRMLS_C );
     614             : 
     615             :         /* Expose Normalizer constants to PHP scripts */
     616       20225 :         normalizer_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     617             : 
     618             :         /* Register 'Locale' PHP class */
     619       20225 :         locale_register_Locale_class( TSRMLS_C );
     620             : 
     621             :         /* Expose Locale constants to PHP scripts */
     622       20225 :         locale_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     623             : 
     624       20225 :         msgformat_register_class(TSRMLS_C);
     625             : 
     626       20225 :         grapheme_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     627             : 
     628             :         /* Register 'DateFormat' PHP class */
     629       20225 :         dateformat_register_IntlDateFormatter_class( TSRMLS_C );
     630             : 
     631             :         /* Expose DateFormat constants to PHP scripts */
     632       20225 :         dateformat_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     633             : 
     634             :         /* Register 'ResourceBundle' PHP class */
     635       20225 :         resourcebundle_register_class( TSRMLS_C);
     636             : 
     637             :         /* Register 'Transliterator' PHP class */
     638       20225 :         transliterator_register_Transliterator_class( TSRMLS_C );
     639             : 
     640             :         /* Register Transliterator constants */
     641       20225 :         transliterator_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     642             : 
     643             :         /* Expose ICU error codes to PHP scripts. */
     644       20225 :         intl_expose_icu_error_codes( INIT_FUNC_ARGS_PASSTHRU );
     645             : 
     646             :         /* Expose IDN constants to PHP scripts. */
     647       20225 :         idn_register_constants(INIT_FUNC_ARGS_PASSTHRU);
     648             : 
     649             : #if U_ICU_VERSION_MAJOR_NUM * 1000 + U_ICU_VERSION_MINOR_NUM >= 4002
     650             :         /* Register 'Spoofchecker' PHP class */
     651       20225 :         spoofchecker_register_Spoofchecker_class( TSRMLS_C );
     652             : 
     653             :         /* Expose Spoofchecker constants to PHP scripts */
     654       20225 :         spoofchecker_register_constants( INIT_FUNC_ARGS_PASSTHRU );
     655             : #endif
     656             :         /* Global error handling. */
     657       20225 :         intl_error_init( NULL TSRMLS_CC );
     658             : 
     659             :         /* Set the default_locale value */
     660       20225 :         if( INTL_G(default_locale) == NULL ) {
     661       20223 :                 INTL_G(default_locale) = pestrdup(uloc_getDefault(), 1) ;
     662             :         }
     663             : 
     664       20225 :         return SUCCESS;
     665             : }
     666             : /* }}} */
     667             : 
     668             : /* {{{ PHP_MSHUTDOWN_FUNCTION
     669             :  */
     670       20261 : PHP_MSHUTDOWN_FUNCTION( intl )
     671             : {
     672             :     /* For the default locale php.ini setting */
     673       20261 :     UNREGISTER_INI_ENTRIES();
     674             : 
     675       20261 :     return SUCCESS;
     676             : }
     677             : /* }}} */
     678             : 
     679             : /* {{{ PHP_RINIT_FUNCTION
     680             :  */
     681       20182 : PHP_RINIT_FUNCTION( intl )
     682             : {
     683             :         /* Set the default_locale value */
     684       20182 :     if( INTL_G(default_locale) == NULL ) {
     685           0 :         INTL_G(default_locale) = pestrdup(uloc_getDefault(), 1) ;
     686             :     }
     687       20182 :         return SUCCESS;
     688             : }
     689             : /* }}} */
     690             : 
     691             : /* {{{ PHP_RSHUTDOWN_FUNCTION
     692             :  */
     693       20220 : PHP_RSHUTDOWN_FUNCTION( intl )
     694             : {
     695       20220 :         if(INTL_G(current_collator)) {
     696           1 :                 INTL_G(current_collator) = NULL;
     697             :         }
     698       20220 :         if (INTL_G(grapheme_iterator)) {
     699           4 :                 grapheme_close_global_iterator( TSRMLS_C );
     700           4 :                 INTL_G(grapheme_iterator) = NULL;
     701             :         }
     702             : 
     703       20220 :         intl_error_reset( NULL TSRMLS_CC);
     704       20220 :         return SUCCESS;
     705             : }
     706             : /* }}} */
     707             : 
     708             : /* {{{ PHP_MINFO_FUNCTION
     709             :  */
     710         148 : PHP_MINFO_FUNCTION( intl )
     711             : {
     712         148 :         php_info_print_table_start();
     713         148 :         php_info_print_table_header( 2, "Internationalization support", "enabled" );
     714         148 :         php_info_print_table_row( 2, "version", INTL_MODULE_VERSION );
     715         148 :         php_info_print_table_row( 2, "ICU version", U_ICU_VERSION );
     716             : #ifdef U_ICU_DATA_VERSION
     717             :         php_info_print_table_row( 2, "ICU Data version", U_ICU_DATA_VERSION );
     718             : #endif
     719         148 :         php_info_print_table_end();
     720             : 
     721             :     /* For the default locale php.ini setting */
     722         148 :     DISPLAY_INI_ENTRIES() ;
     723         148 : }
     724             : /* }}} */
     725             : 
     726             : /*
     727             :  * Local variables:
     728             :  * tab-width: 4
     729             :  * c-basic-offset: 4
     730             :  * End:
     731             :  * vim600: noet sw=4 ts=4 fdm=marker
     732             :  * vim<600: noet sw=4 ts=4
     733             :  */

Generated by: LCOV version 1.10

Generated at Sat, 13 Sep 2014 16:24:26 +0000 (6 days ago)

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