View | Details | Raw Unified | Return to bug 232300 | Differences between
and this patch

Collapse All | Expand All

(-)b/devel/icu/Makefile (-2 / +2 lines)
Lines 3-10 Link Here
3
3
4
PORTNAME=	icu
4
PORTNAME=	icu
5
DISTVERSIONPREFIX=	release-
5
DISTVERSIONPREFIX=	release-
6
DISTVERSION=	62-1
6
DISTVERSION=	63-1
7
PORTREVISION?=	2 # keep for icu-lx
7
PORTREVISION?=	0 # keep for icu-lx
8
PORTEPOCH?=	1
8
PORTEPOCH?=	1
9
CATEGORIES?=	devel
9
CATEGORIES?=	devel
10
10
(-)b/devel/icu/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1529573964
1
TIMESTAMP = 1539448201
2
SHA256 (unicode-org-icu-release-62-1_GH0.tar.gz) = e15ffd84606323cbad5515bf9ecdf8061cc3bf80fb883b9e6aa162e485aa9761
2
SHA256 (unicode-org-icu-release-63-1_GH0.tar.gz) = 9a3be16d772be2817854ef4dcb45fb7fea669ca7ca592e039264239c1acd415f
3
SIZE (unicode-org-icu-release-62-1_GH0.tar.gz) = 43740444
3
SIZE (unicode-org-icu-release-63-1_GH0.tar.gz) = 44140131
(-)a/devel/icu/files/patch-r41550 (-77 lines)
Removed Link Here
1
https://ssl.icu-project.org/trac/ticket/13851
2
3
--- common/ucase.cpp.orig	2018-06-21 09:39:23 UTC
4
+++ common/ucase.cpp
5
@@ -270,6 +270,7 @@ ucase_addCaseClosure(UChar32 c, const USetAdder *sa) {
6
             }
7
         }
8
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA)) {
9
+            pe=pe0;
10
             int32_t delta;
11
             GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
12
             sa->add(sa->set, (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta);
13
@@ -1167,7 +1168,7 @@ ucase_toFullLower(UChar32 c,
14
 
15
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
16
             int32_t delta;
17
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
18
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
19
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
20
         }
21
         if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
22
@@ -1261,7 +1262,7 @@ toUpperOrTitle(UChar32 c,
23
 
24
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
25
             int32_t delta;
26
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
27
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
28
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
29
         }
30
         if(!upperNotTitle && HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
31
@@ -1469,7 +1470,7 @@ ucase_toFullFolding(UChar32 c,
32
         }
33
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
34
             int32_t delta;
35
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
36
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
37
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
38
         }
39
         if(HAS_SLOT(excWord, UCASE_EXC_FOLD)) {
40
--- test/intltest/strcase.cpp.orig	2018-06-21 09:38:41 UTC
41
+++ test/intltest/strcase.cpp
42
@@ -68,6 +68,7 @@ class StringCaseTest: public IntlTest { (public)
43
     void TestBug13127();
44
     void TestInPlaceTitle();
45
     void TestCaseMapEditsIteratorDocs();
46
+    void TestCaseMapGreekExtended();
47
 
48
 private:
49
     void assertGreekUpper(const char16_t *s, const char16_t *expected);
50
@@ -113,6 +114,7 @@ StringCaseTest::runIndexedTest(int32_t index, UBool ex
51
     TESTCASE_AUTO(TestInPlaceTitle);
52
 #endif
53
     TESTCASE_AUTO(TestCaseMapEditsIteratorDocs);
54
+    TESTCASE_AUTO(TestCaseMapGreekExtended);
55
     TESTCASE_AUTO_END;
56
 }
57
 
58
@@ -1683,6 +1685,19 @@ void StringCaseTest::TestCaseMapEditsIteratorDocs() {
59
                 expectedSrcCoarseStringIndices[destIndex],
60
                 coarseChangesIterator.sourceIndexFromDestinationIndex(destIndex, status));
61
     }
62
+}
63
+
64
+void StringCaseTest::TestCaseMapGreekExtended() {
65
+    // Ticket 13851
66
+    UnicodeString s(u"\u1F80\u1F88\u1FFC");
67
+    UnicodeString result(s);
68
+    result.toLower(Locale::getRoot());
69
+    assertEquals(u"lower", u"\u1F80\u1F80\u1FF3", result);
70
+#if !UCONFIG_NO_BREAK_ITERATION
71
+    result = s;
72
+    result.toTitle(nullptr, Locale::getRoot());
73
+    assertEquals(u"title", u"\u1F88\u1F80\u1FF3", result);
74
+#endif
75
 }
76
 
77
 //#endif
(-)b/devel/icu/pkg-plist (+4 lines)
Lines 92-97 include/unicode/normalizer2.h Link Here
92
include/unicode/normlzr.h
92
include/unicode/normlzr.h
93
include/unicode/nounit.h
93
include/unicode/nounit.h
94
include/unicode/numberformatter.h
94
include/unicode/numberformatter.h
95
include/unicode/numberrangeformatter.h
95
include/unicode/numfmt.h
96
include/unicode/numfmt.h
96
include/unicode/numsys.h
97
include/unicode/numsys.h
97
include/unicode/parseerr.h
98
include/unicode/parseerr.h
Lines 152-157 include/unicode/ucnvsel.h Link Here
152
include/unicode/ucol.h
153
include/unicode/ucol.h
153
include/unicode/ucoleitr.h
154
include/unicode/ucoleitr.h
154
include/unicode/uconfig.h
155
include/unicode/uconfig.h
156
include/unicode/ucpmap.h
157
include/unicode/ucptrie.h
155
include/unicode/ucsdet.h
158
include/unicode/ucsdet.h
156
include/unicode/ucurr.h
159
include/unicode/ucurr.h
157
include/unicode/udat.h
160
include/unicode/udat.h
Lines 172-177 include/unicode/ulocdata.h Link Here
172
include/unicode/umachine.h
175
include/unicode/umachine.h
173
include/unicode/umisc.h
176
include/unicode/umisc.h
174
include/unicode/umsg.h
177
include/unicode/umsg.h
178
include/unicode/umutablecptrie.h
175
include/unicode/unifilt.h
179
include/unicode/unifilt.h
176
include/unicode/unifunct.h
180
include/unicode/unifunct.h
177
include/unicode/unimatch.h
181
include/unicode/unimatch.h

Return to bug 232300