1 --- php-5.3.29/ext/intl/msgformat/msgformat_helpers.cpp.orig 2019-04-14 11:05:27.295916785 +0200
2 +++ php-5.3.29/ext/intl/msgformat/msgformat_helpers.cpp 2019-04-14 11:11:34.521781755 +0200
5 class MessageFormatAdapter {
7 - static const Formattable::Type* getArgTypeList(const MessageFormat& m,
8 + static const icu::Formattable::Type* getArgTypeList(const icu::MessageFormat& m,
11 -const Formattable::Type*
12 -MessageFormatAdapter::getArgTypeList(const MessageFormat& m,
13 +const icu::Formattable::Type*
14 +icu::MessageFormatAdapter::getArgTypeList(const icu::MessageFormat& m,
16 return m.getArgTypeList(count);
19 U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
21 int32_t fmt_count = 0;
22 - MessageFormatAdapter::getArgTypeList(*(const MessageFormat*)fmt, fmt_count);
23 + icu::MessageFormatAdapter::getArgTypeList(*(const icu::MessageFormat*)fmt, fmt_count);
27 U_CFUNC void umsg_format_helper(UMessageFormat *fmt, int arg_count, zval **args, UChar **formatted, int *formatted_len, UErrorCode *status TSRMLS_DC)
30 - const Formattable::Type* argTypes =
31 - MessageFormatAdapter::getArgTypeList(*(const MessageFormat*)fmt, fmt_count);
32 - Formattable* fargs = new Formattable[fmt_count ? fmt_count : 1];
33 + const icu::Formattable::Type* argTypes =
34 + icu::MessageFormatAdapter::getArgTypeList(*(const icu::MessageFormat*)fmt, fmt_count);
35 + icu::Formattable* fargs = new icu::Formattable[fmt_count ? fmt_count : 1];
37 for(int32_t i = 0; i < fmt_count; ++i) {
38 UChar *stringVal = NULL;
43 - case Formattable::kDate:
44 + case icu::Formattable::kDate:
45 convert_to_long_ex(&args[i]);
46 fargs[i].setDate(U_MILLIS_PER_SECOND * (double)Z_LVAL_P(args[i]));
49 - case Formattable::kDouble:
50 + case icu::Formattable::kDouble:
51 convert_to_double_ex(&args[i]);
52 fargs[i].setDouble(Z_DVAL_P(args[i]));
55 - case Formattable::kLong:
56 + case icu::Formattable::kLong:
57 convert_to_long_ex(&args[i]);
58 fargs[i].setLong(Z_LVAL_P(args[i]));
61 - case Formattable::kInt64:
62 + case icu::Formattable::kInt64:
63 if(Z_TYPE_P(args[i]) == IS_DOUBLE) {
64 tInt64 = (int64_t)Z_DVAL_P(args[i]);
65 } else if(Z_TYPE_P(args[i]) == IS_LONG) {
67 fargs[i].setInt64(tInt64);
70 - case Formattable::kString:
71 + case icu::Formattable::kString:
72 convert_to_string_ex(&args[i]);
73 intl_convert_utf8_to_utf16(&stringVal, &stringLen, Z_STRVAL_P(args[i]), Z_STRLEN_P(args[i]), status);
74 if(U_FAILURE(*status)){
79 - case Formattable::kArray:
80 - case Formattable::kObject:
81 + case icu::Formattable::kArray:
82 + case icu::Formattable::kObject:
83 *status = U_UNSUPPORTED_ERROR;
89 - UnicodeString resultStr;
90 - FieldPosition fieldPosition(0);
91 + icu::UnicodeString resultStr;
92 + icu::FieldPosition fieldPosition(0);
94 /* format the message */
95 - ((const MessageFormat*)fmt)->format(fargs, fmt_count, resultStr, fieldPosition, *status);
96 + ((const icu::MessageFormat*)fmt)->format(fargs, fmt_count, resultStr, fieldPosition, *status);
102 U_CFUNC void umsg_parse_helper(UMessageFormat *fmt, int *count, zval ***args, UChar *source, int source_len, UErrorCode *status)
104 - UnicodeString srcString(source, source_len);
105 - Formattable *fargs = ((const MessageFormat*)fmt)->parse(srcString, *count, *status);
106 + icu::UnicodeString srcString(source, source_len);
107 + icu::Formattable *fargs = ((const icu::MessageFormat*)fmt)->parse(srcString, *count, *status);
109 if(U_FAILURE(*status)) {
111 @@ -149,14 +149,14 @@
112 for(int32_t i = 0; i < *count; i++) {
115 - UnicodeString temp;
116 + icu::UnicodeString temp;
120 ALLOC_INIT_ZVAL((*args)[i]);
122 switch(fargs[i].getType()) {
123 - case Formattable::kDate:
124 + case icu::Formattable::kDate:
125 aDate = ((double)fargs[i].getDate())/U_MILLIS_PER_SECOND;
126 if(aDate > LONG_MAX || aDate < -LONG_MAX) {
127 ZVAL_DOUBLE((*args)[i], aDate<0?ceil(aDate):floor(aDate));
128 @@ -165,15 +165,15 @@
132 - case Formattable::kDouble:
133 + case icu::Formattable::kDouble:
134 ZVAL_DOUBLE((*args)[i], (double)fargs[i].getDouble());
137 - case Formattable::kLong:
138 + case icu::Formattable::kLong:
139 ZVAL_LONG((*args)[i], fargs[i].getLong());
142 - case Formattable::kInt64:
143 + case icu::Formattable::kInt64:
144 aInt64 = fargs[i].getInt64();
145 if(aInt64 > LONG_MAX || aInt64 < -LONG_MAX) {
146 ZVAL_DOUBLE((*args)[i], (double)aInt64);
151 - case Formattable::kString:
152 + case icu::Formattable::kString:
153 fargs[i].getString(temp);
154 intl_convert_utf16_to_utf8(&stmp, &stmp_len, temp.getBuffer(), temp.length(), status);
155 if(U_FAILURE(*status)) {
157 ZVAL_STRINGL((*args)[i], stmp, stmp_len, 0);
160 - case Formattable::kObject:
161 - case Formattable::kArray:
162 + case icu::Formattable::kObject:
163 + case icu::Formattable::kArray:
164 *status = U_ILLEGAL_ARGUMENT_ERROR;