Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jul 2018 16:13:50 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r473974 - in head/devel/icu: . files
Message-ID:  <201807051613.w65GDonT033486@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Thu Jul  5 16:13:50 2018
New Revision: 473974
URL: https://svnweb.freebsd.org/changeset/ports/473974

Log:
  devel/icu: fix toLocaleLowerCase() after r473551
  
  PR:		229359
  Obtained from:	upstream (ICU 63.1)

Added:
  head/devel/icu/files/patch-r41550   (contents, props changed)
Modified:
  head/devel/icu/Makefile   (contents, props changed)

Modified: head/devel/icu/Makefile
==============================================================================
--- head/devel/icu/Makefile	Thu Jul  5 15:23:15 2018	(r473973)
+++ head/devel/icu/Makefile	Thu Jul  5 16:13:50 2018	(r473974)
@@ -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}/ \

Added: head/devel/icu/files/patch-r41550
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/icu/files/patch-r41550	Thu Jul  5 16:13:50 2018	(r473974)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807051613.w65GDonT033486>