Require ICU ≥ 50.1

Given that ICU is a set of lively developed libraries, that ICU 50.1
has been released on 2012-11-05, and PHP 7.4 is scheduled to be
released seven years after it, we consider it appropriate to ditch
these legacy versions.

Particularly, that would be a reasonable groundwork to implement part
two of the “Deprecate and remove INTL_IDNA_VARIANT_2003” RFC[1], namely
to default idn_to_ascii()'s and idn_to_utf8()'s $variant parameter to
INTL_IDNA_VARIANT_UTS46, which is not defined in ICU < 4.6.

See also the related discussion on internals@[2].

[1] <https://wiki.php.net/rfc/deprecate-and-remove-intl_idna_variant_2003>
[2] <http://news.php.net/php.internals/101626>ff
This commit is contained in:
Christoph M. Becker 2018-09-06 14:04:44 +02:00
parent b820a7b2ff
commit 8a4c2f1621
110 changed files with 31 additions and 4082 deletions

3
NEWS
View file

@ -2,6 +2,9 @@ PHP NEWS
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 7.4.0alpha1 ?? ??? ????, PHP 7.4.0alpha1
- Intl:
. Lifted requirements to ICU ≥ 50.1. (cmb)
- Standard: - Standard:
. Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with . Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with
stream_socket_client). (Ville Hukkamäki) stream_socket_client). (Ville Hukkamäki)

View file

@ -51,6 +51,9 @@ PHP 7.4 UPGRADE NOTES
9. Other Changes to Extensions 9. Other Changes to Extensions
======================================== ========================================
- Intl:
. The Intl extension now requires at least ICU 50.1.
- Reflection: - Reflection:
. Numeric value of class, property, function and constant modifiers was . Numeric value of class, property, function and constant modifiers was
changed. Don't filter methods and properties through changed. Don't filter methods and properties through

View file

@ -2191,7 +2191,7 @@ AC_DEFUN([PHP_SETUP_ICU],[
AC_MSG_RESULT([$icu_install_prefix]) AC_MSG_RESULT([$icu_install_prefix])
dnl Check ICU version dnl Check ICU version
AC_MSG_CHECKING([for ICU 4.0 or greater]) AC_MSG_CHECKING([for ICU 50.1 or greater])
icu_version_full=`$ICU_CONFIG --version` icu_version_full=`$ICU_CONFIG --version`
ac_IFS=$IFS ac_IFS=$IFS
IFS="." IFS="."
@ -2200,8 +2200,8 @@ AC_DEFUN([PHP_SETUP_ICU],[
icu_version=`expr [$]1 \* 1000 + [$]2` icu_version=`expr [$]1 \* 1000 + [$]2`
AC_MSG_RESULT([found $icu_version_full]) AC_MSG_RESULT([found $icu_version_full])
if test "$icu_version" -lt "4000"; then if test "$icu_version" -lt "50001"; then
AC_MSG_ERROR([ICU version 4.0 or later is required]) AC_MSG_ERROR([ICU version 50.1 or later is required])
fi fi
ICU_VERSION=$icu_version ICU_VERSION=$icu_version
@ -2211,10 +2211,8 @@ AC_DEFUN([PHP_SETUP_ICU],[
PHP_EVAL_LIBLINE($ICU_LIBS, $1) PHP_EVAL_LIBLINE($ICU_LIBS, $1)
ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags`
if test "$icu_version" -ge "49000"; then ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit" ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
fi
if test "$icu_version" -ge "60000"; then if test "$icu_version" -ge "60000"; then
ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1" ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
fi fi

View file

@ -290,9 +290,7 @@ static const zend_function_entry RuleBasedBreakIterator_class_functions[] = {
PHP_ME_MAPPING(getRules, rbbi_get_rules, ainfo_biter_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getRules, rbbi_get_rules, ainfo_biter_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getRuleStatus, rbbi_get_rule_status, ainfo_biter_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getRuleStatus, rbbi_get_rule_status, ainfo_biter_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getRuleStatusVec, rbbi_get_rule_status_vec, ainfo_biter_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getRuleStatusVec, rbbi_get_rule_status_vec, ainfo_biter_void, ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
PHP_ME_MAPPING(getBinaryRules, rbbi_get_binary_rules, ainfo_biter_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getBinaryRules, rbbi_get_binary_rules, ainfo_biter_void, ZEND_ACC_PUBLIC)
#endif
PHP_FE_END PHP_FE_END
}; };
/* }}} */ /* }}} */

View file

@ -77,7 +77,6 @@ static void _php_intlrbbi_constructor_body(INTERNAL_FUNCTION_PARAMETERS)
return; return;
} }
} else { // compiled } else { // compiled
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
rbbi = new RuleBasedBreakIterator((uint8_t*)rules, rules_len, status); rbbi = new RuleBasedBreakIterator((uint8_t*)rules, rules_len, status);
if (U_FAILURE(status)) { if (U_FAILURE(status)) {
intl_error_set(NULL, status, "rbbi_create_instance: unable to " intl_error_set(NULL, status, "rbbi_create_instance: unable to "
@ -85,11 +84,6 @@ static void _php_intlrbbi_constructor_body(INTERNAL_FUNCTION_PARAMETERS)
delete rbbi; delete rbbi;
return; return;
} }
#else
intl_error_set(NULL, U_UNSUPPORTED_ERROR, "rbbi_create_instance: "
"compiled rules require ICU >= 4.8", 0);
return;
#endif
} }
breakiterator_object_create(return_value, rbbi, 0); breakiterator_object_create(return_value, rbbi, 0);
@ -188,7 +182,6 @@ U_CFUNC PHP_FUNCTION(rbbi_get_rule_status_vec)
delete[] rules; delete[] rules;
} }
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
U_CFUNC PHP_FUNCTION(rbbi_get_binary_rules) U_CFUNC PHP_FUNCTION(rbbi_get_binary_rules)
{ {
BREAKITER_METHOD_INIT_VARS; BREAKITER_METHOD_INIT_VARS;
@ -218,4 +211,3 @@ U_CFUNC PHP_FUNCTION(rbbi_get_binary_rules)
RETURN_STR(ret_rules); RETURN_STR(ret_rules);
} }
#endif

View file

@ -377,9 +377,7 @@ ZEND_END_ARG_INFO()
static const zend_function_entry Calendar_class_functions[] = { static const zend_function_entry Calendar_class_functions[] = {
PHP_ME(IntlCalendar, __construct, ainfo_cal_void, ZEND_ACC_PRIVATE) PHP_ME(IntlCalendar, __construct, ainfo_cal_void, ZEND_ACC_PRIVATE)
PHP_ME_MAPPING(createInstance, intlcal_create_instance, ainfo_cal_createInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(createInstance, intlcal_create_instance, ainfo_cal_createInstance, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 42
PHP_ME_MAPPING(getKeywordValuesForLocale, intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getKeywordValuesForLocale, intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
#endif
PHP_ME_MAPPING(getNow, intlcal_get_now, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getNow, intlcal_get_now, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getAvailableLocales, intlcal_get_available_locales, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getAvailableLocales, intlcal_get_available_locales, ainfo_cal_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(get, intlcal_get, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(get, intlcal_get, ainfo_cal_field, ZEND_ACC_PUBLIC)
@ -395,9 +393,7 @@ static const zend_function_entry Calendar_class_functions[] = {
PHP_ME_MAPPING(fieldDifference, intlcal_field_difference, ainfo_cal_field_difference, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(fieldDifference, intlcal_field_difference, ainfo_cal_field_difference, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getActualMaximum, intlcal_get_actual_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getActualMaximum, intlcal_get_actual_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getActualMinimum, intlcal_get_actual_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getActualMinimum, intlcal_get_actual_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
PHP_ME_MAPPING(getDayOfWeekType, intlcal_get_day_of_week_type, ainfo_cal_dow, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getDayOfWeekType, intlcal_get_day_of_week_type, ainfo_cal_dow, ZEND_ACC_PUBLIC)
#endif
PHP_ME_MAPPING(getFirstDayOfWeek, intlcal_get_first_day_of_week, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getFirstDayOfWeek, intlcal_get_first_day_of_week, ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getGreatestMinimum, intlcal_get_greatest_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getGreatestMinimum, intlcal_get_greatest_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getLeastMaximum, intlcal_get_least_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getLeastMaximum, intlcal_get_least_maximum, ainfo_cal_field, ZEND_ACC_PUBLIC)
@ -407,26 +403,20 @@ static const zend_function_entry Calendar_class_functions[] = {
PHP_ME_MAPPING(getMinimum, intlcal_get_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getMinimum, intlcal_get_minimum, ainfo_cal_field, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getTimeZone, intlcal_get_time_zone, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getTimeZone, intlcal_get_time_zone, ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getType, intlcal_get_type, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getType, intlcal_get_type, ainfo_cal_void, ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
PHP_ME_MAPPING(getWeekendTransition,intlcal_get_weekend_transition, ainfo_cal_dow, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getWeekendTransition,intlcal_get_weekend_transition, ainfo_cal_dow, ZEND_ACC_PUBLIC)
#endif
PHP_ME_MAPPING(inDaylightTime, intlcal_in_daylight_time, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(inDaylightTime, intlcal_in_daylight_time, ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(isEquivalentTo, intlcal_is_equivalent_to, ainfo_cal_other_cal, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(isEquivalentTo, intlcal_is_equivalent_to, ainfo_cal_other_cal, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(isLenient, intlcal_is_lenient, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(isLenient, intlcal_is_lenient, ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(isSet, intlcal_is_set, ainfo_cal_field, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(isSet, intlcal_is_set, ainfo_cal_field, ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
PHP_ME_MAPPING(isWeekend, intlcal_is_weekend, ainfo_cal_date_optional, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(isWeekend, intlcal_is_weekend, ainfo_cal_date_optional, ZEND_ACC_PUBLIC)
#endif
PHP_ME_MAPPING(setFirstDayOfWeek, intlcal_set_first_day_of_week, ainfo_cal_dow, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setFirstDayOfWeek, intlcal_set_first_day_of_week, ainfo_cal_dow, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(setLenient, intlcal_set_lenient, ainfo_cal_setLenient, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setLenient, intlcal_set_lenient, ainfo_cal_setLenient, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(setMinimalDaysInFirstWeek,intlcal_set_minimal_days_in_first_week,ainfo_cal_set_minimal_days_in_first_week,ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setMinimalDaysInFirstWeek,intlcal_set_minimal_days_in_first_week,ainfo_cal_set_minimal_days_in_first_week,ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(equals, intlcal_equals, ainfo_cal_other_cal, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(equals, intlcal_equals, ainfo_cal_other_cal, ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM >= 49
PHP_ME_MAPPING(getRepeatedWallTimeOption,intlcal_get_repeated_wall_time_option,ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getRepeatedWallTimeOption,intlcal_get_repeated_wall_time_option,ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getSkippedWallTimeOption,intlcal_get_skipped_wall_time_option,ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getSkippedWallTimeOption,intlcal_get_skipped_wall_time_option,ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(setRepeatedWallTimeOption,intlcal_set_repeated_wall_time_option,ainfo_cal_wall_time_option,ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setRepeatedWallTimeOption,intlcal_set_repeated_wall_time_option,ainfo_cal_wall_time_option,ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(setSkippedWallTimeOption,intlcal_set_skipped_wall_time_option,ainfo_cal_wall_time_option,ZEND_ACC_PUBLIC) PHP_ME_MAPPING(setSkippedWallTimeOption,intlcal_set_skipped_wall_time_option,ainfo_cal_wall_time_option,ZEND_ACC_PUBLIC)
#endif
PHP_ME_MAPPING(fromDateTime, intlcal_from_date_time, ainfo_cal_from_date_time, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC) PHP_ME_MAPPING(fromDateTime, intlcal_from_date_time, ainfo_cal_from_date_time, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(toDateTime, intlcal_to_date_time, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(toDateTime, intlcal_to_date_time, ainfo_cal_void, ZEND_ACC_PUBLIC)
PHP_ME_MAPPING(getErrorCode, intlcal_get_error_code, ainfo_cal_void, ZEND_ACC_PUBLIC) PHP_ME_MAPPING(getErrorCode, intlcal_get_error_code, ainfo_cal_void, ZEND_ACC_PUBLIC)
@ -505,18 +495,14 @@ void calendar_register_IntlCalendar_class(void)
CALENDAR_DECL_LONG_CONST("DOW_FRIDAY", UCAL_FRIDAY); CALENDAR_DECL_LONG_CONST("DOW_FRIDAY", UCAL_FRIDAY);
CALENDAR_DECL_LONG_CONST("DOW_SATURDAY", UCAL_SATURDAY); CALENDAR_DECL_LONG_CONST("DOW_SATURDAY", UCAL_SATURDAY);
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKDAY", UCAL_WEEKDAY); CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKDAY", UCAL_WEEKDAY);
CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKEND", UCAL_WEEKEND); CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKEND", UCAL_WEEKEND);
CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKEND_OFFSET", UCAL_WEEKEND_ONSET); CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKEND_OFFSET", UCAL_WEEKEND_ONSET);
CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKEND_CEASE", UCAL_WEEKEND_CEASE); CALENDAR_DECL_LONG_CONST("DOW_TYPE_WEEKEND_CEASE", UCAL_WEEKEND_CEASE);
#endif
#if U_ICU_VERSION_MAJOR_NUM >= 49
CALENDAR_DECL_LONG_CONST("WALLTIME_FIRST", UCAL_WALLTIME_FIRST); CALENDAR_DECL_LONG_CONST("WALLTIME_FIRST", UCAL_WALLTIME_FIRST);
CALENDAR_DECL_LONG_CONST("WALLTIME_LAST", UCAL_WALLTIME_LAST); CALENDAR_DECL_LONG_CONST("WALLTIME_LAST", UCAL_WALLTIME_LAST);
CALENDAR_DECL_LONG_CONST("WALLTIME_NEXT_VALID", UCAL_WALLTIME_NEXT_VALID); CALENDAR_DECL_LONG_CONST("WALLTIME_NEXT_VALID", UCAL_WALLTIME_NEXT_VALID);
#endif
/* Create and register 'IntlGregorianCalendar' class. */ /* Create and register 'IntlGregorianCalendar' class. */
INIT_CLASS_ENTRY(ce, "IntlGregorianCalendar", GregorianCalendar_class_functions); INIT_CLASS_ENTRY(ce, "IntlGregorianCalendar", GregorianCalendar_class_functions);

View file

@ -89,7 +89,6 @@ U_CFUNC PHP_FUNCTION(intlcal_create_instance)
calendar_object_create(return_value, cal); calendar_object_create(return_value, cal);
} }
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 42
class BugStringCharEnumeration : public StringEnumeration class BugStringCharEnumeration : public StringEnumeration
{ {
public: public:
@ -185,7 +184,6 @@ U_CFUNC PHP_FUNCTION(intlcal_get_keyword_values_for_locale)
IntlIterator_from_StringEnumeration(se, return_value); IntlIterator_from_StringEnumeration(se, return_value);
} }
#endif //ICU 4.2 only
U_CFUNC PHP_FUNCTION(intlcal_get_now) U_CFUNC PHP_FUNCTION(intlcal_get_now)
{ {
@ -596,7 +594,6 @@ U_CFUNC PHP_FUNCTION(intlcal_get_actual_minimum)
"intlcal_get_actual_minimum", INTERNAL_FUNCTION_PARAM_PASSTHRU); "intlcal_get_actual_minimum", INTERNAL_FUNCTION_PARAM_PASSTHRU);
} }
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
U_CFUNC PHP_FUNCTION(intlcal_get_day_of_week_type) U_CFUNC PHP_FUNCTION(intlcal_get_day_of_week_type)
{ {
zend_long dow; zend_long dow;
@ -624,7 +621,6 @@ U_CFUNC PHP_FUNCTION(intlcal_get_day_of_week_type)
RETURN_LONG((zend_long)result); RETURN_LONG((zend_long)result);
} }
#endif
U_CFUNC PHP_FUNCTION(intlcal_get_first_day_of_week) U_CFUNC PHP_FUNCTION(intlcal_get_first_day_of_week)
{ {
@ -789,7 +785,6 @@ U_CFUNC PHP_FUNCTION(intlcal_get_type)
RETURN_STRING(co->ucal->getType()); RETURN_STRING(co->ucal->getType());
} }
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
U_CFUNC PHP_FUNCTION(intlcal_get_weekend_transition) U_CFUNC PHP_FUNCTION(intlcal_get_weekend_transition)
{ {
zend_long dow; zend_long dow;
@ -817,7 +812,6 @@ U_CFUNC PHP_FUNCTION(intlcal_get_weekend_transition)
RETURN_LONG((zend_long)res); RETURN_LONG((zend_long)res);
} }
#endif
U_CFUNC PHP_FUNCTION(intlcal_in_daylight_time) U_CFUNC PHP_FUNCTION(intlcal_in_daylight_time)
{ {
@ -904,7 +898,6 @@ U_CFUNC PHP_FUNCTION(intlcal_is_set)
RETURN_BOOL((int)co->ucal->isSet((UCalendarDateFields)field)); RETURN_BOOL((int)co->ucal->isSet((UCalendarDateFields)field));
} }
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
U_CFUNC PHP_FUNCTION(intlcal_is_weekend) U_CFUNC PHP_FUNCTION(intlcal_is_weekend)
{ {
double date; double date;
@ -929,7 +922,6 @@ U_CFUNC PHP_FUNCTION(intlcal_is_weekend)
RETURN_BOOL((int)ret); RETURN_BOOL((int)ret);
} }
} }
#endif
U_CFUNC PHP_FUNCTION(intlcal_set_first_day_of_week) U_CFUNC PHP_FUNCTION(intlcal_set_first_day_of_week)
@ -1030,8 +1022,6 @@ U_CFUNC PHP_FUNCTION(intlcal_equals)
RETURN_BOOL((int)result); RETURN_BOOL((int)result);
} }
#if U_ICU_VERSION_MAJOR_NUM >= 49
U_CFUNC PHP_FUNCTION(intlcal_get_repeated_wall_time_option) U_CFUNC PHP_FUNCTION(intlcal_get_repeated_wall_time_option)
{ {
CALENDAR_METHOD_INIT_VARS; CALENDAR_METHOD_INIT_VARS;
@ -1115,8 +1105,6 @@ U_CFUNC PHP_FUNCTION(intlcal_set_skipped_wall_time_option)
RETURN_TRUE; RETURN_TRUE;
} }
#endif
U_CFUNC PHP_FUNCTION(intlcal_from_date_time) U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
{ {
zval *zv_arg, zval *zv_arg,

View file

@ -185,12 +185,7 @@ static void _php_intlgregcal_constructor_body(
} }
timelib_tzinfo *tzinfo = get_timezone_info(); timelib_tzinfo *tzinfo = get_timezone_info();
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 42
UnicodeString tzstr = UnicodeString::fromUTF8(StringPiece(tzinfo->name)); UnicodeString tzstr = UnicodeString::fromUTF8(StringPiece(tzinfo->name));
#else
UnicodeString tzstr = UnicodeString(tzinfo->name,
strlen(tzinfo->name), US_INV);
#endif
if (tzstr.isBogus()) { if (tzstr.isBogus()) {
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
"intlgregcal_create_instance: could not create UTF-8 string " "intlgregcal_create_instance: could not create UTF-8 string "

View file

@ -83,14 +83,7 @@ U_CFUNC TimeZone *timezone_convert_datetimezone(int type,
UnicodeString s = UnicodeString(id, id_len, US_INV); UnicodeString s = UnicodeString(id, id_len, US_INV);
timeZone = TimeZone::createTimeZone(s); timeZone = TimeZone::createTimeZone(s);
#if U_ICU_VERSION_MAJOR_NUM >= 49
if (*timeZone == TimeZone::getUnknown()) { if (*timeZone == TimeZone::getUnknown()) {
#else
UnicodeString resultingId;
timeZone->getID(resultingId);
if (resultingId == UnicodeString("Etc/Unknown", -1, US_INV)
|| resultingId == UnicodeString("GMT", -1, US_INV)) {
#endif
spprintf(&message, 0, "%s: time zone id '%s' " spprintf(&message, 0, "%s: time zone id '%s' "
"extracted from ext/date DateTimeZone not recognized", func, id); "extracted from ext/date DateTimeZone not recognized", func, id);
intl_errors_set(outside_error, U_ILLEGAL_ARGUMENT_ERROR, intl_errors_set(outside_error, U_ILLEGAL_ARGUMENT_ERROR,

View file

@ -10,14 +10,6 @@ if test "$PHP_INTL" != "no"; then
PHP_SUBST(INTL_SHARED_LIBADD) PHP_SUBST(INTL_SHARED_LIBADD)
PHP_REQUIRE_CXX() PHP_REQUIRE_CXX()
INTL_COMMON_FLAGS="$ICU_INCS $ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1" INTL_COMMON_FLAGS="$ICU_INCS $ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
if test "$icu_version" -ge "4002"; then
icu_spoof_src=" spoofchecker/spoofchecker_class.c \
spoofchecker/spoofchecker.c\
spoofchecker/spoofchecker_create.c\
spoofchecker/spoofchecker_main.c"
else
icu_spoof_src=""
fi
PHP_NEW_EXTENSION(intl, php_intl.c \ PHP_NEW_EXTENSION(intl, php_intl.c \
intl_error.c \ intl_error.c \
intl_convert.c \ intl_convert.c \
@ -68,7 +60,10 @@ if test "$PHP_INTL" != "no"; then
transliterator/transliterator_methods.c \ transliterator/transliterator_methods.c \
uchar/uchar.c \ uchar/uchar.c \
idn/idn.c \ idn/idn.c \
$icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx) spoofchecker/spoofchecker_class.c \
spoofchecker/spoofchecker.c\
spoofchecker/spoofchecker_create.c\
spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \ PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \
common/common_enum.cpp \ common/common_enum.cpp \

View file

@ -18,10 +18,8 @@
#include "zend_exceptions.h" #include "zend_exceptions.h"
#include <unicode/utypes.h> #include <unicode/utypes.h>
#if U_ICU_VERSION_MAJOR_NUM >= 49
#include <unicode/utf8.h> #include <unicode/utf8.h>
#include <unicode/utf16.h> #include <unicode/utf16.h>
#endif
#include <unicode/ucnv.h> #include <unicode/ucnv.h>
#include <unicode/ustring.h> #include <unicode/ustring.h>

View file

@ -36,10 +36,6 @@ extern "C" {
#include "dateformat_helpers.h" #include "dateformat_helpers.h"
#include "zend_exceptions.h" #include "zend_exceptions.h"
#if U_ICU_VERSION_MAJOR_NUM < 50
#define UDAT_PATTERN 0
#endif
#define INTL_UDATE_FMT_OK(i) \ #define INTL_UDATE_FMT_OK(i) \
(UDAT_FULL == (i) || UDAT_LONG == (i) || \ (UDAT_FULL == (i) || UDAT_LONG == (i) || \
UDAT_MEDIUM == (i) || UDAT_SHORT == (i) || \ UDAT_MEDIUM == (i) || UDAT_SHORT == (i) || \

View file

@ -24,9 +24,7 @@
#include "grapheme_util.h" #include "grapheme_util.h"
#include <unicode/utypes.h> #include <unicode/utypes.h>
#if U_ICU_VERSION_MAJOR_NUM >= 49
#include <unicode/utf8.h> #include <unicode/utf8.h>
#endif
#include <unicode/ucol.h> #include <unicode/ucol.h>
#include <unicode/ustring.h> #include <unicode/ustring.h>
#include <unicode/ubrk.h> #include <unicode/ubrk.h>

View file

@ -32,10 +32,6 @@
#include "intl_convert.h" #include "intl_convert.h"
/* }}} */ /* }}} */
#ifdef UIDNA_INFO_INITIALIZER
#define HAVE_46_API 1 /* has UTS#46 API (introduced in ICU 4.6) */
#endif
enum { enum {
INTL_IDN_VARIANT_2003 = 0, INTL_IDN_VARIANT_2003 = 0,
INTL_IDN_VARIANT_UTS46 INTL_IDN_VARIANT_UTS46
@ -58,8 +54,6 @@ void idn_register_constants( INIT_FUNC_ARGS )
/* Option to check if input conforms to STD-3 ASCII rules */ /* Option to check if input conforms to STD-3 ASCII rules */
REGISTER_LONG_CONSTANT("IDNA_USE_STD3_RULES", UIDNA_USE_STD3_RULES, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_USE_STD3_RULES", UIDNA_USE_STD3_RULES, CONST_CS | CONST_PERSISTENT);
#ifdef HAVE_46_API
/* Option to check for whether the input conforms to the BiDi rules. /* Option to check for whether the input conforms to the BiDi rules.
* Ignored by the IDNA2003 implementation. (IDNA2003 always performs a BiDi check.) */ * Ignored by the IDNA2003 implementation. (IDNA2003 always performs a BiDi check.) */
REGISTER_LONG_CONSTANT("IDNA_CHECK_BIDI", UIDNA_CHECK_BIDI, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_CHECK_BIDI", UIDNA_CHECK_BIDI, CONST_CS | CONST_PERSISTENT);
@ -77,15 +71,11 @@ void idn_register_constants( INIT_FUNC_ARGS )
* By default, ToUnicode() uses transitional processing. * By default, ToUnicode() uses transitional processing.
* Ignored by the IDNA2003 implementation. */ * Ignored by the IDNA2003 implementation. */
REGISTER_LONG_CONSTANT("IDNA_NONTRANSITIONAL_TO_UNICODE", UIDNA_NONTRANSITIONAL_TO_UNICODE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_NONTRANSITIONAL_TO_UNICODE", UIDNA_NONTRANSITIONAL_TO_UNICODE, CONST_CS | CONST_PERSISTENT);
#endif
/* VARIANTS */ /* VARIANTS */
REGISTER_LONG_CONSTANT("INTL_IDNA_VARIANT_2003", INTL_IDN_VARIANT_2003, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("INTL_IDNA_VARIANT_2003", INTL_IDN_VARIANT_2003, CONST_CS | CONST_PERSISTENT);
#ifdef HAVE_46_API
REGISTER_LONG_CONSTANT("INTL_IDNA_VARIANT_UTS46", INTL_IDN_VARIANT_UTS46, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("INTL_IDNA_VARIANT_UTS46", INTL_IDN_VARIANT_UTS46, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef HAVE_46_API
/* PINFO ERROR CODES */ /* PINFO ERROR CODES */
REGISTER_LONG_CONSTANT("IDNA_ERROR_EMPTY_LABEL", UIDNA_ERROR_EMPTY_LABEL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_ERROR_EMPTY_LABEL", UIDNA_ERROR_EMPTY_LABEL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IDNA_ERROR_LABEL_TOO_LONG", UIDNA_ERROR_LABEL_TOO_LONG, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_ERROR_LABEL_TOO_LONG", UIDNA_ERROR_LABEL_TOO_LONG, CONST_CS | CONST_PERSISTENT);
@ -100,7 +90,6 @@ void idn_register_constants( INIT_FUNC_ARGS )
REGISTER_LONG_CONSTANT("IDNA_ERROR_INVALID_ACE_LABEL", UIDNA_ERROR_INVALID_ACE_LABEL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_ERROR_INVALID_ACE_LABEL", UIDNA_ERROR_INVALID_ACE_LABEL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IDNA_ERROR_BIDI", UIDNA_ERROR_BIDI, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_ERROR_BIDI", UIDNA_ERROR_BIDI, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IDNA_ERROR_CONTEXTJ", UIDNA_ERROR_CONTEXTJ, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("IDNA_ERROR_CONTEXTJ", UIDNA_ERROR_CONTEXTJ, CONST_CS | CONST_PERSISTENT);
#endif
} }
/* }}} */ /* }}} */
@ -131,7 +120,6 @@ static inline void php_intl_bad_args(const char *msg)
php_intl_idn_check_status(U_ILLEGAL_ARGUMENT_ERROR, msg); php_intl_idn_check_status(U_ILLEGAL_ARGUMENT_ERROR, msg);
} }
#ifdef HAVE_46_API
static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS, static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS,
const zend_string *domain, uint32_t option, int mode, zval *idna_info) const zend_string *domain, uint32_t option, int mode, zval *idna_info)
{ {
@ -201,7 +189,6 @@ static void php_intl_idn_to_46(INTERNAL_FUNCTION_PARAMETERS,
uidna_close(uts46); uidna_close(uts46);
} }
#endif
static void php_intl_idn_to(INTERNAL_FUNCTION_PARAMETERS, static void php_intl_idn_to(INTERNAL_FUNCTION_PARAMETERS,
const zend_string *domain, uint32_t option, int mode) const zend_string *domain, uint32_t option, int mode)
@ -292,19 +279,11 @@ static void php_intl_idn_handoff(INTERNAL_FUNCTION_PARAMETERS, int mode)
RETURN_NULL(); /* don't set FALSE because that's not the way it was before... */ RETURN_NULL(); /* don't set FALSE because that's not the way it was before... */
} }
#ifdef HAVE_46_API
if (variant != INTL_IDN_VARIANT_2003 && variant != INTL_IDN_VARIANT_UTS46) { if (variant != INTL_IDN_VARIANT_2003 && variant != INTL_IDN_VARIANT_UTS46) {
php_intl_bad_args("invalid variant, must be one of {" php_intl_bad_args("invalid variant, must be one of {"
"INTL_IDNA_VARIANT_2003, INTL_IDNA_VARIANT_UTS46}"); "INTL_IDNA_VARIANT_2003, INTL_IDNA_VARIANT_UTS46}");
RETURN_FALSE; RETURN_FALSE;
} }
#else
if (variant != INTL_IDN_VARIANT_2003) {
php_intl_bad_args("invalid variant, PHP was compiled against "
"an old version of ICU and only supports INTL_IDN_VARIANT_2003");
RETURN_FALSE;
}
#endif
if (ZSTR_LEN(domain) < 1) { if (ZSTR_LEN(domain) < 1) {
php_intl_bad_args("empty domain name"); php_intl_bad_args("empty domain name");
@ -334,11 +313,9 @@ static void php_intl_idn_handoff(INTERNAL_FUNCTION_PARAMETERS, int mode)
if (variant == INTL_IDN_VARIANT_2003) { if (variant == INTL_IDN_VARIANT_2003) {
php_intl_idn_to(INTERNAL_FUNCTION_PARAM_PASSTHRU, domain, (uint32_t)option, mode); php_intl_idn_to(INTERNAL_FUNCTION_PARAM_PASSTHRU, domain, (uint32_t)option, mode);
} }
#ifdef HAVE_46_API
else { else {
php_intl_idn_to_46(INTERNAL_FUNCTION_PARAM_PASSTHRU, domain, (uint32_t)option, mode, idna_info); php_intl_idn_to_46(INTERNAL_FUNCTION_PARAM_PASSTHRU, domain, (uint32_t)option, mode, idna_info);
} }
#endif
} }
/* {{{ proto string idn_to_ascii(string domain[, int options[, int variant[, array &idna_info]]]) /* {{{ proto string idn_to_ascii(string domain[, int options[, int variant[, array &idna_info]]])

View file

@ -25,10 +25,6 @@
#include "../intl_error.h" #include "../intl_error.h"
#include "../intl_data.h" #include "../intl_data.h"
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM < 48
# define MSG_FORMAT_QUOTE_APOS 1
#endif
#include "msgformat_data.h" #include "msgformat_data.h"
typedef struct { typedef struct {

View file

@ -44,10 +44,6 @@ extern "C" {
#include "../timezone/timezone_class.h" #include "../timezone/timezone_class.h"
} }
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
#define HAS_MESSAGE_PATTERN 1
#endif
U_NAMESPACE_BEGIN U_NAMESPACE_BEGIN
/** /**
* This class isolates our access to private internal methods of * This class isolates our access to private internal methods of
@ -58,9 +54,7 @@ class MessageFormatAdapter {
public: public:
static const Formattable::Type* getArgTypeList(const MessageFormat& m, static const Formattable::Type* getArgTypeList(const MessageFormat& m,
int32_t& count); int32_t& count);
#ifdef HAS_MESSAGE_PATTERN
static const MessagePattern getMessagePattern(MessageFormat* m); static const MessagePattern getMessagePattern(MessageFormat* m);
#endif
}; };
const Formattable::Type* const Formattable::Type*
@ -69,21 +63,17 @@ MessageFormatAdapter::getArgTypeList(const MessageFormat& m,
return m.getArgTypeList(count); return m.getArgTypeList(count);
} }
#ifdef HAS_MESSAGE_PATTERN
const MessagePattern const MessagePattern
MessageFormatAdapter::getMessagePattern(MessageFormat* m) { MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
return m->msgPattern; return m->msgPattern;
} }
#endif
U_NAMESPACE_END U_NAMESPACE_END
using icu::Formattable; using icu::Formattable;
using icu::Format; using icu::Format;
using icu::DateFormat; using icu::DateFormat;
using icu::MessageFormat; using icu::MessageFormat;
#ifdef HAS_MESSAGE_PATTERN
using icu::MessagePattern; using icu::MessagePattern;
#endif
using icu::MessageFormatAdapter; using icu::MessageFormatAdapter;
using icu::FieldPosition; using icu::FieldPosition;
@ -138,7 +128,6 @@ static HashTable *umsg_get_numeric_types(MessageFormatter_object *mfo,
return ret; return ret;
} }
#ifdef HAS_MESSAGE_PATTERN
static HashTable *umsg_parse_format(MessageFormatter_object *mfo, static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
const MessagePattern& mp, const MessagePattern& mp,
intl_error& err) intl_error& err)
@ -265,10 +254,8 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
type = Formattable::kDouble; type = Formattable::kDouble;
} else if (argType == UMSGPAT_ARG_TYPE_SELECT) { } else if (argType == UMSGPAT_ARG_TYPE_SELECT) {
type = Formattable::kString; type = Formattable::kString;
#if U_ICU_VERSION_MAJOR_NUM >= 50
} else if (argType == UMSGPAT_ARG_TYPE_SELECTORDINAL) { } else if (argType == UMSGPAT_ARG_TYPE_SELECTORDINAL) {
type = Formattable::kDouble; type = Formattable::kDouble;
#endif
} else { } else {
type = Formattable::kString; type = Formattable::kString;
} }
@ -295,26 +282,15 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
return ret; return ret;
} }
#endif
static HashTable *umsg_get_types(MessageFormatter_object *mfo, static HashTable *umsg_get_types(MessageFormatter_object *mfo,
intl_error& err) intl_error& err)
{ {
MessageFormat *mf = (MessageFormat *)mfo->mf_data.umsgf; MessageFormat *mf = (MessageFormat *)mfo->mf_data.umsgf;
#ifdef HAS_MESSAGE_PATTERN
const MessagePattern mp = MessageFormatAdapter::getMessagePattern(mf); const MessagePattern mp = MessageFormatAdapter::getMessagePattern(mf);
return umsg_parse_format(mfo, mp, err); return umsg_parse_format(mfo, mp, err);
#else
if (mf->usesNamedArguments()) {
intl_errors_set(&err, U_UNSUPPORTED_ERROR,
"This extension supports named arguments only on ICU 4.8+",
0);
return NULL;
}
return umsg_get_numeric_types(mfo, err);
#endif
} }
static void umsg_set_timezone(MessageFormatter_object *mfo, static void umsg_set_timezone(MessageFormatter_object *mfo,

View file

@ -28,9 +28,7 @@
#include "normalizer_class.h" #include "normalizer_class.h"
#include "normalizer_normalize.h" #include "normalizer_normalize.h"
#include "intl_convert.h" #include "intl_convert.h"
#if U_ICU_VERSION_MAJOR_NUM >= 49
#include <unicode/utf8.h> #include <unicode/utf8.h>
#endif
#if U_ICU_VERSION_MAJOR_NUM >= 56 #if U_ICU_VERSION_MAJOR_NUM >= 56

View file

@ -87,12 +87,10 @@
#include "idn/idn.h" #include "idn/idn.h"
#include "uchar/uchar.h" #include "uchar/uchar.h"
#if U_ICU_VERSION_MAJOR_NUM * 1000 + U_ICU_VERSION_MINOR_NUM >= 4002
# include "spoofchecker/spoofchecker_class.h" # include "spoofchecker/spoofchecker_class.h"
# include "spoofchecker/spoofchecker.h" # include "spoofchecker/spoofchecker.h"
# include "spoofchecker/spoofchecker_create.h" # include "spoofchecker/spoofchecker_create.h"
# include "spoofchecker/spoofchecker_main.h" # include "spoofchecker/spoofchecker_main.h"
#endif
#include "msgformat/msgformat.h" #include "msgformat/msgformat.h"
#include "common/common_error.h" #include "common/common_error.h"
@ -763,18 +761,12 @@ static const zend_function_entry intl_functions[] = {
PHP_FE( intltz_create_default, arginfo_tz_void ) PHP_FE( intltz_create_default, arginfo_tz_void )
PHP_FE( intltz_get_id, arginfo_tz_only_tz ) PHP_FE( intltz_get_id, arginfo_tz_only_tz )
PHP_FE( intltz_get_gmt, arginfo_tz_void ) PHP_FE( intltz_get_gmt, arginfo_tz_void )
#if U_ICU_VERSION_MAJOR_NUM >= 49
PHP_FE( intltz_get_unknown, arginfo_tz_void ) PHP_FE( intltz_get_unknown, arginfo_tz_void )
#endif
PHP_FE( intltz_create_enumeration, arginfo_tz_create_enumeration ) PHP_FE( intltz_create_enumeration, arginfo_tz_create_enumeration )
PHP_FE( intltz_count_equivalent_ids, arginfo_tz_idarg_static ) PHP_FE( intltz_count_equivalent_ids, arginfo_tz_idarg_static )
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
PHP_FE( intltz_create_time_zone_id_enumeration, arginfo_tz_create_time_zone_id_enumeration ) PHP_FE( intltz_create_time_zone_id_enumeration, arginfo_tz_create_time_zone_id_enumeration )
#endif
PHP_FE( intltz_get_canonical_id, arginfo_tz_get_canonical_id ) PHP_FE( intltz_get_canonical_id, arginfo_tz_get_canonical_id )
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
PHP_FE( intltz_get_region, arginfo_tz_idarg_static ) PHP_FE( intltz_get_region, arginfo_tz_idarg_static )
#endif
PHP_FE( intltz_get_tz_data_version, arginfo_tz_void ) PHP_FE( intltz_get_tz_data_version, arginfo_tz_void )
PHP_FE( intltz_get_equivalent_id, arginfo_tz_get_equivalent_id ) PHP_FE( intltz_get_equivalent_id, arginfo_tz_get_equivalent_id )
PHP_FE( intltz_use_daylight_time, arginfo_tz_only_tz ) PHP_FE( intltz_use_daylight_time, arginfo_tz_only_tz )
@ -788,9 +780,7 @@ static const zend_function_entry intl_functions[] = {
PHP_FE( intltz_get_error_message, arginfo_tz_only_tz ) PHP_FE( intltz_get_error_message, arginfo_tz_only_tz )
PHP_FE( intlcal_create_instance, ainfo_cal_create_instance ) PHP_FE( intlcal_create_instance, ainfo_cal_create_instance )
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 42
PHP_FE( intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale ) PHP_FE( intlcal_get_keyword_values_for_locale, ainfo_cal_get_keyword_values_for_locale )
#endif
PHP_FE( intlcal_get_now, ainfo_cal_void ) PHP_FE( intlcal_get_now, ainfo_cal_void )
PHP_FE( intlcal_get_available_locales, ainfo_cal_void ) PHP_FE( intlcal_get_available_locales, ainfo_cal_void )
PHP_FE( intlcal_get, ainfo_cal_field ) PHP_FE( intlcal_get, ainfo_cal_field )
@ -806,9 +796,7 @@ static const zend_function_entry intl_functions[] = {
PHP_FE( intlcal_field_difference, ainfo_cal_field_difference ) PHP_FE( intlcal_field_difference, ainfo_cal_field_difference )
PHP_FE( intlcal_get_actual_maximum, ainfo_cal_field ) PHP_FE( intlcal_get_actual_maximum, ainfo_cal_field )
PHP_FE( intlcal_get_actual_minimum, ainfo_cal_field ) PHP_FE( intlcal_get_actual_minimum, ainfo_cal_field )
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
PHP_FE( intlcal_get_day_of_week_type, ainfo_cal_dow ) PHP_FE( intlcal_get_day_of_week_type, ainfo_cal_dow )
#endif
PHP_FE( intlcal_get_first_day_of_week, ainfo_cal_only_cal ) PHP_FE( intlcal_get_first_day_of_week, ainfo_cal_only_cal )
PHP_FE( intlcal_get_greatest_minimum, ainfo_cal_field ) PHP_FE( intlcal_get_greatest_minimum, ainfo_cal_field )
PHP_FE( intlcal_get_least_maximum, ainfo_cal_field ) PHP_FE( intlcal_get_least_maximum, ainfo_cal_field )
@ -818,28 +806,22 @@ static const zend_function_entry intl_functions[] = {
PHP_FE( intlcal_get_minimum, ainfo_cal_field ) PHP_FE( intlcal_get_minimum, ainfo_cal_field )
PHP_FE( intlcal_get_time_zone, ainfo_cal_only_cal ) PHP_FE( intlcal_get_time_zone, ainfo_cal_only_cal )
PHP_FE( intlcal_get_type, ainfo_cal_only_cal ) PHP_FE( intlcal_get_type, ainfo_cal_only_cal )
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
PHP_FE( intlcal_get_weekend_transition, ainfo_cal_dow ) PHP_FE( intlcal_get_weekend_transition, ainfo_cal_dow )
#endif
PHP_FE( intlcal_in_daylight_time, ainfo_cal_only_cal ) PHP_FE( intlcal_in_daylight_time, ainfo_cal_only_cal )
PHP_FE( intlcal_is_equivalent_to, ainfo_cal_other_cal ) PHP_FE( intlcal_is_equivalent_to, ainfo_cal_other_cal )
PHP_FE( intlcal_is_lenient, ainfo_cal_only_cal ) PHP_FE( intlcal_is_lenient, ainfo_cal_only_cal )
PHP_FE( intlcal_is_set, ainfo_cal_field ) PHP_FE( intlcal_is_set, ainfo_cal_field )
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44
PHP_FE( intlcal_is_weekend, ainfo_cal_date_optional ) PHP_FE( intlcal_is_weekend, ainfo_cal_date_optional )
#endif
PHP_FE( intlcal_set_first_day_of_week, ainfo_cal_dow ) PHP_FE( intlcal_set_first_day_of_week, ainfo_cal_dow )
PHP_FE( intlcal_set_lenient, ainfo_cal_set_lenient ) PHP_FE( intlcal_set_lenient, ainfo_cal_set_lenient )
PHP_FE( intlcal_set_minimal_days_in_first_week, ainfo_cal_set_minimal_days_in_first_week ) PHP_FE( intlcal_set_minimal_days_in_first_week, ainfo_cal_set_minimal_days_in_first_week )
PHP_FE( intlcal_equals, ainfo_cal_other_cal ) PHP_FE( intlcal_equals, ainfo_cal_other_cal )
PHP_FE( intlcal_from_date_time, ainfo_cal_from_date_time ) PHP_FE( intlcal_from_date_time, ainfo_cal_from_date_time )
PHP_FE( intlcal_to_date_time, ainfo_cal_only_cal ) PHP_FE( intlcal_to_date_time, ainfo_cal_only_cal )
#if U_ICU_VERSION_MAJOR_NUM >= 49
PHP_FE( intlcal_get_repeated_wall_time_option, ainfo_cal_only_cal ) PHP_FE( intlcal_get_repeated_wall_time_option, ainfo_cal_only_cal )
PHP_FE( intlcal_get_skipped_wall_time_option, ainfo_cal_only_cal ) PHP_FE( intlcal_get_skipped_wall_time_option, ainfo_cal_only_cal )
PHP_FE( intlcal_set_repeated_wall_time_option, ainfo_cal_wall_time_option ) PHP_FE( intlcal_set_repeated_wall_time_option, ainfo_cal_wall_time_option )
PHP_FE( intlcal_set_skipped_wall_time_option, ainfo_cal_wall_time_option ) PHP_FE( intlcal_set_skipped_wall_time_option, ainfo_cal_wall_time_option )
#endif
PHP_FE( intlcal_get_error_code, ainfo_cal_only_cal ) PHP_FE( intlcal_get_error_code, ainfo_cal_only_cal )
PHP_FE( intlcal_get_error_message, ainfo_cal_only_cal ) PHP_FE( intlcal_get_error_message, ainfo_cal_only_cal )
@ -972,13 +954,11 @@ PHP_MINIT_FUNCTION( intl )
/* Expose IDN constants to PHP scripts. */ /* Expose IDN constants to PHP scripts. */
idn_register_constants(INIT_FUNC_ARGS_PASSTHRU); idn_register_constants(INIT_FUNC_ARGS_PASSTHRU);
#if U_ICU_VERSION_MAJOR_NUM * 1000 + U_ICU_VERSION_MINOR_NUM >= 4002
/* Register 'Spoofchecker' PHP class */ /* Register 'Spoofchecker' PHP class */
spoofchecker_register_Spoofchecker_class( ); spoofchecker_register_Spoofchecker_class( );
/* Expose Spoofchecker constants to PHP scripts */ /* Expose Spoofchecker constants to PHP scripts */
spoofchecker_register_constants( INIT_FUNC_ARGS_PASSTHRU ); spoofchecker_register_constants( INIT_FUNC_ARGS_PASSTHRU );
#endif
/* Register 'IntlException' PHP class */ /* Register 'IntlException' PHP class */
intl_register_IntlException_class( ); intl_register_IntlException_class( );

View file

@ -2,7 +2,6 @@
IntlRuleBasedBreakIterator::__construct(): arg errors IntlRuleBasedBreakIterator::__construct(): arg errors
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU >= 4.8 only'; ?>
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -2,7 +2,6 @@
Bug #62070: Collator::getSortKey() returns garbage Bug #62070: Collator::getSortKey() returns garbage
--SKIPIF-- --SKIPIF--
<?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?> <?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '49') < 0) die('skip for ICU >= 49'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '53.1') >= 0) die('skip for ICU < 53.1'); ?> <?php if (version_compare(INTL_ICU_VERSION, '53.1') >= 0) die('skip for ICU < 53.1'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ IntlCalendar::createInstance() basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlCalendar::createInstance() argument variations
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -81,4 +79,4 @@ IntlTimeZone Object
[currentOffset] => %d [currentOffset] => %d
) )
pt pt
==DONE== ==DONE==

View file

@ -6,8 +6,8 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.4') < 0 || version_compare(INTL_ICU_VERSION, '52.1') >= 0) if (version_compare(INTL_ICU_VERSION, '52.1') >= 0)
die('skip for ICU >= 4.4 and ICU < 52.1'); die('skip for ICU < 52.1');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.4') < 0)
die('skip for ICU 4.4+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlCalendar::getKeywordValuesForLocale() basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.2') < 0)
die('skip for ICU 4.2+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -33,4 +31,4 @@ Array
bool(true) bool(true)
bool(true) bool(true)
==DONE== ==DONE==

View file

@ -4,8 +4,6 @@ IntlCalendar::getKeywordValuesForLocale(): bad arguments
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.2') < 0)
die('skip for ICU 4.2+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlCalendar::getLocale() basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -19,4 +17,4 @@ var_dump(intlcal_get_locale($intlcal, Locale::VALID_LOCALE));
--EXPECT-- --EXPECT--
string(2) "nl" string(2) "nl"
string(5) "nl_NL" string(5) "nl_NL"
==DONE== ==DONE==

View file

@ -4,8 +4,6 @@ IntlCalendar::getMinimalDaysInFirstWeek() basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -19,4 +17,4 @@ var_dump(intlcal_get_minimal_days_in_first_week($intlcal));
--EXPECT-- --EXPECT--
int(4) int(4)
int(4) int(4)
==DONE== ==DONE==

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '49') < 0)
die('skip for ICU 49+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlCalendar::getTimeZone() basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -31,4 +29,4 @@ IntlTimeZone Object
[rawOffset] => 60000 [rawOffset] => 60000
[currentOffset] => 60000 [currentOffset] => 60000
) )
==DONE== ==DONE==

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.4') < 0)
die('skip for ICU 4.4+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -21,4 +19,4 @@ var_dump(intlcal_get_weekend_transition($intlcal, IntlCalendar::DOW_SUNDAY));
--EXPECT-- --EXPECT--
int(86400000) int(86400000)
int(86400000) int(86400000)
==DONE== ==DONE==

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.4') < 0)
die('skip for ICU 4.4+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlCalendar::get/setRepeatedWallTimeOption(): basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '49') < 0)
die('skip for ICU 49+');
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ IntlCalendar::get/setSkippedWallTimeOption(): basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '49') < 0)
die('skip for ICU 49+');
--FILE-- --FILE--
<?php <?php

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.4') < 0)
die('skip for ICU 4.4+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -23,4 +21,4 @@ var_dump($intlcal->isWeekend(strtotime('2012-03-11 12:00:00 +0000') * 1000));
bool(false) bool(false)
bool(false) bool(false)
bool(true) bool(true)
==DONE== ==DONE==

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.4') < 0)
die('skip for ICU 4.4+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '49') < 0)
die('skip for ICU 49+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlCalendar::setTimeZone() basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -36,4 +34,4 @@ GMT
int(0) int(0)
GMT+05:30 GMT+05:30
int(19800000) int(19800000)
==DONE== ==DONE==

View file

@ -1,82 +0,0 @@
--TEST--
create() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try creating collator with different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$locales = array(
'EN-US-ODESSA',
'UK_UA_ODESSA',
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'',
'root',
'uk@currency=EURO',
'12345678911131517192123252729313335373941434547495153575961636567697173757779818385878991939597991234567891113151719212325272931333537394143454749515357596163656769717375777981838587899193959799'
);
foreach( $locales as $locale )
{
// Create Collator with the current locale.
$coll = ut_coll_create( $locale );
if( !is_object($coll) )
{
$res_str .= "Error creating collator with '$locale' locale: " .
intl_get_error_message() . "\n";
continue;
}
// Get the requested, valid and actual locales.
$vloc = ut_coll_get_locale( $coll, Locale::VALID_LOCALE );
$aloc = ut_coll_get_locale( $coll, Locale::ACTUAL_LOCALE );
// Show them.
$res_str .= "Locale: '$locale'\n" .
" ULOC_REQUESTED_LOCALE = '$locale'\n" .
" ULOC_VALID_LOCALE = '$vloc'\n" .
" ULOC_ACTUAL_LOCALE = '$aloc'\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTF--
Locale: 'EN-US-ODESSA'
ULOC_REQUESTED_LOCALE = 'EN-US-ODESSA'
ULOC_VALID_LOCALE = 'en_US'
ULOC_ACTUAL_LOCALE = 'en'
Locale: 'UK_UA_ODESSA'
ULOC_REQUESTED_LOCALE = 'UK_UA_ODESSA'
ULOC_VALID_LOCALE = 'uk_UA'
ULOC_ACTUAL_LOCALE = 'uk'
Locale: 'uk-ua_CALIFORNIA@currency=;currency=GRN'
ULOC_REQUESTED_LOCALE = 'uk-ua_CALIFORNIA@currency=;currency=GRN'
ULOC_VALID_LOCALE = 'uk_UA'
ULOC_ACTUAL_LOCALE = 'uk'
Locale: ''
ULOC_REQUESTED_LOCALE = ''
ULOC_VALID_LOCALE = '%s'
ULOC_ACTUAL_LOCALE = '%s'
Locale: 'root'
ULOC_REQUESTED_LOCALE = 'root'
ULOC_VALID_LOCALE = 'root'
ULOC_ACTUAL_LOCALE = 'root'
Locale: 'uk@currency=EURO'
ULOC_REQUESTED_LOCALE = 'uk@currency=EURO'
ULOC_VALID_LOCALE = 'uk'
ULOC_ACTUAL_LOCALE = 'uk'
Error creating collator with '12345678911131517192123252729313335373941434547495153575961636567697173757779818385878991939597991234567891113151719212325272931333537394143454749515357596163656769717375777981838587899193959799' locale: Locale string too long, should be no longer than %d characters: U_ILLEGAL_ARGUMENT_ERROR

View file

@ -2,7 +2,6 @@
create() icu >= 4.8 && icu < 53.1 create() icu >= 4.8 && icu < 53.1
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '53.1') >= 0) die('skip for ICU < 53.1'); ?> <?php if (version_compare(INTL_ICU_VERSION, '53.1') >= 0) die('skip for ICU < 53.1'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,53 +0,0 @@
--TEST--
get_locale() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--INI--
precision=6
--FILE--
<?php
/*
* Try to specify valid and invalid locale types when getting locale.
*/
function ut_main()
{
$locales = array(
Locale::VALID_LOCALE,
Locale::ACTUAL_LOCALE,
100,
-100,
-9999999999999,
9999999999999,
1.2,
);
$coll = ut_coll_create( 'en_US' );
$res_str = '';
foreach( $locales as $locale )
{
$rc = ut_coll_get_locale( $coll, $locale );
$res_str .= sprintf(
"Locale of type %s is %s\n",
dump( $locale ),
dump( $rc ) );
}
return $res_str . "\n";
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECT--
Locale of type 1 is 'en_US'
Locale of type 0 is 'en'
Locale of type 100 is false
Locale of type -100 is false
Locale of type -9999999999999 is false
Locale of type 9999999999999 is false
Locale of type 1.2 is 'en_US'

View file

@ -2,7 +2,6 @@
get_locale() icu >= 4.8 get_locale() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU 4.8+ only'; ?>
<?php if (PHP_INT_SIZE != 8) die('skip 64-bit only'); ?> <?php if (PHP_INT_SIZE != 8) die('skip 64-bit only'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -2,7 +2,6 @@
collator_get_sort_key() collator_get_sort_key()
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU >= 4.8 only'; ?>
<?php /* XXX Obviously it fails somewhere between >= 4.8 and < 51.2 */ <?php /* XXX Obviously it fails somewhere between >= 4.8 and < 51.2 */
if (version_compare(INTL_ICU_VERSION, '51.2') >= 0) die('skip for ICU < 51.2'); ?> if (version_compare(INTL_ICU_VERSION, '51.2') >= 0) die('skip for ICU < 51.2'); ?>
--FILE-- --FILE--

View file

@ -1,37 +0,0 @@
--TEST--
Cloning datefmt icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
include_once( 'ut_common.inc' );
$GLOBALS['oo-mode'] = true;
$res_str = '';
/*
* Clone
*/
$start_pattern = 'dd-MM-YY';
$fmt = ut_datefmt_create( "en-US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/New_York', IntlDateFormatter::GREGORIAN , $start_pattern );
$formatted = ut_datefmt_format($fmt,0);
$res_str .= "\nResult of formatting timestamp=0 is : \n$formatted";
$fmt_clone = clone $fmt;
ut_datefmt_set_pattern( $fmt , 'yyyy-DDD.hh:mm:ss z' );
$formatted = ut_datefmt_format($fmt,0);
$res_str .= "\nResult of formatting timestamp=0 is : \n$formatted";
$formatted = ut_datefmt_format($fmt_clone,0);
$res_str .= "\nResult of clone formatting timestamp=0 is : \n$formatted";
echo $res_str;
?>
--EXPECT--
Result of formatting timestamp=0 is :
31-12-69
Result of formatting timestamp=0 is :
1969-365.07:00:00 EST
Result of clone formatting timestamp=0 is :
31-12-69

View file

@ -2,7 +2,6 @@
Cloning datefmt icu >= 4.8 Cloning datefmt icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU 4.8+ only'; ?>
--FILE-- --FILE--
<?php <?php
include_once( 'ut_common.inc' ); include_once( 'ut_common.inc' );

View file

@ -1,85 +0,0 @@
--TEST--
datefmt_get_pattern_code and datefmt_set_pattern_code() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Test for the datefmt_get_pattern & datefmt_set_pattern function
*/
function ut_main()
{
$pattern_arr = array (
'DD-MM-YYYY hh:mm:ss',
'yyyy-DDD.hh:mm:ss z',
"yyyy/MM/dd",
"yyyyMMdd"
);
$res_str = '';
$start_pattern = 'dd-MM-YY';
$res_str .= "\nCreating IntlDateFormatter with pattern = $start_pattern ";
//$fmt = ut_datefmt_create( "en-US", IntlDateFormatter::SHORT, IntlDateFormatter::SHORT , 'America/New_York', IntlDateFormatter::GREGORIAN , $start_pattern );
$fmt = ut_datefmt_create( "en-US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/New_York', IntlDateFormatter::GREGORIAN , $start_pattern );
$pattern = ut_datefmt_get_pattern( $fmt);
$res_str .= "\nAfter call to get_pattern : pattern= $pattern";
$formatted = ut_datefmt_format($fmt,0);
$res_str .= "\nResult of formatting timestamp=0 is : \n$formatted";
foreach( $pattern_arr as $pattern_entry )
{
$res_str .= "\n-------------------";
$res_str .= "\nSetting IntlDateFormatter with pattern = $pattern_entry ";
ut_datefmt_set_pattern( $fmt , $pattern_entry );
$pattern = ut_datefmt_get_pattern( $fmt);
$res_str .= "\nAfter call to get_pattern : pattern= $pattern";
$formatted = ut_datefmt_format($fmt,0);
$res_str .= "\nResult of formatting timestamp=0 with the new pattern is : \n$formatted";
$res_str .= "\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECT--
Creating IntlDateFormatter with pattern = dd-MM-YY
After call to get_pattern : pattern= dd-MM-YY
Result of formatting timestamp=0 is :
31-12-69
-------------------
Setting IntlDateFormatter with pattern = DD-MM-YYYY hh:mm:ss
After call to get_pattern : pattern= DD-MM-YYYY hh:mm:ss
Result of formatting timestamp=0 with the new pattern is :
365-12-1969 07:00:00
-------------------
Setting IntlDateFormatter with pattern = yyyy-DDD.hh:mm:ss z
After call to get_pattern : pattern= yyyy-DDD.hh:mm:ss z
Result of formatting timestamp=0 with the new pattern is :
1969-365.07:00:00 EST
-------------------
Setting IntlDateFormatter with pattern = yyyy/MM/dd
After call to get_pattern : pattern= yyyy/MM/dd
Result of formatting timestamp=0 with the new pattern is :
1969/12/31
-------------------
Setting IntlDateFormatter with pattern = yyyyMMdd
After call to get_pattern : pattern= yyyyMMdd
Result of formatting timestamp=0 with the new pattern is :
19691231

View file

@ -2,7 +2,6 @@
datefmt_get_pattern_code and datefmt_set_pattern_code() icu >= 4.8 datefmt_get_pattern_code and datefmt_set_pattern_code() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU 4.8+ only'; ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,136 +0,0 @@
--TEST--
datefmt_localtime_code() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--INI--
date.timezone=UTC
--FILE--
<?php
/*
* Test for the datefmt_localtime function
*/
function ut_main()
{
$locale_arr = array (
'en_US_CA'
);
$datetype_arr = array (
IntlDateFormatter::FULL,
IntlDateFormatter::LONG,
IntlDateFormatter::MEDIUM,
IntlDateFormatter::SHORT,
IntlDateFormatter::NONE
);
$res_str = '';
$datetype_arr = array (
IntlDateFormatter::FULL,
IntlDateFormatter::LONG,
IntlDateFormatter::MEDIUM,
);
$res_str = '';
$text_arr = array (
"Thursday, December 18, 1969 8:49:59 AM PST",
"June 18, 1969 8:49:59 AM ",
"12/18/69 8:49 AM",
"19691218 08:49 AM"
);
$fmt1 = ut_datefmt_create( 'en_US_CA', IntlDateFormatter::LONG, IntlDateFormatter::LONG);
$fmt2 = ut_datefmt_create( 'en_US_CA', IntlDateFormatter::MEDIUM, IntlDateFormatter::MEDIUM);
$fmt3 = ut_datefmt_create( 'en_US_CA', IntlDateFormatter::FULL, IntlDateFormatter::FULL);
$fmt_array = array(
$fmt1 , $fmt2 ,$fmt3
);
$fmt_desc_array = array(
"DateType::LONG, TimeType::LONG",
"DateType::MEDIUM, TimeType::MEDIUM",
"DateType::FULL, TimeType::FULL"
);
foreach( $text_arr as $text_entry){
$res_str .= "\n-------------------------------\n";
$res_str .= "\nInput text is : $text_entry";
$cnt =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 );
if( $parsed_arr){
$res_str .= "\n";
foreach( $parsed_arr as $key => $value){
$res_str .= "$key : '$value' , ";
}
}
/*
else{
//$res_str .= "No values found from LocaleTime parsing.";
$res_str .= "\tError : '".intl_get_error_message()."'";
}
*/
}//end of for $fmt_array
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECTF--
-------------------------------
Input text is : Thursday, December 18, 1969 8:49:59 AM PST
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL
tm_sec : '59' , tm_min : '49' , tm_hour : '8' , tm_year : '69' , tm_mday : '18' , tm_wday : '4' , tm_yday : '352' , tm_mon : '11' , tm_isdst : '0' ,
-------------------------------
Input text is : June 18, 1969 8:49:59 AM
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM
tm_sec : '59' , tm_min : '49' , tm_hour : '8' , tm_year : '69' , tm_mday : '18' , tm_wday : '3' , tm_yday : '169' , tm_mon : '5' , tm_isdst : '%d' ,
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL
-------------------------------
Input text is : 12/18/69 8:49 AM
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL
-------------------------------
Input text is : 19691218 08:49 AM
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL

View file

@ -1,113 +0,0 @@
--TEST--
datefmt_parse_code() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--INI--
date.timezone="America/Los_Angeles"
--FILE--
<?php
/*
* Test for the datefmt_parse function
*/
putenv('TZ=America/Los_Angeles');
function ut_main()
{
$locale_arr = array (
'en_US_CA'
);
$datetype_arr = array (
IntlDateFormatter::FULL,
IntlDateFormatter::LONG,
IntlDateFormatter::MEDIUM,
IntlDateFormatter::SHORT,
IntlDateFormatter::NONE
);
$res_str = '';
$text_arr = array (
// Full parsing
array("Sunday, September 18, 2039 4:06:40 PM PT", IntlDateFormatter::FULL, IntlDateFormatter::FULL),
array("Wednesday, December 17, 1969 6:40:00 PM PT", IntlDateFormatter::FULL, IntlDateFormatter::FULL),
array("Thursday, December 18, 1969 8:49:59 PM PST", IntlDateFormatter::FULL, IntlDateFormatter::FULL),
array("December 18, 1969 8:49:59 AM PST", IntlDateFormatter::LONG, IntlDateFormatter::FULL),
array("12/18/69 8:49 AM", IntlDateFormatter::SHORT, IntlDateFormatter::SHORT),
array("19691218 08:49 AM", IntlDateFormatter::SHORT, IntlDateFormatter::SHORT),
// Partial parsing
array("Sunday, September 18, 2039 4:06:40 PM PT", IntlDateFormatter::FULL, IntlDateFormatter::NONE),
array("Sunday, September 18, 2039 4:06:40 PM PT", IntlDateFormatter::FULL, IntlDateFormatter::SHORT),
array("December 18, 1969 8:49:59 AM PST", IntlDateFormatter::LONG, IntlDateFormatter::NONE),
array("December 18, 1969 8:49:59 AM PST", IntlDateFormatter::LONG, IntlDateFormatter::SHORT),
array("12/18/69 8:49 AM", IntlDateFormatter::SHORT, IntlDateFormatter::LONG),
array("19691218 08:49 AM", IntlDateFormatter::SHORT, IntlDateFormatter::LONG),
);
foreach( $text_arr as $text_entry){
$fmt = ut_datefmt_create( 'en_US_CA', $text_entry[1], $text_entry[2]);
$parse_pos = 0;
$parsed = ut_datefmt_parse( $fmt , $text_entry[0] , $parse_pos );
$res_str .= "\nInput text : {$text_entry[0]} ; DF = {$text_entry[1]}; TF = {$text_entry[2]}";
if( intl_get_error_code() != U_ZERO_ERROR) {
$res_str .= "\nError : ".intl_get_error_message();
}
$res_str .= "\nParsed: $parsed; parse_pos : $parse_pos\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECT--
Input text : Sunday, September 18, 2039 4:06:40 PM PT ; DF = 0; TF = 0
Parsed: 2200000000; parse_pos : 40
Input text : Wednesday, December 17, 1969 6:40:00 PM PT ; DF = 0; TF = 0
Parsed: -1200000; parse_pos : 42
Input text : Thursday, December 18, 1969 8:49:59 PM PST ; DF = 0; TF = 0
Parsed: -1105801; parse_pos : 42
Input text : December 18, 1969 8:49:59 AM PST ; DF = 1; TF = 0
Parsed: -1149001; parse_pos : 32
Input text : 12/18/69 8:49 AM ; DF = 3; TF = 3
Parsed: -1149060; parse_pos : 16
Input text : 19691218 08:49 AM ; DF = 3; TF = 3
Error : Date parsing failed: U_PARSE_ERROR
Parsed: ; parse_pos : 8
Input text : Sunday, September 18, 2039 4:06:40 PM PT ; DF = 0; TF = -1
Parsed: 2199942000; parse_pos : 26
Input text : Sunday, September 18, 2039 4:06:40 PM PT ; DF = 0; TF = 3
Error : Date parsing failed: U_PARSE_ERROR
Parsed: ; parse_pos : 31
Input text : December 18, 1969 8:49:59 AM PST ; DF = 1; TF = -1
Parsed: -1180800; parse_pos : 17
Input text : December 18, 1969 8:49:59 AM PST ; DF = 1; TF = 3
Error : Date parsing failed: U_PARSE_ERROR
Parsed: ; parse_pos : 22
Input text : 12/18/69 8:49 AM ; DF = 3; TF = 1
Error : Date parsing failed: U_PARSE_ERROR
Parsed: ; parse_pos : 13
Input text : 19691218 08:49 AM ; DF = 3; TF = 1
Error : Date parsing failed: U_PARSE_ERROR
Parsed: ; parse_pos : 8

View file

@ -1,120 +0,0 @@
--TEST--
datefmt_parse_localtime() with parse pos icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Test for the datefmt_parse_localtime function with parse pos
*/
function ut_main()
{
$locale_arr = array (
'en_US_CA'
);
$datetype_arr = array (
IntlDateFormatter::FULL,
IntlDateFormatter::LONG,
IntlDateFormatter::MEDIUM,
);
$res_str = '';
$text_arr = array (
"Thursday, December 18, 1969 8:49:59 AM PST",
"June 18, 1969 8:49:59 AM ",
"12/18/69 8:49 AM",
"19691218 08:49 AM"
);
$fmt1 = ut_datefmt_create( 'en_US_CA', IntlDateFormatter::LONG, IntlDateFormatter::LONG);
$fmt2 = ut_datefmt_create( 'en_US_CA', IntlDateFormatter::MEDIUM, IntlDateFormatter::MEDIUM);
$fmt3 = ut_datefmt_create( 'en_US_CA', IntlDateFormatter::FULL, IntlDateFormatter::FULL);
$fmt_array = array(
$fmt1 , $fmt2 ,$fmt3
);
$fmt_desc_array = array(
"DateType::LONG, TimeType::LONG",
"DateType::MEDIUM, TimeType::MEDIUM",
"DateType::FULL, TimeType::FULL"
);
foreach( $text_arr as $text_entry){
$res_str .= "\n-------------------------------\n";
$res_str .= "\nInput text is : $text_entry";
$cnt =0;
foreach( $fmt_array as $fmt_entry ){
$res_str .= "\n------------";
$res_str .= "\nIntlDateFormatter : ".$fmt_desc_array[$cnt];
$cnt++;
$parsed_arr = ut_datefmt_localtime( $fmt_entry , $text_entry);
if( $parsed_arr){
$res_str .= "\n";
foreach( $parsed_arr as $key => $value){
$res_str .= "$key : '$value' , ";
}
}
else{
//$res_str .= "No values found from LocaleTime parsing.";
$res_str .= "\tError : '".intl_get_error_message()."'";
}
}
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECTF--
-------------------------------
Input text is : Thursday, December 18, 1969 8:49:59 AM PST
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL
tm_sec : '59' , tm_min : '49' , tm_hour : '8' , tm_year : '69' , tm_mday : '18' , tm_wday : '4' , tm_yday : '352' , tm_mon : '11' , tm_isdst : '0' ,
-------------------------------
Input text is : June 18, 1969 8:49:59 AM
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM
tm_sec : '59' , tm_min : '49' , tm_hour : '8' , tm_year : '69' , tm_mday : '18' , tm_wday : '3' , tm_yday : '169' , tm_mon : '5' , tm_isdst : '%d' ,
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL Error : 'Date parsing failed: U_PARSE_ERROR'
-------------------------------
Input text is : 12/18/69 8:49 AM
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL Error : 'Date parsing failed: U_PARSE_ERROR'
-------------------------------
Input text is : 19691218 08:49 AM
------------
IntlDateFormatter : DateType::LONG, TimeType::LONG Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::MEDIUM, TimeType::MEDIUM Error : 'Date parsing failed: U_PARSE_ERROR'
------------
IntlDateFormatter : DateType::FULL, TimeType::FULL Error : 'Date parsing failed: U_PARSE_ERROR'

View file

@ -1,157 +0,0 @@
--TEST--
datefmt_parse_timestamp_code() with parse pos icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--INI--
date.timezone="America/Los_Angeles"
--ENV--
TZ=America/Los_Angeles
--FILE--
<?php
/*
* Test for the datefmt_parse_timestamp function with parse_pos
*/
function ut_main()
{
$locale_arr = array (
'en_US_CA'
);
$datetype_arr = array (
IntlDateFormatter::FULL,
IntlDateFormatter::LONG,
IntlDateFormatter::MEDIUM,
IntlDateFormatter::SHORT,
IntlDateFormatter::NONE
);
$res_str = '';
$text_arr = array (
"Sunday, September 18, 3039 4:06:40 PM PT",
"Thursday, December 18, 1969 8:49:59 AM PST",
//"December 18, 1969 8:49:59 AM PST",
"12/18/69 8:49 AM",
"20111218 08:49 AM",
"19691218 08:49 AM"
);
foreach( $text_arr as $text_entry){
$res_str .= "\n------------\n";
$res_str .= "\nInput text is : $text_entry";
$res_str .= "\n------------";
foreach( $locale_arr as $locale_entry ){
$res_str .= "\nLocale is : $locale_entry";
$res_str .= "\n------------";
foreach( $datetype_arr as $datetype_entry )
{
$res_str .= "\ndatetype = $datetype_entry ,timetype =$datetype_entry";
$fmt = ut_datefmt_create( $locale_entry , $datetype_entry ,$datetype_entry);
$pos = 0;
$parsed = ut_datefmt_parse( $fmt , $text_entry, $pos);
if( intl_get_error_code() == U_ZERO_ERROR){
$res_str .= "\nParsed text is : $parsed; Position = $pos";
}else{
$res_str .= "\nError while parsing as: '".intl_get_error_message()."'; Position = $pos";
}
}
}
}
$res_str .= "\n";
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECT--
------------
Input text is : Sunday, September 18, 3039 4:06:40 PM PT
------------
Locale is : en_US_CA
------------
datetype = 0 ,timetype =0
Parsed text is : 33756908800; Position = 40
datetype = 1 ,timetype =1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 2 ,timetype =2
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 3 ,timetype =3
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = -1 ,timetype =-1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
------------
Input text is : Thursday, December 18, 1969 8:49:59 AM PST
------------
Locale is : en_US_CA
------------
datetype = 0 ,timetype =0
Parsed text is : -1149001; Position = 42
datetype = 1 ,timetype =1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 2 ,timetype =2
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 3 ,timetype =3
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = -1 ,timetype =-1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
------------
Input text is : 12/18/69 8:49 AM
------------
Locale is : en_US_CA
------------
datetype = 0 ,timetype =0
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 1 ,timetype =1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 2 ,timetype =2
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 3 ,timetype =3
Parsed text is : -1149060; Position = 16
datetype = -1 ,timetype =-1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
------------
Input text is : 20111218 08:49 AM
------------
Locale is : en_US_CA
------------
datetype = 0 ,timetype =0
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 1 ,timetype =1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 2 ,timetype =2
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 3 ,timetype =3
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 8
datetype = -1 ,timetype =-1
Parsed text is : 1324226940; Position = 17
------------
Input text is : 19691218 08:49 AM
------------
Locale is : en_US_CA
------------
datetype = 0 ,timetype =0
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 1 ,timetype =1
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 2 ,timetype =2
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 0
datetype = 3 ,timetype =3
Error while parsing as: 'Date parsing failed: U_PARSE_ERROR'; Position = 8
datetype = -1 ,timetype =-1
Parsed text is : -1149060; Position = 17

View file

@ -1,76 +0,0 @@
--TEST--
datefmt_set_timezone_id_code() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Test for the datefmt_set_timezone_id function
*/
function ut_main()
{
$timezone_id_arr = array (
'America/New_York',
'America/Los_Angeles',
'America/Chicago',
'CN'
);
$timestamp_entry = 0;
$res_str = '';
$fmt = ut_datefmt_create( "en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/San_Francisco' , IntlDateFormatter::GREGORIAN );
$timezone_id = ut_datefmt_get_timezone_id( $fmt );
$res_str .= "\nAfter creation of the dateformatter : timezone_id= $timezone_id\n";
foreach( $timezone_id_arr as $timezone_id_entry )
{
$res_str .= "-----------";
$res_str .= "\nTrying to set timezone_id= $timezone_id_entry";
ut_datefmt_set_timezone_id( $fmt , $timezone_id_entry );
$timezone_id = ut_datefmt_get_timezone_id( $fmt );
$res_str .= "\nAfter call to set_timezone_id : timezone_id= $timezone_id";
$formatted = ut_datefmt_format( $fmt, 0);
$res_str .= "\nFormatting timestamp=0 resulted in $formatted";
$formatted = ut_datefmt_format( $fmt, 3600);
$res_str .= "\nFormatting timestamp=3600 resulted in $formatted";
$res_str .= "\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECT--
After creation of the dateformatter : timezone_id= America/San_Francisco
-----------
Trying to set timezone_id= America/New_York
After call to set_timezone_id : timezone_id= America/New_York
Formatting timestamp=0 resulted in Wednesday, December 31, 1969 7:00:00 PM Eastern Standard Time
Formatting timestamp=3600 resulted in Wednesday, December 31, 1969 8:00:00 PM Eastern Standard Time
-----------
Trying to set timezone_id= America/Los_Angeles
After call to set_timezone_id : timezone_id= America/Los_Angeles
Formatting timestamp=0 resulted in Wednesday, December 31, 1969 4:00:00 PM Pacific Standard Time
Formatting timestamp=3600 resulted in Wednesday, December 31, 1969 5:00:00 PM Pacific Standard Time
-----------
Trying to set timezone_id= America/Chicago
After call to set_timezone_id : timezone_id= America/Chicago
Formatting timestamp=0 resulted in Wednesday, December 31, 1969 6:00:00 PM Central Standard Time
Formatting timestamp=3600 resulted in Wednesday, December 31, 1969 7:00:00 PM Central Standard Time
-----------
Trying to set timezone_id= CN
After call to set_timezone_id : timezone_id= CN
Formatting timestamp=0 resulted in Thursday, January 1, 1970 12:00:00 AM GMT+00:00
Formatting timestamp=3600 resulted in Thursday, January 1, 1970 1:00:00 AM GMT+00:00

View file

@ -4,7 +4,6 @@ datefmt_set_timezone_id_code() icu >= 4.8
date.timezone=Atlantic/Azores date.timezone=Atlantic/Azores
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?> <?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,130 +0,0 @@
--TEST--
numfmt_format() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Format a number using misc locales/patterns.
*/
/*
* TODO: doesn't pass on ICU 3.6 because 'ru' and 'de' locales changed
* currency and percent formatting.
*/
function ut_main()
{
$styles = array(
NumberFormatter::PATTERN_DECIMAL => '##.#####################',
NumberFormatter::DECIMAL => '',
NumberFormatter::CURRENCY => '',
NumberFormatter::PERCENT => '',
NumberFormatter::SCIENTIFIC => '',
NumberFormatter::SPELLOUT => '@@@@@@@',
NumberFormatter::ORDINAL => '',
NumberFormatter::DURATION => '',
NumberFormatter::PATTERN_RULEBASED => '#####.###',
1234999, // bad one
);
$integer = array(
NumberFormatter::ORDINAL => '',
NumberFormatter::DURATION => '',
);
$locales = array(
'en_US',
'ru_UA',
'de',
'fr',
'en_UK'
);
$str_res = '';
$number = 1234567.891234567890000;
foreach( $locales as $locale )
{
$str_res .= "\nLocale is: $locale\n";
foreach( $styles as $style => $pattern )
{
$fmt = ut_nfmt_create( $locale, $style, $pattern );
if(!$fmt) {
$str_res .= "Bad formatter!\n";
continue;
}
$str_res .= dump( isset($integer[$style])?ut_nfmt_format( $fmt, $number, NumberFormatter::TYPE_INT32):ut_nfmt_format( $fmt, $number ) ) . "\n";
}
}
return $str_res;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECTREGEX--
Locale is: en_US
'1234567.89123457'
'1,234,567.891'
'\$1,234,567.89'
'123,456,789%'
'1.23456789123457E6'
'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five seven'
'1,234,567(th|ᵗʰ)'
'342:56:07'
'#####.###'
Bad formatter!
Locale is: ru_UA
'1234567,89123457'
'1 234 567,891'
'1 234 567,89 ?(грн\.|₴)'
'123 456 789 ?%'
'1,23456789123457E6'
'один миллион двасти тридцать четыре тысяч пятьсот шестьдесят семь запятая восемь девять один два три четыре пять семь'
'1 234 567.?'
'1 234 567'
'#####.###'
Bad formatter!
Locale is: de
'1234567,89123457'
'1.234.567,891'
'(¤ )?1.234.567,89( ¤)?'
'123\.456\.789 %'
'1,23456789123457E6'
'eine Million zwei­hundert­vier­und­dreißig­tausend­fünf­hundert­sieben­und­sechzig Komma acht neun eins zwei drei vier fünf sieben'
'1.234.567.?'
'1.234.567'
'#####.###'
Bad formatter!
Locale is: fr
'1234567,89123457'
'1 234 567,891'
'1 234 567,89 ¤'
'123 456 789 ?%'
'1,23456789123457E6'
'un million deux-cent-trente-quatre-mille-cinq-cent-soixante-sept virgule huit neuf un deux trois quatre cinq sept'
'1 234 567ᵉ?'
'1 234 567'
'#####.###'
Bad formatter!
Locale is: en_UK
'1234567.89123457'
'1,234,567.891'
'¤1,234,567.89'
'123,456,789%'
'1.23456789123457E6'
'one million,? two hundred (and )?thirty-four thousand,? five hundred (and )?sixty-seven point eight nine one two three four five seven'
'1,234,567(th|ᵗʰ)'
'342:56:07'
'#####.###'
Bad formatter!

View file

@ -2,7 +2,6 @@
numfmt_format() icu >= 4.8 numfmt_format() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '52.1') >= 0) die('skip for ICU <= 52.1'); ?> <?php if (version_compare(INTL_ICU_VERSION, '52.1') >= 0) die('skip for ICU <= 52.1'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,50 +0,0 @@
--TEST--
numfmt_format_currency() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Format a number using misc currencies/locales.
*/
/*
* TODO: doesn't pass on ICU 3.6 because 'ru' and 'uk' locales changed
* currency formatting.
*/
function ut_main()
{
$locales = array(
'en_UK' => 'GBP',
'en_US' => 'USD',
'ru' => 'RUR',
'uk' => 'UAH',
'en' => 'UAH'
);
$res_str = '';
$number = 1234567.89;
foreach( $locales as $locale => $currency )
{
$fmt = ut_nfmt_create( $locale, NumberFormatter::CURRENCY );
$res_str .= "$locale: " . var_export( ut_nfmt_format_currency( $fmt, $number, $currency ), true ) . "\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECT--
en_UK: '£1,234,567.89'
en_US: '$1,234,567.89'
ru: '1 234 567,89 р.'
uk: '1 234 567,89 ₴'
en: '₴1,234,567.89'

View file

@ -2,7 +2,6 @@
numfmt_format_currency() icu >= 4.8 numfmt_format_currency() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,194 +0,0 @@
--TEST--
numfmt_get/set_attribute()
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.2', '<') != 1) print 'skip for ICU 4.4+'; ?>
--FILE--
<?php
/*
* Get/set various number formatting attributes.
*/
function ut_main()
{
// attr_name => array( attr, value )
$attributes = array(
'PARSE_INT_ONLY' => array( NumberFormatter::PARSE_INT_ONLY, 1, 12345.123456 ),
'GROUPING_USED' => array( NumberFormatter::GROUPING_USED, 0, 12345.123456 ),
'DECIMAL_ALWAYS_SHOWN' => array( NumberFormatter::DECIMAL_ALWAYS_SHOWN, 1, 12345 ),
'MAX_INTEGER_DIGITS' => array( NumberFormatter::MAX_INTEGER_DIGITS, 2, 12345.123456 ),
'MIN_INTEGER_DIGITS' => array( NumberFormatter::MIN_INTEGER_DIGITS, 20, 12345.123456 ),
'INTEGER_DIGITS' => array( NumberFormatter::INTEGER_DIGITS, 7, 12345.123456 ),
'MAX_FRACTION_DIGITS' => array( NumberFormatter::MAX_FRACTION_DIGITS, 2, 12345.123456 ),
'MIN_FRACTION_DIGITS' => array( NumberFormatter::MIN_FRACTION_DIGITS, 20, 12345.123456 ),
'FRACTION_DIGITS' => array( NumberFormatter::FRACTION_DIGITS, 5, 12345.123456 ),
'MULTIPLIER' => array( NumberFormatter::MULTIPLIER, 2, 12345.123456 ),
'GROUPING_SIZE' => array( NumberFormatter::GROUPING_SIZE, 2, 12345.123456 ),
'ROUNDING_MODE' => array( NumberFormatter::ROUNDING_MODE, 1, 12345.123456 ),
'ROUNDING_INCREMENT' => array( NumberFormatter::ROUNDING_INCREMENT, (float)2, 12345.123456 ),
'FORMAT_WIDTH' => array( NumberFormatter::FORMAT_WIDTH, 27, 12345.123456 ),
'PADDING_POSITION' => array( NumberFormatter::PADDING_POSITION, 2, 12345.123456 ),
'SECONDARY_GROUPING_SIZE' => array( NumberFormatter::SECONDARY_GROUPING_SIZE, 2, 12345.123456 ),
'SIGNIFICANT_DIGITS_USED' => array( NumberFormatter::SIGNIFICANT_DIGITS_USED, 1, 12345.123456 ),
'MIN_SIGNIFICANT_DIGITS' => array( NumberFormatter::MIN_SIGNIFICANT_DIGITS, 3, 1 ),
'MAX_SIGNIFICANT_DIGITS' => array( NumberFormatter::MAX_SIGNIFICANT_DIGITS, 4, 12345.123456 ),
// 'LENIENT_PARSE' => array( NumberFormatter::LENIENT_PARSE, 2, 12345.123456 )
);
$res_str = '';
$fmt = ut_nfmt_create( "en_US", NumberFormatter::DECIMAL );
foreach( $attributes as $attr_name => $args )
{
list( $attr, $new_val, $number ) = $args;
$res_str .= "\nAttribute $attr_name\n";
// Get original value of the attribute.
$orig_val = ut_nfmt_get_attribute( $fmt, $attr );
// Format the number using the original attribute value.
$rc = ut_nfmt_format( $fmt, $number );
$ps = ut_nfmt_parse( $fmt, $rc );
$res_str .= sprintf( "Old attribute value: %s ; Format result: %s ; Parse result: %s\n",
dump( $orig_val ),
dump( $rc ),
dump( $ps ) );
// Set new attribute value.
$rc = ut_nfmt_set_attribute( $fmt, $attr, $new_val );
if( $rc )
$res_str .= "Setting attribute: ok\n";
else
$res_str .= sprintf( "Setting attribute failed: %s\n", ut_nfmt_get_error_message( $fmt ) );
// Format the number using the new value.
$rc = ut_nfmt_format( $fmt, $number );
// Get current value of the attribute and check if it equals $new_val.
$attr_val_check = ut_nfmt_get_attribute( $fmt, $attr );
if( $attr_val_check !== $new_val )
$res_str .= "ERROR: New $attr_name attribute value has not been set correctly.\n";
$ps = ut_nfmt_parse( $fmt, $rc );
$res_str .= sprintf( "New attribute value: %s ; Format result: %s ; Parse result: %s\n",
dump( $new_val ),
dump( $rc ),
dump( $ps ) );
// Restore original attribute of the value
if( $attr != NumberFormatter::INTEGER_DIGITS && $attr != NumberFormatter::FRACTION_DIGITS
&& $attr != NumberFormatter::FORMAT_WIDTH && $attr != NumberFormatter::SIGNIFICANT_DIGITS_USED )
ut_nfmt_set_attribute( $fmt, $attr, $orig_val );
}
return $res_str;
}
include_once( 'ut_common.inc' );
// Run the test
ut_run();
?>
--EXPECT--
Attribute PARSE_INT_ONLY
Old attribute value: 0 ; Format result: '12,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345
Attribute GROUPING_USED
Old attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 0 ; Format result: '12345.123' ; Parse result: 12345.123
Attribute DECIMAL_ALWAYS_SHOWN
Old attribute value: 0 ; Format result: '12,345' ; Parse result: 12345
Setting attribute: ok
New attribute value: 1 ; Format result: '12,345.' ; Parse result: 12345
Attribute MAX_INTEGER_DIGITS
Old attribute value: 309 ; Format result: '12,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 2 ; Format result: '45.123' ; Parse result: 45.123
Attribute MIN_INTEGER_DIGITS
Old attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 20 ; Format result: '00,000,000,000,000,012,345.123' ; Parse result: 12345.123
Attribute INTEGER_DIGITS
Old attribute value: 1 ; Format result: '12,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 7 ; Format result: '0,012,345.123' ; Parse result: 12345.123
Attribute MAX_FRACTION_DIGITS
Old attribute value: 3 ; Format result: '0,012,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 2 ; Format result: '0,012,345.12' ; Parse result: 12345.12
Attribute MIN_FRACTION_DIGITS
Old attribute value: 0 ; Format result: '0,012,345.123' ; Parse result: 12345.123
Setting attribute: ok
New attribute value: 20 ; Format result: '0,012,345.12345600000000000000' ; Parse result: 12345.123456
Attribute FRACTION_DIGITS
Old attribute value: 0 ; Format result: '0,012,345.123456' ; Parse result: 12345.123456
Setting attribute: ok
New attribute value: 5 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346
Attribute MULTIPLIER
Old attribute value: 1 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 2 ; Format result: '0,024,690.24691' ; Parse result: 12345.123455
Attribute GROUPING_SIZE
Old attribute value: 3 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 2 ; Format result: '0,01,23,45.12346' ; Parse result: 12345.12346
Attribute ROUNDING_MODE
Old attribute value: 4 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 1 ; Format result: '0,012,345.12345' ; Parse result: 12345.12345
Attribute ROUNDING_INCREMENT
Old attribute value: 0 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 2 ; Format result: '0,012,346.00000' ; Parse result: 12346
Attribute FORMAT_WIDTH
Old attribute value: 0 ; Format result: '0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 27 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346
Attribute PADDING_POSITION
Old attribute value: 0 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 2 ; Format result: '0,012,345.12346************' ; Parse result: 12345.12346
Attribute SECONDARY_GROUPING_SIZE
Old attribute value: 0 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 2 ; Format result: '************00,12,345.12346' ; Parse result: 12345.12346
Attribute SIGNIFICANT_DIGITS_USED
Old attribute value: 0 ; Format result: '************0,012,345.12346' ; Parse result: 12345.12346
Setting attribute: ok
New attribute value: 1 ; Format result: '*******************12,345.1' ; Parse result: 12345.1
Attribute MIN_SIGNIFICANT_DIGITS
Old attribute value: 1 ; Format result: '**************************1' ; Parse result: 1
Setting attribute: ok
New attribute value: 3 ; Format result: '***********************1.00' ; Parse result: 1
Attribute MAX_SIGNIFICANT_DIGITS
Old attribute value: 6 ; Format result: '*******************12,345.1' ; Parse result: 12345.1
Setting attribute: ok
New attribute value: 4 ; Format result: '*********************12,350' ; Parse result: 12350

View file

@ -1,190 +0,0 @@
--TEST--
numfmt_get/set_symbol() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Get/set symbol.
*/
function ut_main()
{
$longstr = str_repeat("blah", 10);
$symbols = array(
'DECIMAL_SEPARATOR_SYMBOL' => array( NumberFormatter::DECIMAL_SEPARATOR_SYMBOL, '_._', 12345.123456, NumberFormatter::DECIMAL ),
'GROUPING_SEPARATOR_SYMBOL' => array( NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '_,_', 12345.123456, NumberFormatter::DECIMAL ),
'PATTERN_SEPARATOR_SYMBOL' => array( NumberFormatter::PATTERN_SEPARATOR_SYMBOL, '_;_', 12345.123456, NumberFormatter::DECIMAL ),
'PERCENT_SYMBOL' => array( NumberFormatter::PERCENT_SYMBOL, '_%_', 12345.123456, NumberFormatter::PERCENT ),
'ZERO_DIGIT_SYMBOL' => array( NumberFormatter::ZERO_DIGIT_SYMBOL, '_ZD_', 12345.123456, NumberFormatter::DECIMAL ),
'DIGIT_SYMBOL' => array( NumberFormatter::DIGIT_SYMBOL, '_DS_', 12345.123456, NumberFormatter::DECIMAL ),
'MINUS_SIGN_SYMBOL' => array( NumberFormatter::MINUS_SIGN_SYMBOL, '_-_', -12345.123456, NumberFormatter::DECIMAL ),
'PLUS_SIGN_SYMBOL' => array( NumberFormatter::PLUS_SIGN_SYMBOL, '_+_', 12345.123456, NumberFormatter::SCIENTIFIC ),
'CURRENCY_SYMBOL' => array( NumberFormatter::CURRENCY_SYMBOL, '_$_', 12345.123456, NumberFormatter::CURRENCY ),
'INTL_CURRENCY_SYMBOL' => array( NumberFormatter::INTL_CURRENCY_SYMBOL, '_$_', 12345.123456, NumberFormatter::CURRENCY ),
'MONETARY_SEPARATOR_SYMBOL' => array( NumberFormatter::MONETARY_SEPARATOR_SYMBOL, '_MS_', 12345.123456, NumberFormatter::CURRENCY ),
'EXPONENTIAL_SYMBOL' => array( NumberFormatter::EXPONENTIAL_SYMBOL, '_E_', 12345.123456, NumberFormatter::SCIENTIFIC ),
'PERMILL_SYMBOL' => array( NumberFormatter::PERMILL_SYMBOL, '_PS_', 12345.123456, NumberFormatter::DECIMAL ),
'PAD_ESCAPE_SYMBOL' => array( NumberFormatter::PAD_ESCAPE_SYMBOL, '_PE_', 12345.123456, NumberFormatter::DECIMAL ),
'INFINITY_SYMBOL' => array( NumberFormatter::INFINITY_SYMBOL, '_IS_', 12345.123456, NumberFormatter::DECIMAL ),
'NAN_SYMBOL' => array( NumberFormatter::NAN_SYMBOL, '_N_', 12345.123456, NumberFormatter::DECIMAL ),
'SIGNIFICANT_DIGIT_SYMBOL' => array( NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL, '_SD_', 12345.123456, NumberFormatter::DECIMAL ),
'MONETARY_GROUPING_SEPARATOR_SYMBOL' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, '_MG_', 12345.123456, NumberFormatter::CURRENCY ),
'MONETARY_GROUPING_SEPARATOR_SYMBOL-2' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, "&nbsp;", 12345.123456, NumberFormatter::CURRENCY ),
'MONETARY_GROUPING_SEPARATOR_SYMBOL-3' => array( NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL, $longstr, 12345.123456, NumberFormatter::CURRENCY ),
);
$res_str = '';
foreach( $symbols as $symb_name => $data )
{
list( $symb, $new_val, $number, $attr ) = $data;
$fmt = ut_nfmt_create( 'en_US', $attr);
$res_str .= "\nSymbol '$symb_name'\n";
// Get original symbol value.
$orig_val = ut_nfmt_get_symbol( $fmt, $symb );
$res_str .= "Default symbol: [$orig_val]\n";
// Set a new symbol value.
$res_val = ut_nfmt_set_symbol( $fmt, $symb, $new_val );
if( !$res_val )
$res_str .= "set_symbol() error: " . ut_nfmt_get_error_message( $fmt ) . "\n";
// Get the symbol value back.
$new_val_check = ut_nfmt_get_symbol( $fmt, $symb );
if( !$new_val_check )
$res_str .= "get_symbol() error: " . ut_nfmt_get_error_message( $fmt ) . "\n";
$res_str .= "New symbol: [$new_val_check]\n";
// Check if the new value has been set.
if( $new_val_check !== $new_val )
$res_str .= "ERROR: New $symb_name symbol value has not been set correctly.\n";
// Format the number using the new value.
$s = ut_nfmt_format( $fmt, $number );
$res_str .= "A number formatted with the new symbol: $s\n";
// Restore attribute's symbol.
ut_nfmt_set_symbol( $fmt, $symb, $orig_val );
}
$badvals = array(2147483648, -2147483648, -1, 4294901761);
foreach($badvals as $badval) {
if(ut_nfmt_get_symbol( $fmt, 2147483648 )) {
$res_str .= "Bad value $badval should return false!\n";
}
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECT--
Symbol 'DECIMAL_SEPARATOR_SYMBOL'
Default symbol: [.]
New symbol: [_._]
A number formatted with the new symbol: 12,345_._123
Symbol 'GROUPING_SEPARATOR_SYMBOL'
Default symbol: [,]
New symbol: [_,_]
A number formatted with the new symbol: 12_,_345.123
Symbol 'PATTERN_SEPARATOR_SYMBOL'
Default symbol: [;]
New symbol: [_;_]
A number formatted with the new symbol: 12,345.123
Symbol 'PERCENT_SYMBOL'
Default symbol: [%]
New symbol: [_%_]
A number formatted with the new symbol: 1,234,512_%_
Symbol 'ZERO_DIGIT_SYMBOL'
Default symbol: [0]
New symbol: [_ZD_]
A number formatted with the new symbol: `a,bcd.`ab
Symbol 'DIGIT_SYMBOL'
Default symbol: [#]
New symbol: [_DS_]
A number formatted with the new symbol: 12,345.123
Symbol 'MINUS_SIGN_SYMBOL'
Default symbol: [-]
New symbol: [_-_]
A number formatted with the new symbol: _-_12,345.123
Symbol 'PLUS_SIGN_SYMBOL'
Default symbol: [+]
New symbol: [_+_]
A number formatted with the new symbol: 1.2345123456E4
Symbol 'CURRENCY_SYMBOL'
Default symbol: [$]
New symbol: [_$_]
A number formatted with the new symbol: _$_12,345.12
Symbol 'INTL_CURRENCY_SYMBOL'
Default symbol: [USD]
New symbol: [_$_]
A number formatted with the new symbol: $12,345.12
Symbol 'MONETARY_SEPARATOR_SYMBOL'
Default symbol: [.]
New symbol: [_MS_]
A number formatted with the new symbol: $12,345_MS_12
Symbol 'EXPONENTIAL_SYMBOL'
Default symbol: [E]
New symbol: [_E_]
A number formatted with the new symbol: 1.2345123456_E_4
Symbol 'PERMILL_SYMBOL'
Default symbol: [‰]
New symbol: [_PS_]
A number formatted with the new symbol: 12,345.123
Symbol 'PAD_ESCAPE_SYMBOL'
Default symbol: [*]
New symbol: [_PE_]
A number formatted with the new symbol: 12,345.123
Symbol 'INFINITY_SYMBOL'
Default symbol: [∞]
New symbol: [_IS_]
A number formatted with the new symbol: 12,345.123
Symbol 'NAN_SYMBOL'
Default symbol: [NaN]
New symbol: [_N_]
A number formatted with the new symbol: 12,345.123
Symbol 'SIGNIFICANT_DIGIT_SYMBOL'
Default symbol: [@]
New symbol: [_SD_]
A number formatted with the new symbol: 12,345.123
Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL'
Default symbol: [,]
New symbol: [_MG_]
A number formatted with the new symbol: $12_MG_345.12
Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL-2'
Default symbol: [,]
New symbol: [&nbsp;]
A number formatted with the new symbol: $12&nbsp;345.12
Symbol 'MONETARY_GROUPING_SEPARATOR_SYMBOL-3'
Default symbol: [,]
New symbol: [blahblahblahblahblahblahblahblahblahblah]
A number formatted with the new symbol: $12blahblahblahblahblahblahblahblahblahblah345.12

View file

@ -2,7 +2,6 @@
numfmt_get/set_symbol() icu >= 4.8 numfmt_get/set_symbol() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (PHP_INT_SIZE != 8) die('skip 64-bit only'); ?> <?php if (PHP_INT_SIZE != 8) die('skip 64-bit only'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ IntlGregorianCalendar::__construct(): basic
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -48,4 +46,4 @@ string(5) "pt_PT"
string(12) "Europe/Paris" string(12) "Europe/Paris"
string(5) "fr_CA" string(5) "fr_CA"
string(9) "gregorian" string(9) "gregorian"
==DONE== ==DONE==

View file

@ -2,7 +2,6 @@
INTL_ICU_DATA_VERSION constant INTL_ICU_DATA_VERSION constant
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare('INTL_ICU_VERSION', '4.4', '<') < 0) print 'skip for ICU >= 4.4'; ?>
--FILE-- --FILE--
<?php <?php
var_dump(defined("INTL_ICU_DATA_VERSION")); var_dump(defined("INTL_ICU_DATA_VERSION"));

View file

@ -1,366 +0,0 @@
--TEST--
locale_filter_matches.phpt() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try parsing different Locales
* with Procedural and Object methods.
*/
function ut_main()
{
$loc_ranges = array(
'de-de',
'sl_IT',
'sl_IT_Nedis',
'jbo',
'art-lojban',
'sl_IT'
);
$lang_tags = array(
'de-DEVA',
'de-DE-1996',
'de-DE',
'zh_Hans',
'de-CH-1996',
'sl_IT',
'sl_IT_nedis-a-kirti-x-xyz',
'sl_IT_rozaj',
'sl_IT_NEDIS_ROJAZ_1901',
'i-enochian',
'sgn-CH-de',
'art-lojban',
'i-lux',
'art-lojban',
'jbo',
'en_sl_IT'
);
$res_str = '';
$isCanonical = false;
foreach($loc_ranges as $loc_range){
foreach($lang_tags as $lang_tag){
$res_str .="--------------\n";
$result= ut_loc_locale_filter_matches( $lang_tag , $loc_range , $isCanonical);
$res_str .= "loc_range:$loc_range matches lang_tag $lang_tag ? ";
if( $result){
$res_str .= "YES\n";
}else{
$res_str .= "NO\n";
}
//canonicalized version
$result= ut_loc_locale_filter_matches( $lang_tag , $loc_range , !($isCanonical));
$can_loc_range = ut_loc_canonicalize($loc_range);
$can_lang_tag = ut_loc_canonicalize($lang_tag);
$res_str .= "loc_range:$can_loc_range canonically matches lang_tag $can_lang_tag ? ";
if( $result){
$res_str .= "YES\n";
}else{
$res_str .= "NO\n";
}
}
}
$res_str .= "\n";
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECT--
--------------
loc_range:de-de matches lang_tag de-DEVA ? NO
loc_range:de_DE canonically matches lang_tag de_Deva ? NO
--------------
loc_range:de-de matches lang_tag de-DE-1996 ? YES
loc_range:de_DE canonically matches lang_tag de_DE_1996 ? YES
--------------
loc_range:de-de matches lang_tag de-DE ? YES
loc_range:de_DE canonically matches lang_tag de_DE ? YES
--------------
loc_range:de-de matches lang_tag zh_Hans ? NO
loc_range:de_DE canonically matches lang_tag zh_Hans ? NO
--------------
loc_range:de-de matches lang_tag de-CH-1996 ? NO
loc_range:de_DE canonically matches lang_tag de_CH_1996 ? NO
--------------
loc_range:de-de matches lang_tag sl_IT ? NO
loc_range:de_DE canonically matches lang_tag sl_IT ? NO
--------------
loc_range:de-de matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? NO
loc_range:de_DE canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? NO
--------------
loc_range:de-de matches lang_tag sl_IT_rozaj ? NO
loc_range:de_DE canonically matches lang_tag sl_IT_ROZAJ ? NO
--------------
loc_range:de-de matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO
loc_range:de_DE canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO
--------------
loc_range:de-de matches lang_tag i-enochian ? NO
loc_range:de_DE canonically matches lang_tag i-enochian ? NO
--------------
loc_range:de-de matches lang_tag sgn-CH-de ? NO
loc_range:de_DE canonically matches lang_tag sgn_CH_DE ? NO
--------------
loc_range:de-de matches lang_tag art-lojban ? NO
loc_range:de_DE canonically matches lang_tag jbo ? NO
--------------
loc_range:de-de matches lang_tag i-lux ? NO
loc_range:de_DE canonically matches lang_tag i-lux ? NO
--------------
loc_range:de-de matches lang_tag art-lojban ? NO
loc_range:de_DE canonically matches lang_tag jbo ? NO
--------------
loc_range:de-de matches lang_tag jbo ? NO
loc_range:de_DE canonically matches lang_tag jbo ? NO
--------------
loc_range:de-de matches lang_tag en_sl_IT ? NO
loc_range:de_DE canonically matches lang_tag en_SL_IT ? NO
--------------
loc_range:sl_IT matches lang_tag de-DEVA ? NO
loc_range:sl_IT canonically matches lang_tag de_Deva ? NO
--------------
loc_range:sl_IT matches lang_tag de-DE-1996 ? NO
loc_range:sl_IT canonically matches lang_tag de_DE_1996 ? NO
--------------
loc_range:sl_IT matches lang_tag de-DE ? NO
loc_range:sl_IT canonically matches lang_tag de_DE ? NO
--------------
loc_range:sl_IT matches lang_tag zh_Hans ? NO
loc_range:sl_IT canonically matches lang_tag zh_Hans ? NO
--------------
loc_range:sl_IT matches lang_tag de-CH-1996 ? NO
loc_range:sl_IT canonically matches lang_tag de_CH_1996 ? NO
--------------
loc_range:sl_IT matches lang_tag sl_IT ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT ? YES
--------------
loc_range:sl_IT matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? YES
--------------
loc_range:sl_IT matches lang_tag sl_IT_rozaj ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT_ROZAJ ? YES
--------------
loc_range:sl_IT matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES
--------------
loc_range:sl_IT matches lang_tag i-enochian ? NO
loc_range:sl_IT canonically matches lang_tag i-enochian ? NO
--------------
loc_range:sl_IT matches lang_tag sgn-CH-de ? NO
loc_range:sl_IT canonically matches lang_tag sgn_CH_DE ? NO
--------------
loc_range:sl_IT matches lang_tag art-lojban ? NO
loc_range:sl_IT canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT matches lang_tag i-lux ? NO
loc_range:sl_IT canonically matches lang_tag i-lux ? NO
--------------
loc_range:sl_IT matches lang_tag art-lojban ? NO
loc_range:sl_IT canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT matches lang_tag jbo ? NO
loc_range:sl_IT canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT matches lang_tag en_sl_IT ? NO
loc_range:sl_IT canonically matches lang_tag en_SL_IT ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag de-DEVA ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag de_Deva ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag de-DE-1996 ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag de_DE_1996 ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag de-DE ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag de_DE ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag zh_Hans ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag zh_Hans ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag de-CH-1996 ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag de_CH_1996 ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag sl_IT ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? YES
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? YES
--------------
loc_range:sl_IT_Nedis matches lang_tag sl_IT_rozaj ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT_ROZAJ ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES
loc_range:sl_IT_NEDIS canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES
--------------
loc_range:sl_IT_Nedis matches lang_tag i-enochian ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag i-enochian ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag sgn-CH-de ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag sgn_CH_DE ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag art-lojban ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag i-lux ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag i-lux ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag art-lojban ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag jbo ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT_Nedis matches lang_tag en_sl_IT ? NO
loc_range:sl_IT_NEDIS canonically matches lang_tag en_SL_IT ? NO
--------------
loc_range:jbo matches lang_tag de-DEVA ? NO
loc_range:jbo canonically matches lang_tag de_Deva ? NO
--------------
loc_range:jbo matches lang_tag de-DE-1996 ? NO
loc_range:jbo canonically matches lang_tag de_DE_1996 ? NO
--------------
loc_range:jbo matches lang_tag de-DE ? NO
loc_range:jbo canonically matches lang_tag de_DE ? NO
--------------
loc_range:jbo matches lang_tag zh_Hans ? NO
loc_range:jbo canonically matches lang_tag zh_Hans ? NO
--------------
loc_range:jbo matches lang_tag de-CH-1996 ? NO
loc_range:jbo canonically matches lang_tag de_CH_1996 ? NO
--------------
loc_range:jbo matches lang_tag sl_IT ? NO
loc_range:jbo canonically matches lang_tag sl_IT ? NO
--------------
loc_range:jbo matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? NO
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? NO
--------------
loc_range:jbo matches lang_tag sl_IT_rozaj ? NO
loc_range:jbo canonically matches lang_tag sl_IT_ROZAJ ? NO
--------------
loc_range:jbo matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO
--------------
loc_range:jbo matches lang_tag i-enochian ? NO
loc_range:jbo canonically matches lang_tag i-enochian ? NO
--------------
loc_range:jbo matches lang_tag sgn-CH-de ? NO
loc_range:jbo canonically matches lang_tag sgn_CH_DE ? NO
--------------
loc_range:jbo matches lang_tag art-lojban ? NO
loc_range:jbo canonically matches lang_tag jbo ? YES
--------------
loc_range:jbo matches lang_tag i-lux ? NO
loc_range:jbo canonically matches lang_tag i-lux ? NO
--------------
loc_range:jbo matches lang_tag art-lojban ? NO
loc_range:jbo canonically matches lang_tag jbo ? YES
--------------
loc_range:jbo matches lang_tag jbo ? YES
loc_range:jbo canonically matches lang_tag jbo ? YES
--------------
loc_range:jbo matches lang_tag en_sl_IT ? NO
loc_range:jbo canonically matches lang_tag en_SL_IT ? NO
--------------
loc_range:art-lojban matches lang_tag de-DEVA ? NO
loc_range:jbo canonically matches lang_tag de_Deva ? NO
--------------
loc_range:art-lojban matches lang_tag de-DE-1996 ? NO
loc_range:jbo canonically matches lang_tag de_DE_1996 ? NO
--------------
loc_range:art-lojban matches lang_tag de-DE ? NO
loc_range:jbo canonically matches lang_tag de_DE ? NO
--------------
loc_range:art-lojban matches lang_tag zh_Hans ? NO
loc_range:jbo canonically matches lang_tag zh_Hans ? NO
--------------
loc_range:art-lojban matches lang_tag de-CH-1996 ? NO
loc_range:jbo canonically matches lang_tag de_CH_1996 ? NO
--------------
loc_range:art-lojban matches lang_tag sl_IT ? NO
loc_range:jbo canonically matches lang_tag sl_IT ? NO
--------------
loc_range:art-lojban matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? NO
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? NO
--------------
loc_range:art-lojban matches lang_tag sl_IT_rozaj ? NO
loc_range:jbo canonically matches lang_tag sl_IT_ROZAJ ? NO
--------------
loc_range:art-lojban matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO
loc_range:jbo canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? NO
--------------
loc_range:art-lojban matches lang_tag i-enochian ? NO
loc_range:jbo canonically matches lang_tag i-enochian ? NO
--------------
loc_range:art-lojban matches lang_tag sgn-CH-de ? NO
loc_range:jbo canonically matches lang_tag sgn_CH_DE ? NO
--------------
loc_range:art-lojban matches lang_tag art-lojban ? YES
loc_range:jbo canonically matches lang_tag jbo ? YES
--------------
loc_range:art-lojban matches lang_tag i-lux ? NO
loc_range:jbo canonically matches lang_tag i-lux ? NO
--------------
loc_range:art-lojban matches lang_tag art-lojban ? YES
loc_range:jbo canonically matches lang_tag jbo ? YES
--------------
loc_range:art-lojban matches lang_tag jbo ? NO
loc_range:jbo canonically matches lang_tag jbo ? YES
--------------
loc_range:art-lojban matches lang_tag en_sl_IT ? NO
loc_range:jbo canonically matches lang_tag en_SL_IT ? NO
--------------
loc_range:sl_IT matches lang_tag de-DEVA ? NO
loc_range:sl_IT canonically matches lang_tag de_Deva ? NO
--------------
loc_range:sl_IT matches lang_tag de-DE-1996 ? NO
loc_range:sl_IT canonically matches lang_tag de_DE_1996 ? NO
--------------
loc_range:sl_IT matches lang_tag de-DE ? NO
loc_range:sl_IT canonically matches lang_tag de_DE ? NO
--------------
loc_range:sl_IT matches lang_tag zh_Hans ? NO
loc_range:sl_IT canonically matches lang_tag zh_Hans ? NO
--------------
loc_range:sl_IT matches lang_tag de-CH-1996 ? NO
loc_range:sl_IT canonically matches lang_tag de_CH_1996 ? NO
--------------
loc_range:sl_IT matches lang_tag sl_IT ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT ? YES
--------------
loc_range:sl_IT matches lang_tag sl_IT_nedis-a-kirti-x-xyz ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_A_KIRTI_X_XYZ ? YES
--------------
loc_range:sl_IT matches lang_tag sl_IT_rozaj ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT_ROZAJ ? YES
--------------
loc_range:sl_IT matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES
loc_range:sl_IT canonically matches lang_tag sl_IT_NEDIS_ROJAZ_1901 ? YES
--------------
loc_range:sl_IT matches lang_tag i-enochian ? NO
loc_range:sl_IT canonically matches lang_tag i-enochian ? NO
--------------
loc_range:sl_IT matches lang_tag sgn-CH-de ? NO
loc_range:sl_IT canonically matches lang_tag sgn_CH_DE ? NO
--------------
loc_range:sl_IT matches lang_tag art-lojban ? NO
loc_range:sl_IT canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT matches lang_tag i-lux ? NO
loc_range:sl_IT canonically matches lang_tag i-lux ? NO
--------------
loc_range:sl_IT matches lang_tag art-lojban ? NO
loc_range:sl_IT canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT matches lang_tag jbo ? NO
loc_range:sl_IT canonically matches lang_tag jbo ? NO
--------------
loc_range:sl_IT matches lang_tag en_sl_IT ? NO
loc_range:sl_IT canonically matches lang_tag en_SL_IT ? NO

View file

@ -2,7 +2,6 @@
locale_filter_matches.phpt() icu >= 4.8 && icu < 50.1.2 locale_filter_matches.phpt() icu >= 4.8 && icu < 50.1.2
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?> <?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,342 +0,0 @@
--TEST--
locale_get_display_name() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try getting the display_name for different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str='';
$disp_locales=array('en','fr','de');
$locales = array(
'sl_IT_nedis_KIRTI',
'sl_IT_nedis-a-kirti-x-xyz',
'sl_IT_rozaj',
'sl_IT_NEDIS_ROJAZ_1901',
'i-enochian',
'zh-hakka',
'zh-wuu',
'i-tay',
'sgn-BE-nl',
'sgn-CH-de',
'sl_IT_rozaj@currency=EUR',
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'x-whatever',
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$res_str .= "locale='$locale'\n";
foreach( $disp_locales as $disp_locale )
{
$scr = ut_loc_get_display_name( $locale ,$disp_locale );
$scr = str_replace(array('(', ')'), '#', $scr);
$res_str .= "disp_locale=$disp_locale : display_name=$scr";
$res_str .= "\n";
}
$res_str .= "-----------------\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTREGEX--
locale='sl_IT_nedis_KIRTI'
disp_locale=en : display_name=Slovenian #Italy, NEDIS_KIRTI#
disp_locale=fr : display_name=slovène #Italie, NEDIS_KIRTI#
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_KIRTI#
-----------------
locale='sl_IT_nedis-a-kirti-x-xyz'
disp_locale=en : display_name=Slovenian #Italy, NEDIS_A_KIRTI_X_XYZ#
disp_locale=fr : display_name=slovène #Italie, NEDIS_A_KIRTI_X_XYZ#
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_A_KIRTI_X_XYZ#
-----------------
locale='sl_IT_rozaj'
disp_locale=en : display_name=Slovenian #Italy, Resian#
disp_locale=fr : display_name=slovène #Italie, dialecte de Resia#
disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch)#
-----------------
locale='sl_IT_NEDIS_ROJAZ_1901'
disp_locale=en : display_name=Slovenian #Italy, NEDIS_ROJAZ_1901#
disp_locale=fr : display_name=slovène #Italie, NEDIS_ROJAZ_1901#
disp_locale=de : display_name=Slowenisch #Italien, NEDIS_ROJAZ_1901#
-----------------
locale='i-enochian'
disp_locale=en : display_name=i-enochian
disp_locale=fr : display_name=i-enochian
disp_locale=de : display_name=i-enochian
-----------------
locale='zh-hakka'
disp_locale=en : display_name=Chinese( #HAKKA#)?
disp_locale=fr : display_name=chinois( #HAKKA#)?
disp_locale=de : display_name=Chinesisch( #HAKKA#)?
-----------------
locale='zh-wuu'
disp_locale=en : display_name=Chinese #WUU#
disp_locale=fr : display_name=chinois #WUU#
disp_locale=de : display_name=Chinesisch #WUU#
-----------------
locale='i-tay'
disp_locale=en : display_name=i-tay
disp_locale=fr : display_name=i-tay
disp_locale=de : display_name=i-tay
-----------------
locale='sgn-BE-nl'
disp_locale=en : display_name=Sign Languages? #Belgium, NL#
disp_locale=fr : display_name=langues? des signes #Belgique, NL#
disp_locale=de : display_name=Gebärdensprache #Belgien, NL#
-----------------
locale='sgn-CH-de'
disp_locale=en : display_name=Sign Languages? #Switzerland, DE#
disp_locale=fr : display_name=langues? des signes #Suisse, DE#
disp_locale=de : display_name=Gebärdensprache #Schweiz, DE#
-----------------
locale='sl_IT_rozaj@currency=EUR'
disp_locale=en : display_name=Slovenian #Italy, Resian, [Cc]urrency=Euro#
disp_locale=fr : display_name=slovène #Italie, dialecte de Resia, Devise=euro#
disp_locale=de : display_name=Slowenisch #Italien, (ROZAJ|Resianisch), Währung=Euro#
-----------------
locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
disp_locale=en : display_name=Ukrainian #Ukraine, CALIFORNIA, [Cc]urrency#
disp_locale=fr : display_name=ukrainien #Ukraine, CALIFORNIA, Devise#
disp_locale=de : display_name=Ukrainisch #Ukraine, CALIFORNIA, Währung#
-----------------
locale='root'
disp_locale=en : display_name=Root
disp_locale=fr : display_name=racine
disp_locale=de : display_name=[Rr]oot
-----------------
locale='uk@currency=EURO'
disp_locale=en : display_name=Ukrainian #[Cc]urrency=EURO#
disp_locale=fr : display_name=ukrainien #Devise=EURO#
disp_locale=de : display_name=Ukrainisch #Währung=EURO#
-----------------
locale='Hindi'
disp_locale=en : display_name=hindi
disp_locale=fr : display_name=hindi
disp_locale=de : display_name=hindi
-----------------
locale='de'
disp_locale=en : display_name=German
disp_locale=fr : display_name=allemand
disp_locale=de : display_name=Deutsch
-----------------
locale='fr'
disp_locale=en : display_name=French
disp_locale=fr : display_name=français
disp_locale=de : display_name=Französisch
-----------------
locale='ja'
disp_locale=en : display_name=Japanese
disp_locale=fr : display_name=japonais
disp_locale=de : display_name=Japanisch
-----------------
locale='i-enochian'
disp_locale=en : display_name=i-enochian
disp_locale=fr : display_name=i-enochian
disp_locale=de : display_name=i-enochian
-----------------
locale='zh-Hant'
disp_locale=en : display_name=Chinese #Traditional Han#
disp_locale=fr : display_name=chinois #idéogrammes han (#variante traditionnelle#|traditionnels)#
disp_locale=de : display_name=Chinesisch #Traditionelle Chinesische Schrift#
-----------------
locale='zh-Hans'
disp_locale=en : display_name=Chinese #Simplified Han#
disp_locale=fr : display_name=chinois #idéogrammes han (#variante simplifiée#|simplifiés)#
disp_locale=de : display_name=Chinesisch #Vereinfachte Chinesische Schrift#
-----------------
locale='sr-Cyrl'
disp_locale=en : display_name=Serbian #Cyrillic#
disp_locale=fr : display_name=serbe #cyrillique#
disp_locale=de : display_name=Serbisch #Kyrillisch#
-----------------
locale='sr-Latn'
disp_locale=en : display_name=Serbian #Latin#
disp_locale=fr : display_name=serbe #latin#
disp_locale=de : display_name=Serbisch #Lateinisch#
-----------------
locale='zh-Hans-CN'
disp_locale=en : display_name=Chinese #Simplified Han, China#
disp_locale=fr : display_name=chinois #idéogrammes han (#variante simplifiée#|simplifiés), Chine#
disp_locale=de : display_name=Chinesisch #Vereinfachte Chinesische Schrift, China#
-----------------
locale='sr-Latn-CS'
disp_locale=en : display_name=Serbian #Latin, Serbia [aA]nd Montenegro#
disp_locale=fr : display_name=serbe #latin, Serbie-et-Monténégro#
disp_locale=de : display_name=Serbisch #Lateinisch, Serbien und Montenegro#
-----------------
locale='sl-rozaj'
disp_locale=en : display_name=Slovenian( #ROZAJ#)?
disp_locale=fr : display_name=slovène( #ROZAJ#)?
disp_locale=de : display_name=Slowenisch( #(ROZAJ|Resianisch)#)?
-----------------
locale='sl-nedis'
disp_locale=en : display_name=Slovenian( #NEDIS#)?
disp_locale=fr : display_name=slovène( #NEDIS#)?
disp_locale=de : display_name=Slowenisch( #NEDIS#)?
-----------------
locale='de-CH-1901'
disp_locale=en : display_name=German #Switzerland, Traditional German orthography#
disp_locale=fr : display_name=allemand #Suisse, orthographe allemande traditionnelle#
disp_locale=de : display_name=Deutsch #Schweiz, (1901|[aA]lte deutsche Rechtschreibung)#
-----------------
locale='sl-IT-nedis'
disp_locale=en : display_name=Slovenian #Italy, Natisone dialect#
disp_locale=fr : display_name=slovène #Italie, dialecte de Natisone#
disp_locale=de : display_name=Slowenisch #Italien, (NEDIS|Natisone-Dialekt)#
-----------------
locale='sl-Latn-IT-nedis'
disp_locale=en : display_name=Slovenian #Latin, Italy, Natisone dialect#
disp_locale=fr : display_name=slovène #latin, Italie, dialecte de Natisone#
disp_locale=de : display_name=Slowenisch #Lateinisch, Italien, (NEDIS|Natisone-Dialekt)#
-----------------
locale='de-DE'
disp_locale=en : display_name=German #Germany#
disp_locale=fr : display_name=allemand #Allemagne#
disp_locale=de : display_name=Deutsch #Deutschland#
-----------------
locale='en-US'
disp_locale=en : display_name=English #United States#
disp_locale=fr : display_name=anglais #États-Unis#
disp_locale=de : display_name=Englisch #Vereinigte Staaten#
-----------------
locale='es-419'
disp_locale=en : display_name=Spanish #Latin America and the Caribbean#
disp_locale=fr : display_name=espagnol #Amérique latine et Caraïbes#
disp_locale=de : display_name=Spanisch #Lateinamerika und Karibik#
-----------------
locale='de-CH-x-phonebk'
disp_locale=en : display_name=German #Switzerland, X_PHONEBK#
disp_locale=fr : display_name=allemand #Suisse, X_PHONEBK#
disp_locale=de : display_name=Deutsch #Schweiz, X_PHONEBK#
-----------------
locale='az-Arab-x-AZE-derbend'
disp_locale=en : display_name=Azerbaijani #Arabic(, X, AZE_DERBEND)?#
disp_locale=fr : display_name=azéri #arabe(, X, AZE_DERBEND)?#
disp_locale=de : display_name=Aserbaidschanisch #Arabisch(, X, AZE_DERBEND)?#
-----------------
locale='zh-min'
disp_locale=en : display_name=Chinese #MIN#
disp_locale=fr : display_name=chinois #MIN#
disp_locale=de : display_name=Chinesisch #MIN#
-----------------
locale='zh-min-nan-Hant-CN'
disp_locale=en : display_name=Chinese #MIN, NAN_HANT_CN#
disp_locale=fr : display_name=chinois #MIN, NAN_HANT_CN#
disp_locale=de : display_name=Chinesisch #MIN, NAN_HANT_CN#
-----------------
locale='x-whatever'
disp_locale=en : display_name=x-whatever
disp_locale=fr : display_name=x-whatever
disp_locale=de : display_name=x-whatever
-----------------
locale='qaa-Qaaa-QM-x-southern'
disp_locale=en : display_name=qaa #Qaaa, QM, X_SOUTHERN#
disp_locale=fr : display_name=qaa #Qaaa, QM, X_SOUTHERN#
disp_locale=de : display_name=qaa #Qaaa, QM, X_SOUTHERN#
-----------------
locale='sr-Latn-QM'
disp_locale=en : display_name=Serbian #Latin, QM#
disp_locale=fr : display_name=serbe #latin, QM#
disp_locale=de : display_name=Serbisch #Lateinisch, QM#
-----------------
locale='sr-Qaaa-CS'
disp_locale=en : display_name=Serbian #Qaaa, Serbia [aA]nd Montenegro#
disp_locale=fr : display_name=serbe #Qaaa, Serbie-et-Monténégro#
disp_locale=de : display_name=Serbisch #Qaaa, Serbien und Montenegro#
-----------------
locale='en-US-u-islamCal'
disp_locale=en : display_name=English #United States, U_ISLAMCAL#
disp_locale=fr : display_name=anglais #États-Unis, U_ISLAMCAL#
disp_locale=de : display_name=Englisch #Vereinigte Staaten, U_ISLAMCAL#
-----------------
locale='zh-CN-a-myExt-x-private'
disp_locale=en : display_name=Chinese #China, A_MYEXT_X_PRIVATE#
disp_locale=fr : display_name=chinois #Chine, A_MYEXT_X_PRIVATE#
disp_locale=de : display_name=Chinesisch #China, A_MYEXT_X_PRIVATE#
-----------------
locale='en-a-myExt-b-another'
disp_locale=en : display_name=English( #A, MYEXT_B_ANOTHER#)?
disp_locale=fr : display_name=anglais( #A, MYEXT_B_ANOTHER#)?
disp_locale=de : display_name=Englisch( #A, MYEXT_B_ANOTHER#)?
-----------------
locale='de-419-DE'
disp_locale=en : display_name=German #Latin America and the Caribbean, DE#
disp_locale=fr : display_name=allemand #Amérique latine et Caraïbes, DE#
disp_locale=de : display_name=Deutsch #Lateinamerika und Karibik, DE#
-----------------
locale='a-DE'
disp_locale=en : display_name=a #Germany#
disp_locale=fr : display_name=a #Allemagne#
disp_locale=de : display_name=a #Deutschland#
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
disp_locale=en : display_name=Arabic( #A, AAA_B_BBB_A_CCC#)?
disp_locale=fr : display_name=arabe( #A, AAA_B_BBB_A_CCC#)?
disp_locale=de : display_name=Arabisch( #A, AAA_B_BBB_A_CCC#)?
-----------------

View file

@ -2,7 +2,6 @@
locale_get_display_name() icu >= 4.8 && icu < 50.1.2 locale_get_display_name() icu >= 4.8 && icu < 50.1.2
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?> <?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,275 +0,0 @@
--TEST--
locale_get_display_region() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try getting the display_region for different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$disp_locales=array('en','fr','de');
$locales = array(
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'x-whatever',
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$res_str .= "locale='$locale'\n";
foreach( $disp_locales as $disp_locale )
{
$scr = ut_loc_get_display_region( $locale ,$disp_locale );
$res_str .= "disp_locale=$disp_locale : display_region=$scr";
$res_str .= "\n";
}
$res_str .= "-----------------\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTREGEX--
locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
disp_locale=en : display_region=Ukraine
disp_locale=fr : display_region=Ukraine
disp_locale=de : display_region=Ukraine
-----------------
locale='root'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='uk@currency=EURO'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='Hindi'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='de'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='fr'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='ja'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='i-enochian'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='zh-Hant'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='zh-Hans'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='sr-Cyrl'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='sr-Latn'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='zh-Hans-CN'
disp_locale=en : display_region=China
disp_locale=fr : display_region=Chine
disp_locale=de : display_region=China
-----------------
locale='sr-Latn-CS'
disp_locale=en : display_region=Serbia [Aa]nd Montenegro
disp_locale=fr : display_region=Serbie-et-Monténégro
disp_locale=de : display_region=Serbien und Montenegro
-----------------
locale='sl-rozaj'
disp_locale=en : display_region=(ROZAJ)?
disp_locale=fr : display_region=(ROZAJ)?
disp_locale=de : display_region=(ROZAJ)?
-----------------
locale='sl-nedis'
disp_locale=en : display_region=(NEDIS)?
disp_locale=fr : display_region=(NEDIS)?
disp_locale=de : display_region=(NEDIS)?
-----------------
locale='de-CH-1901'
disp_locale=en : display_region=Switzerland
disp_locale=fr : display_region=Suisse
disp_locale=de : display_region=Schweiz
-----------------
locale='sl-IT-nedis'
disp_locale=en : display_region=Italy
disp_locale=fr : display_region=Italie
disp_locale=de : display_region=Italien
-----------------
locale='sl-Latn-IT-nedis'
disp_locale=en : display_region=Italy
disp_locale=fr : display_region=Italie
disp_locale=de : display_region=Italien
-----------------
locale='de-DE'
disp_locale=en : display_region=Germany
disp_locale=fr : display_region=Allemagne
disp_locale=de : display_region=Deutschland
-----------------
locale='en-US'
disp_locale=en : display_region=United States
disp_locale=fr : display_region=États-Unis
disp_locale=de : display_region=Vereinigte Staaten
-----------------
locale='es-419'
disp_locale=en : display_region=Latin America and the Caribbean
disp_locale=fr : display_region=Amérique latine et Caraïbes
disp_locale=de : display_region=Lateinamerika und Karibik
-----------------
locale='de-CH-x-phonebk'
disp_locale=en : display_region=Switzerland
disp_locale=fr : display_region=Suisse
disp_locale=de : display_region=Schweiz
-----------------
locale='az-Arab-x-AZE-derbend'
disp_locale=en : display_region=X?
disp_locale=fr : display_region=X?
disp_locale=de : display_region=X?
-----------------
locale='zh-min'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='zh-min-nan-Hant-CN'
disp_locale=en : display_region=MIN
disp_locale=fr : display_region=MIN
disp_locale=de : display_region=MIN
-----------------
locale='x-whatever'
disp_locale=en : display_region=
disp_locale=fr : display_region=
disp_locale=de : display_region=
-----------------
locale='qaa-Qaaa-QM-x-southern'
disp_locale=en : display_region=QM
disp_locale=fr : display_region=QM
disp_locale=de : display_region=QM
-----------------
locale='sr-Latn-QM'
disp_locale=en : display_region=QM
disp_locale=fr : display_region=QM
disp_locale=de : display_region=QM
-----------------
locale='sr-Qaaa-CS'
disp_locale=en : display_region=Serbia [Aa]nd Montenegro
disp_locale=fr : display_region=Serbie-et-Monténégro
disp_locale=de : display_region=Serbien und Montenegro
-----------------
locale='en-US-u-islamCal'
disp_locale=en : display_region=United States
disp_locale=fr : display_region=États-Unis
disp_locale=de : display_region=Vereinigte Staaten
-----------------
locale='zh-CN-a-myExt-x-private'
disp_locale=en : display_region=China
disp_locale=fr : display_region=Chine
disp_locale=de : display_region=China
-----------------
locale='en-a-myExt-b-another'
disp_locale=en : display_region=A?
disp_locale=fr : display_region=A?
disp_locale=de : display_region=A?
-----------------
locale='de-419-DE'
disp_locale=en : display_region=Latin America and the Caribbean
disp_locale=fr : display_region=Amérique latine et Caraïbes
disp_locale=de : display_region=Lateinamerika und Karibik
-----------------
locale='a-DE'
disp_locale=en : display_region=Germany
disp_locale=fr : display_region=Allemagne
disp_locale=de : display_region=Deutschland
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
disp_locale=en : display_region=A?
disp_locale=fr : display_region=A?
disp_locale=de : display_region=A?
-----------------

View file

@ -2,7 +2,6 @@
locale_get_display_region() icu >= 4.8 && icu < 51.2 locale_get_display_region() icu >= 4.8 && icu < 51.2
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU <= 50.1.2'); ?> <?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU <= 50.1.2'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,275 +0,0 @@
--TEST--
locale_get_display_script() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try getting the display_script for different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$disp_locales=array('en','fr','de');
$locales = array(
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'x-whatever',
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$res_str .= "locale='$locale'\n";
foreach( $disp_locales as $disp_locale )
{
$scr = ut_loc_get_display_script( $locale ,$disp_locale );
$res_str .= "disp_locale=$disp_locale : display_script=$scr";
$res_str .= "\n";
}
$res_str .= "-----------------\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTREGEX--
locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='root'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='uk@currency=EURO'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='Hindi'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='fr'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='ja'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='i-enochian'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='zh-Hant'
disp_locale=en : display_script=Traditional Han
disp_locale=fr : display_script=idéogrammes han (\(variante traditionnelle\)|traditionnels)
disp_locale=de : display_script=Traditionelle Chinesische Schrift
-----------------
locale='zh-Hans'
disp_locale=en : display_script=Simplified Han
disp_locale=fr : display_script=idéogrammes han (\(variante simplifiée\)|simplifiés)
disp_locale=de : display_script=Vereinfachte Chinesische Schrift
-----------------
locale='sr-Cyrl'
disp_locale=en : display_script=Cyrillic
disp_locale=fr : display_script=cyrillique
disp_locale=de : display_script=Kyrillisch
-----------------
locale='sr-Latn'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='zh-Hans-CN'
disp_locale=en : display_script=Simplified Han
disp_locale=fr : display_script=idéogrammes han (\(variante simplifiée\)|simplifiés)
disp_locale=de : display_script=Vereinfachte Chinesische Schrift
-----------------
locale='sr-Latn-CS'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='sl-rozaj'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='sl-nedis'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de-CH-1901'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='sl-IT-nedis'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='sl-Latn-IT-nedis'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='de-DE'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='en-US'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='es-419'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de-CH-x-phonebk'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='az-Arab-x-AZE-derbend'
disp_locale=en : display_script=Arabic
disp_locale=fr : display_script=arabe
disp_locale=de : display_script=Arabisch
-----------------
locale='zh-min'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='zh-min-nan-Hant-CN'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='x-whatever'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='qaa-Qaaa-QM-x-southern'
disp_locale=en : display_script=Qaaa
disp_locale=fr : display_script=Qaaa
disp_locale=de : display_script=Qaaa
-----------------
locale='sr-Latn-QM'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='sr-Qaaa-CS'
disp_locale=en : display_script=Qaaa
disp_locale=fr : display_script=Qaaa
disp_locale=de : display_script=Qaaa
-----------------
locale='en-US-u-islamCal'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='zh-CN-a-myExt-x-private'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='en-a-myExt-b-another'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de-419-DE'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='a-DE'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------

View file

@ -1,276 +0,0 @@
--TEST--
locale_get_display_script() icu = 4.8
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '49') >= 0) die('skip for ICU < 49'); ?>
--FILE--
<?php
/*
* Try getting the display_script for different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$disp_locales=array('en','fr','de');
$locales = array(
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'x-whatever',
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$res_str .= "locale='$locale'\n";
foreach( $disp_locales as $disp_locale )
{
$scr = ut_loc_get_display_script( $locale ,$disp_locale );
$res_str .= "disp_locale=$disp_locale : display_script=$scr";
$res_str .= "\n";
}
$res_str .= "-----------------\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTREGEX--
locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='root'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='uk@currency=EURO'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='Hindi'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='fr'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='ja'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='i-enochian'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='zh-Hant'
disp_locale=en : display_script=Traditional
disp_locale=fr : display_script=idéogrammes han (\(variante traditionnelle\)|traditionnels)
disp_locale=de : display_script=Traditionell
-----------------
locale='zh-Hans'
disp_locale=en : display_script=Simplified
disp_locale=fr : display_script=idéogrammes han (\(variante simplifiée\)|simplifiés)
disp_locale=de : display_script=Vereinfacht
-----------------
locale='sr-Cyrl'
disp_locale=en : display_script=Cyrillic
disp_locale=fr : display_script=cyrillique
disp_locale=de : display_script=Kyrillisch
-----------------
locale='sr-Latn'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='zh-Hans-CN'
disp_locale=en : display_script=Simplified
disp_locale=fr : display_script=idéogrammes han (\(variante simplifiée\)|simplifiés)
disp_locale=de : display_script=Vereinfacht
-----------------
locale='sr-Latn-CS'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='sl-rozaj'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='sl-nedis'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de-CH-1901'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='sl-IT-nedis'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='sl-Latn-IT-nedis'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='de-DE'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='en-US'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='es-419'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de-CH-x-phonebk'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='az-Arab-x-AZE-derbend'
disp_locale=en : display_script=Arabic
disp_locale=fr : display_script=arabe
disp_locale=de : display_script=Arabisch
-----------------
locale='zh-min'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='zh-min-nan-Hant-CN'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='x-whatever'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='qaa-Qaaa-QM-x-southern'
disp_locale=en : display_script=Qaaa
disp_locale=fr : display_script=Qaaa
disp_locale=de : display_script=Qaaa
-----------------
locale='sr-Latn-QM'
disp_locale=en : display_script=Latin
disp_locale=fr : display_script=latin
disp_locale=de : display_script=Lateinisch
-----------------
locale='sr-Qaaa-CS'
disp_locale=en : display_script=Qaaa
disp_locale=fr : display_script=Qaaa
disp_locale=de : display_script=Qaaa
-----------------
locale='en-US-u-islamCal'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='zh-CN-a-myExt-x-private'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='en-a-myExt-b-another'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='de-419-DE'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='a-DE'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
disp_locale=en : display_script=
disp_locale=fr : display_script=
disp_locale=de : display_script=
-----------------

View file

@ -2,7 +2,6 @@
locale_get_display_script() icu >= 49 locale_get_display_script() icu >= 49
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '49') < 0) print 'skip for ICU >= 49'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '52.1') >= 0) die('skip for ICU < 52.1'); ?> <?php if (version_compare(INTL_ICU_VERSION, '52.1') >= 0) die('skip for ICU < 52.1'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,275 +0,0 @@
--TEST--
locale_get_display_variant() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try getting the display_variant for different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$disp_locales=array('en','fr','de');
$locales = array(
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'x-whatever',
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$res_str .= "locale='$locale'\n";
foreach( $disp_locales as $disp_locale )
{
$scr = ut_loc_get_display_variant( $locale ,$disp_locale );
$res_str .= "disp_locale=$disp_locale : display_variant=$scr";
$res_str .= "\n";
}
$res_str .= "-----------------\n";
}
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTREGEX--
locale='uk-ua_CALIFORNIA@currency=;currency=GRN'
disp_locale=en : display_variant=CALIFORNIA
disp_locale=fr : display_variant=CALIFORNIA
disp_locale=de : display_variant=CALIFORNIA
-----------------
locale='root'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='uk@currency=EURO'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='Hindi'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='de'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='fr'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='ja'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='i-enochian'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='zh-Hant'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='zh-Hans'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='sr-Cyrl'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='sr-Latn'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='zh-Hans-CN'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='sr-Latn-CS'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='sl-rozaj'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='sl-nedis'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='de-CH-1901'
disp_locale=en : display_variant=Traditional German orthography
disp_locale=fr : display_variant=orthographe allemande traditionnelle
disp_locale=de : display_variant=(1901|[Aa]lte deutsche Rechtschreibung)
-----------------
locale='sl-IT-nedis'
disp_locale=en : display_variant=Natisone dialect
disp_locale=fr : display_variant=dialecte de Natisone
disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt)
-----------------
locale='sl-Latn-IT-nedis'
disp_locale=en : display_variant=Natisone dialect
disp_locale=fr : display_variant=dialecte de Natisone
disp_locale=de : display_variant=(NEDIS|Natisone-Dialekt)
-----------------
locale='de-DE'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='en-US'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='es-419'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='de-CH-x-phonebk'
disp_locale=en : display_variant=X_PHONEBK
disp_locale=fr : display_variant=X_PHONEBK
disp_locale=de : display_variant=X_PHONEBK
-----------------
locale='az-Arab-x-AZE-derbend'
disp_locale=en : display_variant=(AZE_DERBEND)?
disp_locale=fr : display_variant=(AZE_DERBEND)?
disp_locale=de : display_variant=(AZE_DERBEND)?
-----------------
locale='zh-min'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='zh-min-nan-Hant-CN'
disp_locale=en : display_variant=NAN_HANT_CN
disp_locale=fr : display_variant=NAN_HANT_CN
disp_locale=de : display_variant=NAN_HANT_CN
-----------------
locale='x-whatever'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='qaa-Qaaa-QM-x-southern'
disp_locale=en : display_variant=X_SOUTHERN
disp_locale=fr : display_variant=X_SOUTHERN
disp_locale=de : display_variant=X_SOUTHERN
-----------------
locale='sr-Latn-QM'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='sr-Qaaa-CS'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='en-US-u-islamCal'
disp_locale=en : display_variant=U_ISLAMCAL
disp_locale=fr : display_variant=U_ISLAMCAL
disp_locale=de : display_variant=U_ISLAMCAL
-----------------
locale='zh-CN-a-myExt-x-private'
disp_locale=en : display_variant=A_MYEXT_X_PRIVATE
disp_locale=fr : display_variant=A_MYEXT_X_PRIVATE
disp_locale=de : display_variant=A_MYEXT_X_PRIVATE
-----------------
locale='en-a-myExt-b-another'
disp_locale=en : display_variant=(MYEXT_B_ANOTHER)?
disp_locale=fr : display_variant=(MYEXT_B_ANOTHER)?
disp_locale=de : display_variant=(MYEXT_B_ANOTHER)?
-----------------
locale='de-419-DE'
disp_locale=en : display_variant=DE
disp_locale=fr : display_variant=DE
disp_locale=de : display_variant=DE
-----------------
locale='a-DE'
disp_locale=en : display_variant=
disp_locale=fr : display_variant=
disp_locale=de : display_variant=
-----------------
locale='ar-a-aaa-b-bbb-a-ccc'
disp_locale=en : display_variant=(AAA_B_BBB_A_CCC)?
disp_locale=fr : display_variant=(AAA_B_BBB_A_CCC)?
disp_locale=de : display_variant=(AAA_B_BBB_A_CCC)?
-----------------

View file

@ -2,7 +2,6 @@
locale_get_display_variant() icu >= 4.8 locale_get_display_variant() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,140 +0,0 @@
--TEST--
locale_get_keywords() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try getting the keywords for different locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$locales = array(
"de_DE@currency=EUR;collation=PHONEBOOK",
'uk-ua_CALIFORNIA@currency=GRN'
);
$locales = array(
'de_DE@currency=EUR;collation=PHONEBOOK',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'x-whatever',
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$keywords_arr = ut_loc_get_keywords( $locale);
$res_str .= "$locale: ";
if( $keywords_arr){
foreach( $keywords_arr as $key => $value){
$res_str .= "Key is $key and Value is $value \n";
}
}
else{
$res_str .= "No keywords found.";
}
$res_str .= "\n";
}
$res_str .= "\n";
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECT--
de_DE@currency=EUR;collation=PHONEBOOK: Key is collation and Value is PHONEBOOK
Key is currency and Value is EUR
root: No keywords found.
uk@currency=EURO: Key is currency and Value is EURO
Hindi: No keywords found.
de: No keywords found.
fr: No keywords found.
ja: No keywords found.
i-enochian: No keywords found.
zh-Hant: No keywords found.
zh-Hans: No keywords found.
sr-Cyrl: No keywords found.
sr-Latn: No keywords found.
zh-Hans-CN: No keywords found.
sr-Latn-CS: No keywords found.
sl-rozaj: No keywords found.
sl-nedis: No keywords found.
de-CH-1901: No keywords found.
sl-IT-nedis: No keywords found.
sl-Latn-IT-nedis: No keywords found.
de-DE: No keywords found.
en-US: No keywords found.
es-419: No keywords found.
de-CH-x-phonebk: No keywords found.
az-Arab-x-AZE-derbend: No keywords found.
zh-min: No keywords found.
zh-min-nan-Hant-CN: No keywords found.
x-whatever: No keywords found.
qaa-Qaaa-QM-x-southern: No keywords found.
sr-Latn-QM: No keywords found.
sr-Qaaa-CS: No keywords found.
en-US-u-islamCal: No keywords found.
zh-CN-a-myExt-x-private: No keywords found.
en-a-myExt-b-another: No keywords found.
de-419-DE: No keywords found.
a-DE: No keywords found.
ar-a-aaa-b-bbb-a-ccc: No keywords found.

View file

@ -2,7 +2,6 @@
locale_get_keywords() icu >= 4.8 locale_get_keywords() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU > 4.8'; ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,203 +0,0 @@
--TEST--
locale_parse_locale() icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
/*
* Try parsing different Locales
* with Procedural and Object methods.
*/
function ut_main()
{
$res_str = '';
$locales = array(
'uk-ua_CALIFORNIA@currency=;currency=GRN',
'root',
'uk@currency=EURO',
'Hindi',
//Simple language subtag
'de',
'fr',
'ja',
'i-enochian', //(example of a grandfathered tag)
//Language subtag plus Script subtag:
'zh-Hant',
'zh-Hans',
'sr-Cyrl',
'sr-Latn',
//Language-Script-Region
'zh-Hans-CN',
'sr-Latn-CS',
//Language-Variant
'sl-rozaj',
'sl-nedis',
//Language-Region-Variant
'de-CH-1901',
'sl-IT-nedis',
//Language-Script-Region-Variant
'sl-Latn-IT-nedis',
//Language-Region:
'de-DE',
'en-US',
'es-419',
//Private use subtags:
'de-CH-x-phonebk',
'az-Arab-x-AZE-derbend',
//Extended language subtags
'zh-min',
'zh-min-nan-Hant-CN',
//Private use registry values
'qaa-Qaaa-QM-x-southern',
'sr-Latn-QM',
'sr-Qaaa-CS',
/*Tags that use extensions (examples ONLY: extensions MUST be defined
by revision or update to this document or by RFC): */
'en-US-u-islamCal',
'zh-CN-a-myExt-x-private',
'en-a-myExt-b-another',
//Some Invalid Tags:
'de-419-DE',
'a-DE',
'ar-a-aaa-b-bbb-a-ccc'
);
$res_str = '';
foreach( $locales as $locale )
{
$arr = ut_loc_locale_parse( $locale);
$res_str .= "---------------------\n";
$res_str .= "$locale:\n";
if( $arr){
foreach( $arr as $key => $value){
$res_str .= "$key : '$value' , ";
}
$res_str = rtrim($res_str);
}
else{
$res_str .= "No values found from Locale parsing.";
}
$res_str .= "\n";
}
$res_str .= "\n";
return $res_str;
}
include_once( 'ut_common.inc' );
ut_run();
?>
--EXPECTF--
---------------------
uk-ua_CALIFORNIA@currency=;currency=GRN:
language : 'uk' , region : 'UA' , variant0 : 'CALIFORNIA' ,
---------------------
root:
language : 'root' ,
---------------------
uk@currency=EURO:
language : 'uk' ,
---------------------
Hindi:
language : 'hindi' ,
---------------------
de:
language : 'de' ,
---------------------
fr:
language : 'fr' ,
---------------------
ja:
language : 'ja' ,
---------------------
i-enochian:
grandfathered : 'i-enochian' ,
---------------------
zh-Hant:
language : 'zh' , script : 'Hant' ,
---------------------
zh-Hans:
language : 'zh' , script : 'Hans' ,
---------------------
sr-Cyrl:
language : 'sr' , script : 'Cyrl' ,
---------------------
sr-Latn:
language : 'sr' , script : 'Latn' ,
---------------------
zh-Hans-CN:
language : 'zh' , script : 'Hans' , region : 'CN' ,
---------------------
sr-Latn-CS:
language : 'sr' , script : 'Latn' , region : 'CS' ,
---------------------
sl-rozaj:
language : 'sl' ,%r( region : 'ROZAJ' ,)?%r
---------------------
sl-nedis:
language : 'sl' ,%r( region : 'NEDIS' ,)?%r
---------------------
de-CH-1901:
language : 'de' , region : 'CH' , variant0 : '1901' ,
---------------------
sl-IT-nedis:
language : 'sl' , region : 'IT' , variant0 : 'NEDIS' ,
---------------------
sl-Latn-IT-nedis:
language : 'sl' , script : 'Latn' , region : 'IT' , variant0 : 'NEDIS' ,
---------------------
de-DE:
language : 'de' , region : 'DE' ,
---------------------
en-US:
language : 'en' , region : 'US' ,
---------------------
es-419:
language : 'es' , region : '419' ,
---------------------
de-CH-x-phonebk:
language : 'de' , region : 'CH' , private0 : 'phonebk' ,
---------------------
az-Arab-x-AZE-derbend:
language : 'az' , script : 'Arab' , private0 : 'AZE' , private1 : 'derbend' ,
---------------------
zh-min:
grandfathered : 'zh-min' ,
---------------------
zh-min-nan-Hant-CN:
language : 'zh' , region : 'MIN' , variant0 : 'NAN' , variant1 : 'HANT' , variant2 : 'CN' ,
---------------------
qaa-Qaaa-QM-x-southern:
language : 'qaa' , script : 'Qaaa' , region : 'QM' , private0 : 'southern' ,
---------------------
sr-Latn-QM:
language : 'sr' , script : 'Latn' , region : 'QM' ,
---------------------
sr-Qaaa-CS:
language : 'sr' , script : 'Qaaa' , region : 'CS' ,
---------------------
en-US-u-islamCal:
language : 'en' , region : 'US' ,
---------------------
zh-CN-a-myExt-x-private:
language : 'zh' , region : 'CN' , private0 : 'private' ,
---------------------
en-a-myExt-b-another:
language : 'en' ,
---------------------
de-419-DE:
language : 'de' , region : '419' , variant0 : 'DE' ,
---------------------
a-DE:
No values found from Locale parsing.
---------------------
ar-a-aaa-b-bbb-a-ccc:
language : 'ar' ,

View file

@ -2,7 +2,6 @@
locale_parse_locale() icu >= 4.8 locale_parse_locale() icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ Bug #70484 selectordinal doesn't work with named parameters
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '5.0') < 0)
die('skip for ICU 5.0+');
--FILE-- --FILE--
<?php <?php

View file

@ -1,132 +0,0 @@
--TEST--
msgfmt creation failures icu <= 4.2
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.3', '<') != 1) print 'skip'; ?>
--FILE--
<?php
function err($fmt) {
if(!$fmt) {
echo var_export(intl_get_error_message(), true)."\n";
}
}
function print_exception($e) {
echo "\n" . get_class($e) . ": " . $e->getMessage()
. " in " . $e->getFile() . " on line " . $e->getLine() . "\n";
}
function crt($t, $l, $s) {
switch(true) {
case $t == "O":
try {
return new MessageFormatter($l, $s);
} catch (Throwable $e) {
print_exception($e);
return null;
}
break;
case $t == "C":
return MessageFormatter::create($l, $s);
break;
case $t == "P":
return msgfmt_create($l, $s);
break;
}
}
$args = array(
array(null, null),
array("whatever", "{0,whatever}"),
array(array(), array()),
array("en", "{0,choice}"),
array("fr", "{0,"),
array("en_US", "\xD0"),
);
try {
$fmt = new MessageFormatter();
} catch (TypeError $e) {
print_exception($e);
$fmt = null;
}
err($fmt);
$fmt = msgfmt_create();
err($fmt);
$fmt = MessageFormatter::create();
err($fmt);
try {
$fmt = new MessageFormatter('en');
} catch (TypeError $e) {
print_exception($e);
$fmt = null;
}
err($fmt);
$fmt = msgfmt_create('en');
err($fmt);
$fmt = MessageFormatter::create('en');
err($fmt);
foreach($args as $arg) {
$fmt = crt("O", $arg[0], $arg[1]);
err($fmt);
$fmt = crt("C", $arg[0], $arg[1]);
err($fmt);
$fmt = crt("P", $arg[0], $arg[1]);
err($fmt);
}
?>
--EXPECTF--
TypeError: MessageFormatter::__construct() expects exactly 2 parameters, 0 given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
Warning: msgfmt_create() expects exactly 2 parameters, 0 given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
Warning: MessageFormatter::create() expects exactly 2 parameters, 0 given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
TypeError: MessageFormatter::__construct() expects exactly 2 parameters, 1 given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
Warning: msgfmt_create() expects exactly 2 parameters, 1 given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
Warning: MessageFormatter::create() expects exactly 2 parameters, 1 given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
IntlException: Constructor failed in %smsgfmt_fail2.php on line %d
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
IntlException: Constructor failed in %smsgfmt_fail2.php on line %d
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
TypeError: MessageFormatter::__construct() expects parameter 1 to be string, array given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
Warning: MessageFormatter::create() expects parameter 1 to be string, array given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
Warning: msgfmt_create() expects parameter 1 to be string, array given in %s on line %d
'msgfmt_create: unable to parse input parameters: U_ILLEGAL_ARGUMENT_ERROR'
IntlException: Constructor failed in %smsgfmt_fail2.php on line %d
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
IntlException: Constructor failed in %smsgfmt_fail2.php on line %d
'msgfmt_create: message formatter creation failed: U_UNMATCHED_BRACES'
'msgfmt_create: message formatter creation failed: U_UNMATCHED_BRACES'
'msgfmt_create: message formatter creation failed: U_UNMATCHED_BRACES'
IntlException: Constructor failed in %smsgfmt_fail2.php on line %d
'msgfmt_create: error converting pattern to UTF-16: U_INVALID_CHAR_FOUND'
'msgfmt_create: error converting pattern to UTF-16: U_INVALID_CHAR_FOUND'
'msgfmt_create: error converting pattern to UTF-16: U_INVALID_CHAR_FOUND'

View file

@ -2,7 +2,6 @@
msgfmt creation failures icu >= 4.8 msgfmt creation failures icu >= 4.8
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip intl extension not loaded'; ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip for ICU >= 4.8'; ?>
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ MessageFormatter::format() inconsistent types in named argument
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ MessageFormatter::format() given negative arg key
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ MessageFormatter::format() invalid UTF-8 for arg key or value
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ MessageFormatter::format() invalid type for key not in pattern
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ MessageFormatter::format(): mixed named and numeric parameters
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -6,8 +6,6 @@ date.timezone=Atlantic/Azores
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ msgfmt_format() with subpatterns
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ msgfmt_format() with named subpatterns
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php

View file

@ -3,7 +3,6 @@ IntlRuleBasedBreakIterator::getBinaryRules(): basic test
--SKIPIF-- --SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
<?php if (version_compare(INTL_ICU_VERSION, '61.1') >= 0) die('skip for ICU < 61.1'); ?> <?php if (version_compare(INTL_ICU_VERSION, '61.1') >= 0) die('skip for ICU < 61.1'); ?>
<?php if(version_compare(INTL_ICU_VERSION, '4.8') < 0) print 'skip ICU >= 4.8 only'; ?>
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,7 +4,6 @@ ResourceBundle constructor bundle accepts NULL for first two arguments
date.timezone=Atlantic/Azores date.timezone=Atlantic/Azores
--SKIPIF-- --SKIPIF--
<?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?> <?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '4.8') < 0) die('skip ICU >= 4.8 only'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?> <?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -4,8 +4,6 @@ IntlTimeZone::createTimeZoneIDEnumeration(): basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -31,4 +29,4 @@ Array
( (
[0] => Atlantic/Azores [0] => Atlantic/Azores
) )
==DONE== ==DONE==

View file

@ -4,8 +4,6 @@ IntlTimeZone::createTimeZoneIDEnumeration(): errors
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);

View file

@ -4,8 +4,6 @@ IntlTimeZone::createTimeZoneIDEnumeration(): variant without offset
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -29,4 +27,4 @@ var_dump($values2 == $values);
bool(true) bool(true)
bool(true) bool(true)
bool(true) bool(true)
==DONE== ==DONE==

View file

@ -4,8 +4,6 @@ IntlTimeZone::createTimeZoneIDEnumeration(): variant without region
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -49,4 +47,4 @@ Array
[0] => Atlantic/Azores [0] => Atlantic/Azores
[1] => Etc/GMT+1 [1] => Etc/GMT+1
) )
==DONE== ==DONE==

View file

@ -4,8 +4,6 @@ IntlTimeZone::createTimeZone(): basic test
<?php <?php
if (!extension_loaded('intl')) if (!extension_loaded('intl'))
die('skip intl extension not enabled'); die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE-- --FILE--
<?php <?php
ini_set("intl.error_level", E_WARNING); ini_set("intl.error_level", E_WARNING);
@ -30,4 +28,4 @@ IntlTimeZone Object
[rawOffset] => 3600000 [rawOffset] => 3600000
[currentOffset] => 3600000 [currentOffset] => 3600000
) )
==DONE== ==DONE==

View file

@ -2,7 +2,6 @@
IntlTimeZone::getDisplayName(): type parameter (ICU >= 49 && ICU < 50.1.2) IntlTimeZone::getDisplayName(): type parameter (ICU >= 49 && ICU < 50.1.2)
--SKIPIF-- --SKIPIF--
<?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?> <?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '49') < 0) die('skip for ICU 49+'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?> <?php if (version_compare(INTL_ICU_VERSION, '50.1.2') >= 0) die('skip for ICU < 50.1.2'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,40 +0,0 @@
--TEST--
IntlTimeZone::getDisplayName(): type parameter (ICU < 49)
--SKIPIF--
<?php
if (!extension_loaded('intl'))
die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '49') >= 0)
die('skip for ICU < 49');
if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
die('skip for ICU 4.8+');
--FILE--
<?php
ini_set("intl.error_level", E_WARNING);
ini_set("error_reporting", -1);
ini_set("display_errors", 1);
$lsb = IntlTimeZone::createTimeZone('Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_SHORT));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_LONG));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_SHORT_GENERIC));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_LONG_GENERIC));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_SHORT_GMT));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_LONG_GMT));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_SHORT_COMMONLY_USED));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_GENERIC_LOCATION));
?>
==DONE==
--EXPECT--
string(3) "WET"
string(21) "Western European Time"
string(22) "Portugal Time (Lisbon)"
string(22) "Portugal Time (Lisbon)"
string(5) "+0000"
string(3) "GMT"
string(3) "GMT"
string(22) "Portugal Time (Lisbon)"
==DONE==

View file

@ -2,7 +2,6 @@
IntlTimeZone::getDisplayName(): locale parameter IntlTimeZone::getDisplayName(): locale parameter
--SKIPIF-- --SKIPIF--
<?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?> <?php if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '49') < 0) die('skip for ICU >= 49'); ?>
<?php if (version_compare(INTL_ICU_VERSION, '55.1') >= 0) die('skip for ICU < 55.1'); ?> <?php if (version_compare(INTL_ICU_VERSION, '55.1') >= 0) die('skip for ICU < 55.1'); ?>
--FILE-- --FILE--
<?php <?php

View file

@ -1,28 +0,0 @@
--TEST--
IntlTimeZone::getDisplayName(): locale parameter
--SKIPIF--
<?php
if (!extension_loaded('intl'))
die('skip intl extension not enabled');
if (version_compare(INTL_ICU_VERSION, '49') >= 0)
die('skip for ICU <= 4.8');
--FILE--
<?php
ini_set("intl.error_level", E_WARNING);
ini_set("error_reporting", -1);
ini_set("display_errors", 1);
$lsb = IntlTimeZone::createTimeZone('Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_LONG));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_LONG, NULL));
var_dump($lsb->getDisplayName(false, IntlTimeZone::DISPLAY_LONG, 'pt_PT'));
?>
==DONE==
--EXPECT--
string(21) "Western European Time"
string(21) "Western European Time"
string(24) "Hora da Europa Ocidental"
==DONE==

Some files were not shown because too many files have changed in this diff Show more