stas Thu Jul 10 21:58:02 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/intl php_intl.c
/php-src/ext/intl/dateformat dateformat_class.c dateformat_parse.c
/php-src/ext/intl/tests dateformat_localtime.phpt
dateformat_parse.phpt ut_common.inc
Log:
fix date formatter positions (bug #14263)
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/php_intl.c?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/intl/php_intl.c
diff -u php-src/ext/intl/php_intl.c:1.1.2.1 php-src/ext/intl/php_intl.c:1.1.2.2
--- php-src/ext/intl/php_intl.c:1.1.2.1 Mon Jul 7 22:51:02 2008
+++ php-src/ext/intl/php_intl.c Thu Jul 10 21:58:02 2008
@@ -210,6 +210,12 @@
ZEND_ARG_INFO( 1, arg5 ) /* 1 = pass by reference */
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO_EX( datefmt_parse_args, 0, 0, 2 )
+ ZEND_ARG_INFO( 0, formatter )
+ ZEND_ARG_INFO( 0, string )
+ ZEND_ARG_INFO( 1, position )
+ZEND_END_ARG_INFO()
+
/* }}} */
/* {{{ intl_functions
@@ -299,8 +305,8 @@
PHP_FE( datefmt_is_lenient, NULL )
PHP_FE( datefmt_set_lenient, NULL )
PHP_FE( datefmt_format, NULL )
- PHP_FE( datefmt_parse, NULL )
- PHP_FE( datefmt_localtime , NULL )
+ PHP_FE( datefmt_parse, datefmt_parse_args )
+ PHP_FE( datefmt_localtime , datefmt_parse_args )
PHP_FE( datefmt_get_error_code, NULL )
PHP_FE( datefmt_get_error_message, NULL )
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/dateformat/dateformat_class.c?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/intl/dateformat/dateformat_class.c
diff -u php-src/ext/intl/dateformat/dateformat_class.c:1.1.2.1
php-src/ext/intl/dateformat/dateformat_class.c:1.1.2.2
--- php-src/ext/intl/dateformat/dateformat_class.c:1.1.2.1 Mon Jul 7
23:10:15 2008
+++ php-src/ext/intl/dateformat/dateformat_class.c Thu Jul 10 21:58:02 2008
@@ -86,6 +86,10 @@
/* {{{ IntlDateFormatter_class_functions
* Every 'IntlDateFormatter' class method has an entry in this table
*/
+static ZEND_BEGIN_ARG_INFO_EX( datefmt_parse_args, 0, 0, 1 )
+ ZEND_ARG_INFO( 0, string )
+ ZEND_ARG_INFO( 1, position )
+ZEND_END_ARG_INFO()
static function_entry IntlDateFormatter_class_functions[] = {
PHP_ME( IntlDateFormatter, __construct, NULL,
ZEND_ACC_PUBLIC|ZEND_ACC_CTOR )
@@ -102,8 +106,8 @@
PHP_NAMED_FE( setLenient, ZEND_FN( datefmt_set_lenient ), NULL )
PHP_NAMED_FE( isLenient, ZEND_FN( datefmt_is_lenient ), NULL )
PHP_NAMED_FE( format, ZEND_FN( datefmt_format ), NULL )
- PHP_NAMED_FE( parse, ZEND_FN( datefmt_parse), NULL )
- PHP_NAMED_FE( localtime, ZEND_FN( datefmt_localtime ), NULL )
+ PHP_NAMED_FE( parse, ZEND_FN( datefmt_parse), datefmt_parse_args )
+ PHP_NAMED_FE( localtime, ZEND_FN( datefmt_localtime ),
datefmt_parse_args )
PHP_NAMED_FE( getErrorCode, ZEND_FN( datefmt_get_error_code ), NULL )
PHP_NAMED_FE( getErrorMessage, ZEND_FN( datefmt_get_error_message ),
NULL )
{ NULL, NULL, NULL }
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/dateformat/dateformat_parse.c?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/intl/dateformat/dateformat_parse.c
diff -u php-src/ext/intl/dateformat/dateformat_parse.c:1.1.2.1
php-src/ext/intl/dateformat/dateformat_parse.c:1.1.2.2
--- php-src/ext/intl/dateformat/dateformat_parse.c:1.1.2.1 Mon Jul 7
23:10:15 2008
+++ php-src/ext/intl/dateformat/dateformat_parse.c Thu Jul 10 21:58:02 2008
@@ -33,7 +33,7 @@
* if set to 1 - store any error encountered in the parameter parse_error
* if set to 0 - no need to store any error encountered in the parameter
parse_error
*/
-static void internal_parse_to_timestamp(IntlDateFormatter_object *mfo, char*
text_to_parse , int32_t text_len, int parse_pos , zval *return_value TSRMLS_DC){
+static void internal_parse_to_timestamp(IntlDateFormatter_object *mfo, char*
text_to_parse , int32_t text_len, int32_t *parse_pos , zval *return_value
TSRMLS_DC){
long result = 0;
UDate timestamp =0;
UChar* text_utf16 = NULL;
@@ -43,7 +43,7 @@
intl_convert_utf8_to_utf16(&text_utf16 , &text_utf16_len ,
text_to_parse , text_len, &INTL_DATA_ERROR_CODE(mfo));
INTL_METHOD_CHECK_STATUS(mfo, "Error converting timezone to UTF-16" );
- timestamp = udat_parse( DATE_FORMAT_OBJECT(mfo), text_utf16 ,
text_utf16_len , &parse_pos , &INTL_DATA_ERROR_CODE(mfo));
+ timestamp = udat_parse( DATE_FORMAT_OBJECT(mfo), text_utf16 ,
text_utf16_len , parse_pos , &INTL_DATA_ERROR_CODE(mfo));
if( text_utf16 ){
efree(text_utf16);
}
@@ -78,7 +78,7 @@
/* {{{
* Internal function which calls the udat_parseCalendar
*/
-static void internal_parse_to_localtime(IntlDateFormatter_object *mfo, char*
text_to_parse , int32_t text_len, int parse_pos , zval *return_value TSRMLS_DC){
+static void internal_parse_to_localtime(IntlDateFormatter_object *mfo, char*
text_to_parse , int32_t text_len, int32_t *parse_pos , zval *return_value
TSRMLS_DC){
UCalendar* parsed_calendar = NULL ;
UChar* text_utf16 = NULL;
int32_t text_utf16_len = 0;
@@ -89,7 +89,7 @@
INTL_METHOD_CHECK_STATUS(mfo, "Error converting timezone to UTF-16" );
parsed_calendar = ucal_open(NULL, -1, NULL, UCAL_GREGORIAN,
&INTL_DATA_ERROR_CODE(mfo));
- udat_parseCalendar( DATE_FORMAT_OBJECT(mfo), parsed_calendar ,
text_utf16 , text_utf16_len , &parse_pos , &INTL_DATA_ERROR_CODE(mfo));
+ udat_parseCalendar( DATE_FORMAT_OBJECT(mfo), parsed_calendar ,
text_utf16 , text_utf16_len , parse_pos , &INTL_DATA_ERROR_CODE(mfo));
if( text_utf16 ){
efree(text_utf16);
}
@@ -116,66 +116,84 @@
/* }}} */
-/* {{{ proto integer IntlDateFormatter::parse( string $text_to_parse , int
$parse_pos )
+/* {{{ proto integer IntlDateFormatter::parse( string $text_to_parse [, int
$parse_pos] )
* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}*/
-/* {{{ proto integer datefmt_parse( IntlDateFormatter $fmt, string
$text_to_parse , int $parse_pos )
+/* {{{ proto integer datefmt_parse( IntlDateFormatter $fmt, string
$text_to_parse [, int $parse_pos] )
* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}*/
PHP_FUNCTION(datefmt_parse)
{
char* text_to_parse = NULL;
int32_t text_len =0;
- long parse_pos =0;
+ zval* z_parse_pos = NULL;
+ int32_t parse_pos = -1;
DATE_FORMAT_METHOD_INIT_VARS;
// Parse parameters.
- if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC,
getThis(), "Os|l",
- &object, IntlDateFormatter_ce_ptr, &text_to_parse ,
&text_len , &parse_pos ) == FAILURE ){
+ if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC,
getThis(), "Os|z!",
+ &object, IntlDateFormatter_ce_ptr, &text_to_parse ,
&text_len , &z_parse_pos ) == FAILURE ){
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"datefmt_parse: unable to parse input params",
0 TSRMLS_CC );
RETURN_FALSE;
}
- // Fetch the object.
- DATE_FORMAT_METHOD_FETCH_OBJECT;
-
- internal_parse_to_timestamp( mfo, text_to_parse , text_len ,
- parse_pos ,
- return_value TSRMLS_CC);
+ // Fetch the object.
+ DATE_FORMAT_METHOD_FETCH_OBJECT;
+ if(z_parse_pos) {
+ convert_to_long(z_parse_pos);
+ parse_pos = (int32_t)Z_LVAL_P(z_parse_pos);
+ if(parse_pos > text_len) {
+ RETURN_FALSE;
+ }
+ }
+ internal_parse_to_timestamp( mfo, text_to_parse, text_len,
z_parse_pos?&parse_pos:NULL, return_value TSRMLS_CC);
+ if(z_parse_pos) {
+ zval_dtor(z_parse_pos);
+ ZVAL_LONG(z_parse_pos, parse_pos);
+ }
}
/* }}} */
-/* {{{ proto integer IntlDateFormatter::localtime( string $text_to_parse, int
$parse_pos )
+/* {{{ proto integer IntlDateFormatter::localtime( string $text_to_parse[, int
$parse_pos] )
* Parse the string $value to a localtime array }}}*/
-/* {{{ proto integer datefmt_localtime( IntlDateFormatter $fmt, string
$text_to_parse, int $parse_pos )
+/* {{{ proto integer datefmt_localtime( IntlDateFormatter $fmt, string
$text_to_parse[, int $parse_pos ])
* Parse the string $value to a localtime array }}}*/
PHP_FUNCTION(datefmt_localtime)
{
char* text_to_parse = NULL;
int32_t text_len =0;
- long parse_pos =0;
+ zval* z_parse_pos = NULL;
+ int32_t parse_pos = -1;
DATE_FORMAT_METHOD_INIT_VARS;
// Parse parameters.
- if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(),
"Osl",
- &object, IntlDateFormatter_ce_ptr, &text_to_parse ,
&text_len , &parse_pos ) == FAILURE ){
+ if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(),
"Os|z!",
+ &object, IntlDateFormatter_ce_ptr, &text_to_parse ,
&text_len , &z_parse_pos ) == FAILURE ){
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"datefmt_parse_to_localtime: unable to parse
input params", 0 TSRMLS_CC );
RETURN_FALSE;
}
- // Fetch the object.
- DATE_FORMAT_METHOD_FETCH_OBJECT;
-
- internal_parse_to_localtime( mfo, text_to_parse , text_len ,
- parse_pos,
- return_value TSRMLS_CC);
+ // Fetch the object.
+ DATE_FORMAT_METHOD_FETCH_OBJECT;
+ if(z_parse_pos) {
+ convert_to_long(z_parse_pos);
+ parse_pos = (int32_t)Z_LVAL_P(z_parse_pos);
+ if(parse_pos > text_len) {
+ RETURN_FALSE;
+ }
+ }
+ internal_parse_to_localtime( mfo, text_to_parse , text_len ,
z_parse_pos?&parse_pos:NULL, return_value TSRMLS_CC);
+ if(z_parse_pos) {
+ zval_dtor(z_parse_pos);
+ ZVAL_LONG(z_parse_pos, parse_pos);
+ }
}
/* }}} */
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/tests/dateformat_localtime.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/intl/tests/dateformat_localtime.phpt
diff -u php-src/ext/intl/tests/dateformat_localtime.phpt:1.1.2.1
php-src/ext/intl/tests/dateformat_localtime.phpt:1.1.2.2
--- php-src/ext/intl/tests/dateformat_localtime.phpt:1.1.2.1 Mon Jul 7
22:51:04 2008
+++ php-src/ext/intl/tests/dateformat_localtime.phpt Thu Jul 10 21:58:02 2008
@@ -59,11 +59,11 @@
$res_str .= "\nInput text is : $text_entry";
$cnt =0;
- $parse_pos = 0;
foreach( $fmt_array as $fmt_entry ){
$res_str .= "\n------------";
$res_str .= "\nIntlDateFormatter :
".$fmt_desc_array[$cnt];
+ $parse_pos = 0;
$cnt++;
$parsed_arr = ut_datefmt_localtime( $fmt_entry ,
$text_entry , $parse_pos );
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/tests/dateformat_parse.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/intl/tests/dateformat_parse.phpt
diff -u php-src/ext/intl/tests/dateformat_parse.phpt:1.1.2.1
php-src/ext/intl/tests/dateformat_parse.phpt:1.1.2.2
--- php-src/ext/intl/tests/dateformat_parse.phpt:1.1.2.1 Mon Jul 7
22:51:04 2008
+++ php-src/ext/intl/tests/dateformat_parse.phpt Thu Jul 10 21:58:02 2008
@@ -38,13 +38,16 @@
);
$parse_pos = 0;
- foreach( $text_arr as $text_entry){
- for ( $parse_pos = 0 ; $parse_pos < strlen($text_entry) ;
$parse_pos++ ){
$fmt = ut_datefmt_create( 'en_US_CA',
IntlDateFormatter::NONE, IntlDateFormatter::SHORT);
+ foreach( $text_arr as $text_entry){
+ for ( $parse_pos = 0 ; $parse_pos< strlen($text_entry) ;
$parse_pos++ ){
+ $i = $parse_pos;
$parsed = ut_datefmt_parse( $fmt , $text_entry
, $parse_pos );
if( intl_get_error_code() == U_ZERO_ERROR){
$res_str .= "\nInput text :$text_entry
; Parsed text : $parsed";
- $res_str .= " ; parse_pos : $parse_pos";
+ $res_str .= " ; parse_pos : $i
$parse_pos";
+ } else {
+ $parse_pos = $i;
}
/*
else{
@@ -65,18 +68,10 @@
ut_run();
?>
--EXPECT--
-Input text :Sunday, September 18, 2039 4:06:40 PM PT ; Parsed text : 96000 ;
parse_pos : 29
-Input text :Sunday, September 18, 2039 4:06:40 PM PT ; Parsed text : 96000 ;
parse_pos : 30
-Input text :Wednesday, December 17, 1969 6:40:00 PM PT ; Parsed text : 216000
; parse_pos : 31
-Input text :Wednesday, December 17, 1969 6:40:00 PM PT ; Parsed text : 72000 ;
parse_pos : 32
-Input text :Thursday, December 18, 1969 8:49:59 AM PST ; Parsed text : 208740
; parse_pos : 30
-Input text :Thursday, December 18, 1969 8:49:59 AM PST ; Parsed text : 64740 ;
parse_pos : 31
-Input text :Thursday, December 18, 1969 8:49:59 PM PST ; Parsed text : 251940
; parse_pos : 30
-Input text :Thursday, December 18, 1969 8:49:59 PM PST ; Parsed text : 107940
; parse_pos : 31
-Input text :December 18, 1969 8:49:59 AM PST ; Parsed text : 208740 ;
parse_pos : 20
-Input text :December 18, 1969 8:49:59 AM PST ; Parsed text : 64740 ; parse_pos
: 21
-Input text :12/18/69 8:49 AM ; Parsed text : 60540 ; parse_pos : 8
-Input text :12/18/69 8:49 AM ; Parsed text : 60540 ; parse_pos : 9
-Input text :19691218 08:49 AM ; Parsed text : 60540 ; parse_pos : 8
-Input text :19691218 08:49 AM ; Parsed text : 60540 ; parse_pos : 9
-Input text :19691218 08:49 AM ; Parsed text : 60540 ; parse_pos : 10
+Input text :Sunday, September 18, 2039 4:06:40 PM PT ; Parsed text : 96000 ;
parse_pos : 29 37
+Input text :Wednesday, December 17, 1969 6:40:00 PM PT ; Parsed text : 216000
; parse_pos : 31 39
+Input text :Thursday, December 18, 1969 8:49:59 AM PST ; Parsed text : 208740
; parse_pos : 30 38
+Input text :Thursday, December 18, 1969 8:49:59 PM PST ; Parsed text : 251940
; parse_pos : 30 38
+Input text :December 18, 1969 8:49:59 AM PST ; Parsed text : 208740 ;
parse_pos : 20 28
+Input text :12/18/69 8:49 AM ; Parsed text : 60540 ; parse_pos : 8 16
+Input text :19691218 08:49 AM ; Parsed text : 60540 ; parse_pos : 8 17
http://cvs.php.net/viewvc.cgi/php-src/ext/intl/tests/ut_common.inc?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/intl/tests/ut_common.inc
diff -u php-src/ext/intl/tests/ut_common.inc:1.1.2.1
php-src/ext/intl/tests/ut_common.inc:1.1.2.2
--- php-src/ext/intl/tests/ut_common.inc:1.1.2.1 Mon Jul 7 22:51:04 2008
+++ php-src/ext/intl/tests/ut_common.inc Thu Jul 10 21:58:02 2008
@@ -1,385 +1,385 @@
-<?php
-/*
- * Run unit test in OO- and in procedural mode.
- * Then compare the outputs.
- * It they're equal then show one of them.
- * Otherwise indicate an error.
- */
-function ut_run()
-{
- // Run unit test in OO mode.
- $GLOBALS['oo-mode'] = true;
- $oo_result = ut_main();
-
- // Run unit test in procedural mode.
- $GLOBALS['oo-mode'] = false;
- $proc_result = ut_main();
-
- // Show error if the APIs produce different results.
- if( $proc_result !== $oo_result )
- {
- echo "ERROR: OO- and procedural APIs produce different results!\n";
- echo "OO API output:\n";
- echo str_repeat( '=', 78 ) . "\n";
- echo $oo_result;
- echo str_repeat( '=', 78 ) . "\n";
- echo "procedural API output:\n";
- echo str_repeat( '=', 78 ) . "\n";
- echo $proc_result;
- echo str_repeat( '=', 78 ) . "\n";
- return;
- }
-
- // Else, if the results are equal, show one of them.
- echo $proc_result;
-}
-
-function dump( $val )
-{
- return var_export( $val, true );
-}
-
-/*
- * Wrappers around Collator methods to run them in either OO- or procedural
mode.
- */
-
-function ut_coll_create( $locale )
-{
- return $GLOBALS['oo-mode'] ? Collator::create( $locale ) :
collator_create( $locale );
-}
-function ut_coll_compare( $coll, $str1, $str2 )
-{
- return $GLOBALS['oo-mode'] ? $coll->compare( $str1, $str2 ) :
collator_compare( $coll, $str1, $str2 );
-}
-function ut_coll_sort( $coll, &$arr, $sort_flag = Collator::SORT_REGULAR )
-{
- return $GLOBALS['oo-mode'] ? $coll->sort( $arr, $sort_flag ) :
collator_sort( $coll, $arr, $sort_flag );
-}
-function ut_coll_sort_with_sort_keys( $coll, &$arr )
-{
- return $GLOBALS['oo-mode'] ? $coll->sortWithSortKeys( $arr ) :
collator_sort_with_sort_keys( $coll, $arr );
-}
-function ut_coll_asort( $coll, &$arr, $sort_flag = Collator::SORT_REGULAR )
-{
- return $GLOBALS['oo-mode'] ? $coll->asort( $arr, $sort_flag ) :
collator_asort( $coll, $arr, $sort_flag );
-}
-function ut_coll_get_locale( $coll, $type )
-{
- return $GLOBALS['oo-mode'] ? $coll->getLocale( $type ) :
collator_get_locale( $coll, $type );
-}
-function ut_coll_get_display_name( $obj_loc, $disp_loc )
-{
- return $GLOBALS['oo-mode'] ? Collator::getDisplayName( $obj_loc, $disp_loc
) : collator_get_display_name( $obj_loc, $disp_loc );
-}
-function ut_coll_get_available_locales()
-{
- return $GLOBALS['oo-mode'] ? Collator::getAvailableLocales() :
collator_get_available_locales();
-}
-function ut_coll_get_attribute( $coll, $attr )
-{
- return $GLOBALS['oo-mode'] ? $coll->getAttribute( $attr ) :
collator_get_attribute( $coll, $attr );
-}
-function ut_coll_get_strength( $coll )
-{
- return $GLOBALS['oo-mode'] ? $coll->getStrength() : collator_get_strength(
$coll );
-}
-function ut_coll_set_strength( $coll, $strength )
-{
- return $GLOBALS['oo-mode'] ? $coll->setStrength( $strength ) :
collator_set_strength( $coll, $strength );
-}
-function ut_coll_set_attribute( $coll, $attr, $val )
-{
- return $GLOBALS['oo-mode'] ? $coll->setAttribute( $attr, $val ) :
collator_set_attribute( $coll, $attr, $val );
-}
-function ut_coll_get_variable_top( $coll )
-{
- return $GLOBALS['oo-mode'] ? $coll->getVariableTop() :
collator_get_variable_top( $coll );
-}
-function ut_coll_set_variable_top( $coll, $var_top )
-{
- return $GLOBALS['oo-mode'] ? $coll->setVariableTop( $var_top ) :
collator_set_variable_top( $coll, $var_top );
-}
-function ut_coll_restore_variable_top( $coll, $var_top )
-{
- return $GLOBALS['oo-mode'] ? $coll->restoreVariableTop( $var_top ) :
collator_restore_variable_top( $coll, $var_top );
-}
-function ut_coll_get_error_code( $coll )
-{
- return $GLOBALS['oo-mode'] ? $coll->getErrorCode() :
collator_get_error_code( $coll );
-}
-function ut_coll_get_error_message( $coll )
-{
- return $GLOBALS['oo-mode'] ? $coll->getErrorMessage() :
collator_get_error_message( $coll );
-}
-function ut_coll_get_default()
-{
- return $GLOBALS['oo-mode'] ? Collator::getDefault() :
collator_get_default();
-}
-function ut_coll_set_default( $coll )
-{
- return $GLOBALS['oo-mode'] ? Collator::setDefault( $coll ) :
collator_set_default( $coll );
-}
-
-/*
- * Wrappers around NumberFormatter methods to run them in either OO- or
procedural mode.
- */
-
-// FIXME: incomplete list
-
-function ut_nfmt_create( $locale, $style, $pattern = null )
-{
- return $GLOBALS['oo-mode'] ? new NumberFormatter( $locale, $style,
$pattern ) : numfmt_create( $locale, $style, $pattern );
-}
-function ut_nfmt_format( $fmt, $number, $type = null )
-{
- return $GLOBALS['oo-mode'] ? $fmt->format( $number, $type ) :
numfmt_format( $fmt, $number, $type );
-}
-function ut_nfmt_parse( $fmt, $string, $type = NumberFormatter::TYPE_DOUBLE,
&$position = null )
-{
- if(is_null($position)) {
- return $GLOBALS['oo-mode'] ? $fmt->parse( $string, $type ) : numfmt_parse(
$fmt, $string, $type );
- } else {
- return $GLOBALS['oo-mode'] ? $fmt->parse( $string, $type, $position ) :
numfmt_parse( $fmt, $string, $type, $position );
- }
-}
-function ut_nfmt_format_currency( $fmt, $number, $currency )
-{
- return $GLOBALS['oo-mode'] ? $fmt->formatCurrency( $number, $currency ) :
numfmt_format_currency( $fmt, $number, $currency );
-}
-function ut_nfmt_parse_currency( $fmt, $string, &$currency, &$position = null )
-{
- if(is_null($position)) {
- return $GLOBALS['oo-mode'] ? $fmt->parseCurrency( $string, $currency ) :
numfmt_parse_currency( $fmt, $string, $currency );
- } else {
- return $GLOBALS['oo-mode'] ? $fmt->parseCurrency( $string, $currency,
$position ) : numfmt_parse_currency( $fmt, $string, $currency, $position );
- }
-}
-function ut_nfmt_set_attribute( $fmt, $attribute, $value )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setAttribute( $attribute, $value ) :
numfmt_set_attribute( $fmt, $attribute, $value );
-}
-function ut_nfmt_set_text_attribute( $fmt, $attribute, $value )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setTextAttribute( $attribute, $value )
: numfmt_set_text_attribute( $fmt, $attribute, $value );
-}
-function ut_nfmt_set_symbol( $fmt, $attribute, $value )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setSymbol( $attribute, $value ) :
numfmt_set_symbol( $fmt, $attribute, $value );
-}
-function ut_nfmt_set_pattern( $fmt, $pattern )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) :
numfmt_set_pattern( $fmt, $pattern );
-}
-function ut_nfmt_get_attribute( $fmt, $attribute )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getAttribute( $attribute ) :
numfmt_get_attribute( $fmt, $attribute );
-}
-function ut_nfmt_get_text_attribute( $fmt, $attribute )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getTextAttribute( $attribute ) :
numfmt_get_text_attribute( $fmt, $attribute );
-}
-function ut_nfmt_get_symbol( $fmt, $attribute )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getSymbol( $attribute ) :
numfmt_get_symbol( $fmt, $attribute );
-}
-function ut_nfmt_get_pattern( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getPattern() : numfmt_get_pattern( $fmt
);
-}
-function ut_nfmt_get_locale( $fmt, $type = 0 )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getLocale( $type ) : numfmt_get_locale(
$fmt, $type );
-}
-function ut_nfmt_get_error_code( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getErrorCode() : numfmt_get_error_code(
$fmt );
-}
-function ut_nfmt_get_error_message( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getErrorMessage() :
numfmt_get_error_message( $fmt );
-}
-
-function ut_norm_normalize( $str, $form )
-{
- return $GLOBALS['oo-mode'] ? Normalizer::normalize( $str, $form ) :
normalizer_normalize( $str, $form );
-}
-function ut_norm_is_normalized( $str, $form )
-{
- return $GLOBALS['oo-mode'] ? Normalizer::isNormalized( $str, $form ) :
normalizer_is_normalized( $str, $form );
-}
-
-/*
- * Wrappers around Collator methods to run them in either OO- or procedural
mode.
- */
-
-function ut_loc_get_default( )
-{
- return $GLOBALS['oo-mode'] ? Locale::getDefault( ) : locale_get_default();
-}
-function ut_loc_set_default( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::setDefault( $locale ) :
locale_set_default( $locale );
-}
-function ut_loc_get_primary_language( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getPrimaryLanguage( $locale ) :
locale_get_primary_language( $locale );
-}
-function ut_loc_get_script( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getScript( $locale ) :
locale_get_script( $locale );
-}
-function ut_loc_get_region( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getRegion( $locale ) :
locale_get_region( $locale );
-}
-function ut_loc_get_keywords( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getKeywords( $locale ) :
locale_get_keywords( $locale );
-}
-function ut_loc_get_display_name( $locale , $dispLocale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getDisplayName( $locale , $dispLocale
) : locale_get_display_name( $locale , $dispLocale );
-}
-function ut_loc_get_display_language( $locale , $dispLocale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getDisplayLanguage( $locale ,
$dispLocale ) : locale_get_display_language( $locale , $dispLocale );
-}
-function ut_loc_get_display_script( $locale , $dispLocale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getDisplayScript( $locale ,
$dispLocale ) : locale_get_display_script( $locale , $dispLocale );
-}
-function ut_loc_get_display_region( $locale, $dispLocale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getDisplayRegion( $locale,
$dispLocale ) : locale_get_display_region( $locale, $dispLocale );
-}
-function ut_loc_get_display_variant( $locale , $dispLocale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getDisplayVariant( $locale ,
$dispLocale ) : locale_get_display_variant( $locale, $dispLocale );
-}
-function ut_loc_locale_compose( $loc_parts_arr )
-{
- return $GLOBALS['oo-mode'] ? Locale::composeLocale( $loc_parts_arr ) :
locale_compose( $loc_parts_arr );
-}
-function ut_loc_locale_parse( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::parseLocale( $locale ) :
locale_parse($locale );
-}
-function ut_loc_locale_get_all_variants( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::getAllVariants( $locale ) :
locale_get_all_variants( $locale );
-}
-function ut_loc_locale_filter_matches( $lang_tag,$loc_range ,$isCanonical)
-{
- return $GLOBALS['oo-mode'] ? Locale::filterMatches( $lang_tag,$loc_range
,$isCanonical) : locale_filter_matches( $lang_tag,$loc_range ,$isCanonical);
-}
-function ut_loc_canonicalize( $locale )
-{
- return $GLOBALS['oo-mode'] ? Locale::canonicalize( $locale ) :
locale_canonicalize( $locale );
-}
-function ut_loc_locale_lookup(
$lang_tag_arr,$loc_range,$isCanonical,$default_loc)
-{
- return $GLOBALS['oo-mode'] ? Locale::lookup(
$lang_tag_arr,$loc_range,$isCanonical,$default_loc ) : locale_lookup(
$lang_tag_arr,$loc_range,$isCanonical,$default_loc );
-}
-/* MessageFormatter functions */
-function ut_msgfmt_create( $locale, $pattern)
-{
- return $GLOBALS['oo-mode'] ? MessageFormatter::create( $locale, $pattern )
: msgfmt_create( $locale, $pattern );
-}
-function ut_msgfmt_format( $fmt, $args )
-{
- return $GLOBALS['oo-mode'] ? $fmt->format( $args ) : msgfmt_format( $fmt,
$args);
-}
-function ut_msgfmt_parse( $fmt, $string)
-{
- return $GLOBALS['oo-mode'] ? $fmt->parse( $string) : msgfmt_parse( $fmt,
$string);
-}
-function ut_msgfmt_format_message( $locale, $pattern, $args )
-{
- return $GLOBALS['oo-mode'] ? MessageFormatter::formatMessage( $locale,
$pattern, $args ) : msgfmt_format_message( $locale, $pattern, $args );
-}
-function ut_msgfmt_parse_message( $locale, $pattern, $string )
-{
- return $GLOBALS['oo-mode'] ? MessageFormatter::parseMessage( $locale,
$pattern, $string ) : msgfmt_parse_message( $locale, $pattern, $string );
-}
-function ut_msgfmt_set_pattern( $fmt, $pattern )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) :
msgfmt_set_pattern( $fmt, $pattern );
-}
-function ut_msgfmt_get_pattern( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getPattern() : msgfmt_get_pattern( $fmt
);
-}
-function ut_msgfmt_get_locale( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getLocale( ) : msgfmt_get_locale( $fmt
);
-}
-function ut_msgfmt_get_error_code( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getErrorCode() : msgfmt_get_error_code(
$fmt );
-}
-function ut_msgfmt_get_error_message( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getErrorMessage() :
msgfmt_get_error_message( $fmt );
-}
-/* IntlDateFormatter functions */
-function ut_datefmt_create( $locale, $datetype, $timetype, $timezone = null,
$calendar = null ,$pattern = null)
-{
- return $GLOBALS['oo-mode'] ? datefmt_create( $locale, $datetype,
$timetype, $timezone, $calendar ,$pattern ) : datefmt_create( $locale,
$datetype, $timetype, $timezone, $calendar ,$pattern);
-}
-function ut_datefmt_get_datetype( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getDateType( ) : datefmt_get_datetype(
$fmt );
-}
-function ut_datefmt_get_timetype( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getTimeType( ) : datefmt_get_timetype(
$fmt );
-}
-function ut_datefmt_get_calendar( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getCalendar( ) : datefmt_get_calendar(
$fmt );
-}
-function ut_datefmt_set_calendar( $fmt ,$calendar )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setCalendar( $calendar ) :
datefmt_set_calendar( $fmt , $calendar );
-}
-function ut_datefmt_get_timezone_id( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getTimeZoneId( ) :
datefmt_get_timezone_id( $fmt );
-}
-function ut_datefmt_set_timezone_id( $fmt ,$timezone_id )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setTimeZoneId( $timezone_id ) :
datefmt_set_timezone_id( $fmt ,$timezone_id);
-}
-function ut_datefmt_get_pattern( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->getPattern() : datefmt_get_pattern(
$fmt );
-}
-function ut_datefmt_set_pattern( $fmt , $pattern )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) :
datefmt_set_pattern( $fmt , $pattern);
-}
-function ut_datefmt_get_locale( $fmt ,$type=ULOC_ACTUAL_LOCALE)
-{
- return $GLOBALS['oo-mode'] ? $fmt->getLocale($type ) : datefmt_get_locale(
$fmt ,$type);
-}
-function ut_datefmt_is_lenient( $fmt )
-{
- return $GLOBALS['oo-mode'] ? $fmt->isLenient() : datefmt_is_lenient( $fmt
);
-}
-function ut_datefmt_set_lenient( $fmt , $lenient )
-{
- return $GLOBALS['oo-mode'] ? $fmt->setLenient( $lenient ) :
datefmt_set_lenient( $fmt , $lenient);
-}
-function ut_datefmt_format( $fmt , $value )
-{
- return $GLOBALS['oo-mode'] ? $fmt->format( $value ) : datefmt_format(
$fmt , $value);
-}
-function ut_datefmt_parse( $fmt , $value ,$parse_pos=0 )
-{
- return $GLOBALS['oo-mode'] ? $fmt->parse( $value ,$parse_pos ) :
datefmt_parse( $fmt , $value,$parse_pos);
-}
-function ut_datefmt_localtime( $fmt , $value ,$parse_pos=0 )
-{
- return $GLOBALS['oo-mode'] ? $fmt->localtime( $value , $parse_pos ) :
datefmt_localtime( $fmt , $value , $parse_pos );
-}
-?>
+<?php
+/*
+ * Run unit test in OO- and in procedural mode.
+ * Then compare the outputs.
+ * It they're equal then show one of them.
+ * Otherwise indicate an error.
+ */
+function ut_run()
+{
+ // Run unit test in OO mode.
+ $GLOBALS['oo-mode'] = true;
+ $oo_result = ut_main();
+
+ // Run unit test in procedural mode.
+ $GLOBALS['oo-mode'] = false;
+ $proc_result = ut_main();
+
+ // Show error if the APIs produce different results.
+ if( $proc_result !== $oo_result )
+ {
+ echo "ERROR: OO- and procedural APIs produce different results!\n";
+ echo "OO API output:\n";
+ echo str_repeat( '=', 78 ) . "\n";
+ echo $oo_result;
+ echo str_repeat( '=', 78 ) . "\n";
+ echo "procedural API output:\n";
+ echo str_repeat( '=', 78 ) . "\n";
+ echo $proc_result;
+ echo str_repeat( '=', 78 ) . "\n";
+ return;
+ }
+
+ // Else, if the results are equal, show one of them.
+ echo $proc_result;
+}
+
+function dump( $val )
+{
+ return var_export( $val, true );
+}
+
+/*
+ * Wrappers around Collator methods to run them in either OO- or procedural
mode.
+ */
+
+function ut_coll_create( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Collator::create( $locale ) :
collator_create( $locale );
+}
+function ut_coll_compare( $coll, $str1, $str2 )
+{
+ return $GLOBALS['oo-mode'] ? $coll->compare( $str1, $str2 ) :
collator_compare( $coll, $str1, $str2 );
+}
+function ut_coll_sort( $coll, &$arr, $sort_flag = Collator::SORT_REGULAR )
+{
+ return $GLOBALS['oo-mode'] ? $coll->sort( $arr, $sort_flag ) :
collator_sort( $coll, $arr, $sort_flag );
+}
+function ut_coll_sort_with_sort_keys( $coll, &$arr )
+{
+ return $GLOBALS['oo-mode'] ? $coll->sortWithSortKeys( $arr ) :
collator_sort_with_sort_keys( $coll, $arr );
+}
+function ut_coll_asort( $coll, &$arr, $sort_flag = Collator::SORT_REGULAR )
+{
+ return $GLOBALS['oo-mode'] ? $coll->asort( $arr, $sort_flag ) :
collator_asort( $coll, $arr, $sort_flag );
+}
+function ut_coll_get_locale( $coll, $type )
+{
+ return $GLOBALS['oo-mode'] ? $coll->getLocale( $type ) :
collator_get_locale( $coll, $type );
+}
+function ut_coll_get_display_name( $obj_loc, $disp_loc )
+{
+ return $GLOBALS['oo-mode'] ? Collator::getDisplayName( $obj_loc, $disp_loc
) : collator_get_display_name( $obj_loc, $disp_loc );
+}
+function ut_coll_get_available_locales()
+{
+ return $GLOBALS['oo-mode'] ? Collator::getAvailableLocales() :
collator_get_available_locales();
+}
+function ut_coll_get_attribute( $coll, $attr )
+{
+ return $GLOBALS['oo-mode'] ? $coll->getAttribute( $attr ) :
collator_get_attribute( $coll, $attr );
+}
+function ut_coll_get_strength( $coll )
+{
+ return $GLOBALS['oo-mode'] ? $coll->getStrength() : collator_get_strength(
$coll );
+}
+function ut_coll_set_strength( $coll, $strength )
+{
+ return $GLOBALS['oo-mode'] ? $coll->setStrength( $strength ) :
collator_set_strength( $coll, $strength );
+}
+function ut_coll_set_attribute( $coll, $attr, $val )
+{
+ return $GLOBALS['oo-mode'] ? $coll->setAttribute( $attr, $val ) :
collator_set_attribute( $coll, $attr, $val );
+}
+function ut_coll_get_variable_top( $coll )
+{
+ return $GLOBALS['oo-mode'] ? $coll->getVariableTop() :
collator_get_variable_top( $coll );
+}
+function ut_coll_set_variable_top( $coll, $var_top )
+{
+ return $GLOBALS['oo-mode'] ? $coll->setVariableTop( $var_top ) :
collator_set_variable_top( $coll, $var_top );
+}
+function ut_coll_restore_variable_top( $coll, $var_top )
+{
+ return $GLOBALS['oo-mode'] ? $coll->restoreVariableTop( $var_top ) :
collator_restore_variable_top( $coll, $var_top );
+}
+function ut_coll_get_error_code( $coll )
+{
+ return $GLOBALS['oo-mode'] ? $coll->getErrorCode() :
collator_get_error_code( $coll );
+}
+function ut_coll_get_error_message( $coll )
+{
+ return $GLOBALS['oo-mode'] ? $coll->getErrorMessage() :
collator_get_error_message( $coll );
+}
+function ut_coll_get_default()
+{
+ return $GLOBALS['oo-mode'] ? Collator::getDefault() :
collator_get_default();
+}
+function ut_coll_set_default( $coll )
+{
+ return $GLOBALS['oo-mode'] ? Collator::setDefault( $coll ) :
collator_set_default( $coll );
+}
+
+/*
+ * Wrappers around NumberFormatter methods to run them in either OO- or
procedural mode.
+ */
+
+// FIXME: incomplete list
+
+function ut_nfmt_create( $locale, $style, $pattern = null )
+{
+ return $GLOBALS['oo-mode'] ? new NumberFormatter( $locale, $style,
$pattern ) : numfmt_create( $locale, $style, $pattern );
+}
+function ut_nfmt_format( $fmt, $number, $type = null )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->format( $number, $type ) :
numfmt_format( $fmt, $number, $type );
+}
+function ut_nfmt_parse( $fmt, $string, $type = NumberFormatter::TYPE_DOUBLE,
&$position = null )
+{
+ if(is_null($position)) {
+ return $GLOBALS['oo-mode'] ? $fmt->parse( $string, $type ) : numfmt_parse(
$fmt, $string, $type );
+ } else {
+ return $GLOBALS['oo-mode'] ? $fmt->parse( $string, $type, $position ) :
numfmt_parse( $fmt, $string, $type, $position );
+ }
+}
+function ut_nfmt_format_currency( $fmt, $number, $currency )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->formatCurrency( $number, $currency ) :
numfmt_format_currency( $fmt, $number, $currency );
+}
+function ut_nfmt_parse_currency( $fmt, $string, &$currency, &$position = null )
+{
+ if(is_null($position)) {
+ return $GLOBALS['oo-mode'] ? $fmt->parseCurrency( $string, $currency ) :
numfmt_parse_currency( $fmt, $string, $currency );
+ } else {
+ return $GLOBALS['oo-mode'] ? $fmt->parseCurrency( $string, $currency,
$position ) : numfmt_parse_currency( $fmt, $string, $currency, $position );
+ }
+}
+function ut_nfmt_set_attribute( $fmt, $attribute, $value )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setAttribute( $attribute, $value ) :
numfmt_set_attribute( $fmt, $attribute, $value );
+}
+function ut_nfmt_set_text_attribute( $fmt, $attribute, $value )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setTextAttribute( $attribute, $value )
: numfmt_set_text_attribute( $fmt, $attribute, $value );
+}
+function ut_nfmt_set_symbol( $fmt, $attribute, $value )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setSymbol( $attribute, $value ) :
numfmt_set_symbol( $fmt, $attribute, $value );
+}
+function ut_nfmt_set_pattern( $fmt, $pattern )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) :
numfmt_set_pattern( $fmt, $pattern );
+}
+function ut_nfmt_get_attribute( $fmt, $attribute )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getAttribute( $attribute ) :
numfmt_get_attribute( $fmt, $attribute );
+}
+function ut_nfmt_get_text_attribute( $fmt, $attribute )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getTextAttribute( $attribute ) :
numfmt_get_text_attribute( $fmt, $attribute );
+}
+function ut_nfmt_get_symbol( $fmt, $attribute )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getSymbol( $attribute ) :
numfmt_get_symbol( $fmt, $attribute );
+}
+function ut_nfmt_get_pattern( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getPattern() : numfmt_get_pattern( $fmt
);
+}
+function ut_nfmt_get_locale( $fmt, $type = 0 )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getLocale( $type ) : numfmt_get_locale(
$fmt, $type );
+}
+function ut_nfmt_get_error_code( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getErrorCode() : numfmt_get_error_code(
$fmt );
+}
+function ut_nfmt_get_error_message( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getErrorMessage() :
numfmt_get_error_message( $fmt );
+}
+
+function ut_norm_normalize( $str, $form )
+{
+ return $GLOBALS['oo-mode'] ? Normalizer::normalize( $str, $form ) :
normalizer_normalize( $str, $form );
+}
+function ut_norm_is_normalized( $str, $form )
+{
+ return $GLOBALS['oo-mode'] ? Normalizer::isNormalized( $str, $form ) :
normalizer_is_normalized( $str, $form );
+}
+
+/*
+ * Wrappers around Collator methods to run them in either OO- or procedural
mode.
+ */
+
+function ut_loc_get_default( )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getDefault( ) : locale_get_default();
+}
+function ut_loc_set_default( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::setDefault( $locale ) :
locale_set_default( $locale );
+}
+function ut_loc_get_primary_language( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getPrimaryLanguage( $locale ) :
locale_get_primary_language( $locale );
+}
+function ut_loc_get_script( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getScript( $locale ) :
locale_get_script( $locale );
+}
+function ut_loc_get_region( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getRegion( $locale ) :
locale_get_region( $locale );
+}
+function ut_loc_get_keywords( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getKeywords( $locale ) :
locale_get_keywords( $locale );
+}
+function ut_loc_get_display_name( $locale , $dispLocale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getDisplayName( $locale , $dispLocale
) : locale_get_display_name( $locale , $dispLocale );
+}
+function ut_loc_get_display_language( $locale , $dispLocale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getDisplayLanguage( $locale ,
$dispLocale ) : locale_get_display_language( $locale , $dispLocale );
+}
+function ut_loc_get_display_script( $locale , $dispLocale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getDisplayScript( $locale ,
$dispLocale ) : locale_get_display_script( $locale , $dispLocale );
+}
+function ut_loc_get_display_region( $locale, $dispLocale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getDisplayRegion( $locale,
$dispLocale ) : locale_get_display_region( $locale, $dispLocale );
+}
+function ut_loc_get_display_variant( $locale , $dispLocale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getDisplayVariant( $locale ,
$dispLocale ) : locale_get_display_variant( $locale, $dispLocale );
+}
+function ut_loc_locale_compose( $loc_parts_arr )
+{
+ return $GLOBALS['oo-mode'] ? Locale::composeLocale( $loc_parts_arr ) :
locale_compose( $loc_parts_arr );
+}
+function ut_loc_locale_parse( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::parseLocale( $locale ) :
locale_parse($locale );
+}
+function ut_loc_locale_get_all_variants( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::getAllVariants( $locale ) :
locale_get_all_variants( $locale );
+}
+function ut_loc_locale_filter_matches( $lang_tag,$loc_range ,$isCanonical)
+{
+ return $GLOBALS['oo-mode'] ? Locale::filterMatches( $lang_tag,$loc_range
,$isCanonical) : locale_filter_matches( $lang_tag,$loc_range ,$isCanonical);
+}
+function ut_loc_canonicalize( $locale )
+{
+ return $GLOBALS['oo-mode'] ? Locale::canonicalize( $locale ) :
locale_canonicalize( $locale );
+}
+function ut_loc_locale_lookup(
$lang_tag_arr,$loc_range,$isCanonical,$default_loc)
+{
+ return $GLOBALS['oo-mode'] ? Locale::lookup(
$lang_tag_arr,$loc_range,$isCanonical,$default_loc ) : locale_lookup(
$lang_tag_arr,$loc_range,$isCanonical,$default_loc );
+}
+/* MessageFormatter functions */
+function ut_msgfmt_create( $locale, $pattern)
+{
+ return $GLOBALS['oo-mode'] ? MessageFormatter::create( $locale, $pattern )
: msgfmt_create( $locale, $pattern );
+}
+function ut_msgfmt_format( $fmt, $args )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->format( $args ) : msgfmt_format( $fmt,
$args);
+}
+function ut_msgfmt_parse( $fmt, $string)
+{
+ return $GLOBALS['oo-mode'] ? $fmt->parse( $string) : msgfmt_parse( $fmt,
$string);
+}
+function ut_msgfmt_format_message( $locale, $pattern, $args )
+{
+ return $GLOBALS['oo-mode'] ? MessageFormatter::formatMessage( $locale,
$pattern, $args ) : msgfmt_format_message( $locale, $pattern, $args );
+}
+function ut_msgfmt_parse_message( $locale, $pattern, $string )
+{
+ return $GLOBALS['oo-mode'] ? MessageFormatter::parseMessage( $locale,
$pattern, $string ) : msgfmt_parse_message( $locale, $pattern, $string );
+}
+function ut_msgfmt_set_pattern( $fmt, $pattern )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) :
msgfmt_set_pattern( $fmt, $pattern );
+}
+function ut_msgfmt_get_pattern( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getPattern() : msgfmt_get_pattern( $fmt
);
+}
+function ut_msgfmt_get_locale( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getLocale( ) : msgfmt_get_locale( $fmt
);
+}
+function ut_msgfmt_get_error_code( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getErrorCode() : msgfmt_get_error_code(
$fmt );
+}
+function ut_msgfmt_get_error_message( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getErrorMessage() :
msgfmt_get_error_message( $fmt );
+}
+/* IntlDateFormatter functions */
+function ut_datefmt_create( $locale, $datetype, $timetype, $timezone = null,
$calendar = null ,$pattern = null)
+{
+ return $GLOBALS['oo-mode'] ? datefmt_create( $locale, $datetype,
$timetype, $timezone, $calendar ,$pattern ) : datefmt_create( $locale,
$datetype, $timetype, $timezone, $calendar ,$pattern);
+}
+function ut_datefmt_get_datetype( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getDateType( ) : datefmt_get_datetype(
$fmt );
+}
+function ut_datefmt_get_timetype( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getTimeType( ) : datefmt_get_timetype(
$fmt );
+}
+function ut_datefmt_get_calendar( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getCalendar( ) : datefmt_get_calendar(
$fmt );
+}
+function ut_datefmt_set_calendar( $fmt ,$calendar )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setCalendar( $calendar ) :
datefmt_set_calendar( $fmt , $calendar );
+}
+function ut_datefmt_get_timezone_id( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getTimeZoneId( ) :
datefmt_get_timezone_id( $fmt );
+}
+function ut_datefmt_set_timezone_id( $fmt ,$timezone_id )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setTimeZoneId( $timezone_id ) :
datefmt_set_timezone_id( $fmt ,$timezone_id);
+}
+function ut_datefmt_get_pattern( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getPattern() : datefmt_get_pattern(
$fmt );
+}
+function ut_datefmt_set_pattern( $fmt , $pattern )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setPattern( $pattern ) :
datefmt_set_pattern( $fmt , $pattern);
+}
+function ut_datefmt_get_locale( $fmt ,$type=ULOC_ACTUAL_LOCALE)
+{
+ return $GLOBALS['oo-mode'] ? $fmt->getLocale($type ) : datefmt_get_locale(
$fmt ,$type);
+}
+function ut_datefmt_is_lenient( $fmt )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->isLenient() : datefmt_is_lenient( $fmt
);
+}
+function ut_datefmt_set_lenient( $fmt , $lenient )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->setLenient( $lenient ) :
datefmt_set_lenient( $fmt , $lenient);
+}
+function ut_datefmt_format( $fmt , $value )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->format( $value ) : datefmt_format(
$fmt , $value);
+}
+function ut_datefmt_parse( $fmt , $value , &$parse_pos=0 )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->parse( $value ,$parse_pos ) :
datefmt_parse( $fmt , $value,$parse_pos);
+}
+function ut_datefmt_localtime( $fmt , $value , &$parse_pos=0 )
+{
+ return $GLOBALS['oo-mode'] ? $fmt->localtime( $value , $parse_pos ) :
datefmt_localtime( $fmt , $value , $parse_pos );
+}
+?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php