CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
firefox: updated to 51.0
[ports/opt-arm.git] / icu / icu-58.1-iterator.patch
CommitLineData
d8b5a597
VM
1source: http://bugs.icu-project.org/trac/changeset/39484/\r
2\r
3\r
4Index: icu/common/ulist.c\r
5===================================================================\r
6--- icu/common/ulist.c (revision 39483)\r
7+++ icu/common/ulist.c (revision 39484)\r
8@@ -30,5 +30,4 @@\r
9 \r
10 int32_t size;\r
11- int32_t currentIndex;\r
12 };\r
13 \r
14@@ -52,5 +51,4 @@\r
15 newList->tail = NULL;\r
16 newList->size = 0;\r
17- newList->currentIndex = -1;\r
18 \r
19 return newList;\r
20@@ -81,6 +79,7 @@\r
21 p->next->previous = p->previous;\r
22 }\r
23- list->curr = NULL;\r
24- list->currentIndex = 0;\r
25+ if (p == list->curr) {\r
26+ list->curr = p->next;\r
27+ }\r
28 --list->size;\r
29 if (p->forceDelete) {\r
30@@ -151,5 +150,4 @@\r
31 list->head->previous = newItem;\r
32 list->head = newItem;\r
33- list->currentIndex++;\r
34 }\r
35 \r
36@@ -194,5 +192,4 @@\r
37 curr = list->curr;\r
38 list->curr = curr->next;\r
39- list->currentIndex++;\r
40 \r
41 return curr->data;\r
42@@ -210,5 +207,4 @@\r
43 if (list != NULL) {\r
44 list->curr = list->head;\r
45- list->currentIndex = 0;\r
46 }\r
47 }\r
48@@ -273,3 +269,2 @@\r
49 return (UList *)(en->context);\r
50 }\r
51-\r
52Index: icu/i18n/ucol_res.cpp\r
53===================================================================\r
54--- icu/i18n/ucol_res.cpp (revision 39483)\r
55+++ icu/i18n/ucol_res.cpp (revision 39484)\r
56@@ -681,4 +681,5 @@\r
57 }\r
58 memcpy(en, &defaultKeywordValues, sizeof(UEnumeration));\r
59+ ulist_resetList(sink.values); // Initialize the iterator.\r
60 en->context = sink.values;\r
61 sink.values = NULL; // Avoid deletion in the sink destructor.\r
62Index: icu/test/intltest/apicoll.cpp\r
63===================================================================\r
64--- icu/test/intltest/apicoll.cpp (revision 39483)\r
65+++ icu/test/intltest/apicoll.cpp (revision 39484)\r
66@@ -82,14 +82,7 @@\r
67 col = Collator::createInstance(Locale::getEnglish(), success);\r
68 if (U_FAILURE(success)){\r
69- errcheckln(success, "Default Collator creation failed. - %s", u_errorName(success));\r
70- return;\r
71- }\r
72-\r
73- StringEnumeration* kwEnum = col->getKeywordValuesForLocale("", Locale::getEnglish(),true,success);\r
74- if (U_FAILURE(success)){\r
75- errcheckln(success, "Get Keyword Values for Locale failed. - %s", u_errorName(success));\r
76- return;\r
77- }\r
78- delete kwEnum;\r
79+ errcheckln(success, "English Collator creation failed. - %s", u_errorName(success));\r
80+ return;\r
81+ }\r
82 \r
83 col->getVersion(versionArray);\r
84@@ -230,4 +223,27 @@\r
85 delete aFrCol;\r
86 delete junk;\r
87+}\r
88+\r
89+void CollationAPITest::TestKeywordValues() {\r
90+ IcuTestErrorCode errorCode(*this, "TestKeywordValues");\r
91+ LocalPointer<Collator> col(Collator::createInstance(Locale::getEnglish(), errorCode));\r
92+ if (errorCode.logIfFailureAndReset("English Collator creation failed")) {\r
93+ return;\r
94+ }\r
95+\r
96+ LocalPointer<StringEnumeration> kwEnum(\r
97+ col->getKeywordValuesForLocale("collation", Locale::getEnglish(), TRUE, errorCode));\r
98+ if (errorCode.logIfFailureAndReset("Get Keyword Values for English Collator failed")) {\r
99+ return;\r
100+ }\r
101+ assertTrue("expect at least one collation tailoring for English", kwEnum->count(errorCode) > 0);\r
102+ const char *kw;\r
103+ UBool hasStandard = FALSE;\r
104+ while ((kw = kwEnum->next(NULL, errorCode)) != NULL) {\r
105+ if (strcmp(kw, "standard") == 0) {\r
106+ hasStandard = TRUE;\r
107+ }\r
108+ }\r
109+ assertTrue("expect at least the 'standard' collation tailoring for English", hasStandard);\r
110 }\r
111 \r
112@@ -2467,4 +2483,5 @@\r
113 TESTCASE_AUTO_BEGIN;\r
114 TESTCASE_AUTO(TestProperty);\r
115+ TESTCASE_AUTO(TestKeywordValues);\r
116 TESTCASE_AUTO(TestOperators);\r
117 TESTCASE_AUTO(TestDuplicate);\r
118Index: icu/test/intltest/apicoll.h\r
119===================================================================\r
120--- icu/test/intltest/apicoll.h (revision 39483)\r
121+++ icu/test/intltest/apicoll.h (revision 39484)\r
122@@ -36,4 +36,5 @@\r
123 */\r
124 void TestProperty(/* char* par */);\r
125+ void TestKeywordValues();\r
126 \r
127 /**\r