mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
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:
parent
b820a7b2ff
commit
8a4c2f1621
110 changed files with 31 additions and 4082 deletions
|
@ -44,10 +44,6 @@ extern "C" {
|
|||
#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
|
||||
/**
|
||||
* This class isolates our access to private internal methods of
|
||||
|
@ -58,9 +54,7 @@ class MessageFormatAdapter {
|
|||
public:
|
||||
static const Formattable::Type* getArgTypeList(const MessageFormat& m,
|
||||
int32_t& count);
|
||||
#ifdef HAS_MESSAGE_PATTERN
|
||||
static const MessagePattern getMessagePattern(MessageFormat* m);
|
||||
#endif
|
||||
};
|
||||
|
||||
const Formattable::Type*
|
||||
|
@ -69,21 +63,17 @@ MessageFormatAdapter::getArgTypeList(const MessageFormat& m,
|
|||
return m.getArgTypeList(count);
|
||||
}
|
||||
|
||||
#ifdef HAS_MESSAGE_PATTERN
|
||||
const MessagePattern
|
||||
MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
|
||||
return m->msgPattern;
|
||||
}
|
||||
#endif
|
||||
U_NAMESPACE_END
|
||||
|
||||
using icu::Formattable;
|
||||
using icu::Format;
|
||||
using icu::DateFormat;
|
||||
using icu::MessageFormat;
|
||||
#ifdef HAS_MESSAGE_PATTERN
|
||||
using icu::MessagePattern;
|
||||
#endif
|
||||
using icu::MessageFormatAdapter;
|
||||
using icu::FieldPosition;
|
||||
|
||||
|
@ -138,7 +128,6 @@ static HashTable *umsg_get_numeric_types(MessageFormatter_object *mfo,
|
|||
return ret;
|
||||
}
|
||||
|
||||
#ifdef HAS_MESSAGE_PATTERN
|
||||
static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
|
||||
const MessagePattern& mp,
|
||||
intl_error& err)
|
||||
|
@ -265,10 +254,8 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
|
|||
type = Formattable::kDouble;
|
||||
} else if (argType == UMSGPAT_ARG_TYPE_SELECT) {
|
||||
type = Formattable::kString;
|
||||
#if U_ICU_VERSION_MAJOR_NUM >= 50
|
||||
} else if (argType == UMSGPAT_ARG_TYPE_SELECTORDINAL) {
|
||||
type = Formattable::kDouble;
|
||||
#endif
|
||||
} else {
|
||||
type = Formattable::kString;
|
||||
}
|
||||
|
@ -295,26 +282,15 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
|
|||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static HashTable *umsg_get_types(MessageFormatter_object *mfo,
|
||||
intl_error& err)
|
||||
{
|
||||
MessageFormat *mf = (MessageFormat *)mfo->mf_data.umsgf;
|
||||
|
||||
#ifdef HAS_MESSAGE_PATTERN
|
||||
const MessagePattern mp = MessageFormatAdapter::getMessagePattern(mf);
|
||||
|
||||
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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue