svn commit: r473975 - in branches/2018Q3/devel/icu: . files
Jan Beich
jbeich at FreeBSD.org
Thu Jul 5 16:14:58 UTC 2018
Author: jbeich
Date: Thu Jul 5 16:14:57 2018
New Revision: 473975
URL: https://svnweb.freebsd.org/changeset/ports/473975
Log:
MFH: r473974
devel/icu: fix toLocaleLowerCase() after r473551
PR: 229359
Obtained from: upstream (ICU 63.1)
Approved by: ports-secteam blanket (required by Firefox and Chromium)
Added:
branches/2018Q3/devel/icu/files/patch-r41550
- copied unchanged from r473974, head/devel/icu/files/patch-r41550
Modified:
branches/2018Q3/devel/icu/Makefile
Directory Properties:
branches/2018Q3/ (props changed)
Modified: branches/2018Q3/devel/icu/Makefile
==============================================================================
--- branches/2018Q3/devel/icu/Makefile Thu Jul 5 16:13:50 2018 (r473974)
+++ branches/2018Q3/devel/icu/Makefile Thu Jul 5 16:14:57 2018 (r473975)
@@ -3,7 +3,7 @@
PORTNAME= icu
DISTVERSION= 62_1
-PORTREVISION?= 0 # keep for icu-lx
+PORTREVISION?= 1 # keep for icu-lx
PORTEPOCH?= 1
CATEGORIES?= devel
MASTER_SITES= http://download.icu-project.org/files/icu4c/${PORTVERSION}/ \
Copied: branches/2018Q3/devel/icu/files/patch-r41550 (from r473974, head/devel/icu/files/patch-r41550)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2018Q3/devel/icu/files/patch-r41550 Thu Jul 5 16:14:57 2018 (r473975, copy of r473974, head/devel/icu/files/patch-r41550)
@@ -0,0 +1,77 @@
+https://ssl.icu-project.org/trac/ticket/13851
+
+--- common/ucase.cpp.orig 2018-06-21 09:39:23 UTC
++++ common/ucase.cpp
+@@ -270,6 +270,7 @@ ucase_addCaseClosure(UChar32 c, const USetAdder *sa) {
+ }
+ }
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA)) {
++ pe=pe0;
+ int32_t delta;
+ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+ sa->add(sa->set, (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta);
+@@ -1167,7 +1168,7 @@ ucase_toFullLower(UChar32 c,
+
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
+ int32_t delta;
+- GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
++ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
+ if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
+@@ -1261,7 +1262,7 @@ toUpperOrTitle(UChar32 c,
+
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
+ int32_t delta;
+- GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
++ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
+ if(!upperNotTitle && HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
+@@ -1469,7 +1470,7 @@ ucase_toFullFolding(UChar32 c,
+ }
+ if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
+ int32_t delta;
+- GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
++ GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
+ return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
+ }
+ if(HAS_SLOT(excWord, UCASE_EXC_FOLD)) {
+--- test/intltest/strcase.cpp.orig 2018-06-21 09:38:41 UTC
++++ test/intltest/strcase.cpp
+@@ -68,6 +68,7 @@ class StringCaseTest: public IntlTest { (public)
+ void TestBug13127();
+ void TestInPlaceTitle();
+ void TestCaseMapEditsIteratorDocs();
++ void TestCaseMapGreekExtended();
+
+ private:
+ void assertGreekUpper(const char16_t *s, const char16_t *expected);
+@@ -113,6 +114,7 @@ StringCaseTest::runIndexedTest(int32_t index, UBool ex
+ TESTCASE_AUTO(TestInPlaceTitle);
+ #endif
+ TESTCASE_AUTO(TestCaseMapEditsIteratorDocs);
++ TESTCASE_AUTO(TestCaseMapGreekExtended);
+ TESTCASE_AUTO_END;
+ }
+
+@@ -1683,6 +1685,19 @@ void StringCaseTest::TestCaseMapEditsIteratorDocs() {
+ expectedSrcCoarseStringIndices[destIndex],
+ coarseChangesIterator.sourceIndexFromDestinationIndex(destIndex, status));
+ }
++}
++
++void StringCaseTest::TestCaseMapGreekExtended() {
++ // Ticket 13851
++ UnicodeString s(u"\u1F80\u1F88\u1FFC");
++ UnicodeString result(s);
++ result.toLower(Locale::getRoot());
++ assertEquals(u"lower", u"\u1F80\u1F80\u1FF3", result);
++#if !UCONFIG_NO_BREAK_ITERATION
++ result = s;
++ result.toTitle(nullptr, Locale::getRoot());
++ assertEquals(u"title", u"\u1F88\u1F80\u1FF3", result);
++#endif
+ }
+
+ //#endif
More information about the svn-ports-all
mailing list