[Midnightbsd-cvs] mports [24546] trunk/devel/icu: update icu to 62

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri Oct 19 19:13:28 EDT 2018


Revision: 24546
          http://svnweb.midnightbsd.org/mports/?rev=24546
Author:   laffer1
Date:     2018-10-19 19:13:27 -0400 (Fri, 19 Oct 2018)
Log Message:
-----------
update icu to 62

Modified Paths:
--------------
    trunk/devel/icu/Makefile
    trunk/devel/icu/distinfo
    trunk/devel/icu/files/patch-common_unicode_platform.h
    trunk/devel/icu/pkg-plist

Removed Paths:
-------------
    trunk/devel/icu/files/patch-config__mh-bsd-gcc
    trunk/devel/icu/files/patch-install
    trunk/devel/icu/files/patch-r39484
    trunk/devel/icu/files/patch-r39671

Modified: trunk/devel/icu/Makefile
===================================================================
--- trunk/devel/icu/Makefile	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/Makefile	2018-10-19 23:13:27 UTC (rev 24546)
@@ -3,13 +3,13 @@
 #
 
 PORTNAME=	icu
-PORTVERSION=	58.2
-PORTREVISION=	2
-CATEGORIES=	devel
+DISTVERSION=	62_1
+PORTREVISION?=	2 # keep for icu-lx
+PORTEPOCH?=	1
+CATEGORIES?=	devel
 MASTER_SITES=	http://download.icu-project.org/files/icu4c/${PORTVERSION}/ \
-		SF/${PORTNAME}/ICU4C/${PORTVERSION}/
-DISTNAME=	icu4c-${PORTVERSION:S/./_/g}
-EXTRACT_SUFX=	-src.tgz
+		SF/${PORTNAME}/${PORTNAME:tu}4C/${PORTVERSION}
+DISTNAME=	icu4c-${DISTVERSION}-src
 
 MAINTAINER=	ports at MidnightBSD.org
 COMMENT=	International Components for Unicode (from IBM)
@@ -17,42 +17,25 @@
 LICENSE=	icu
 LICENSE_NAME=	ICU license
 LICENSE_FILE=	${WRKSRC}/../LICENSE
-LICENSE_PERMS=	${_LICENSE_PERMS_DEFAULT}
+LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
 
-GNU_CONFIGURE=		yes
-OPTIONS_DEFINE=	THREADS
-OPTIONS_DEFAULT=	THREADS
-THREADS_DESC=	Build thread-safe version of the library
-
-USE_LDCONFIG=		yes
-
-WRKSRC=			${WRKDIR}/icu/source
-
 GNU_CONFIGURE=	yes
-CONFIGURE_ARGS+=	--with-data-packaging=archive \
-			--disable-renaming \
-			--disable-samples \
-			--enable-shared \
-			--enable-static
-CPPFLAGS+=      -DICU_NO_USER_DATA_OVERRIDE
-MAKE_ARGS=      VERBOSE=1
+CONFIGURE_ARGS?=--disable-layoutex
+CONFIGURE_ARGS+=--with-data-packaging=archive \
+		--disable-renaming \
+		--disable-samples \
+		--enable-static
+CPPFLAGS+=	-DICU_NO_USER_DATA_OVERRIDE
+MAKE_ARGS=	VERBOSE=1
+TEST_TARGET=	check
+USES+=		compiler:c++11-lib gmake pathfix tar:tgz
+USE_LDCONFIG=	yes
+WRKSRC=		${WRKDIR}/icu/source
 
-USES=		cpe gmake pathfix  compiler:c++0x
-CPE_VENDOR=	icu-project
-CPE_PRODUCT=	international_components_for_unicode
-
 ICUMAJOR=	${PORTVERSION:C/\..*//}
 PLIST_SUB+=	ICUMAJOR=${ICUMAJOR} ICUVER=${PORTVERSION}
 
-.include <bsd.mport.options.mk>
-
-post-patch:
-	@${REINPLACE_CMD} -e '/CXXFLAGS=/s/-ansi//' \
-		${WRKSRC}/configure
-.if ! ${PORT_OPTIONS:MTHREADS}
-	@${REINPLACE_CMD} -e 's,\(THREADSC.*FLAGS\).*,\1=,g' ${WRKSRC}/config/mh-bsd-gcc
-.endif
-
+.ifndef PKGNAMESUFFIX
 post-install:
 	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/g* \
 		${STAGEDIR}${PREFIX}/bin/*conv \
@@ -60,5 +43,9 @@
 		${STAGEDIR}${PREFIX}/bin/derb \
 		${STAGEDIR}${PREFIX}/bin/pkgdata
 	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/*
+# Filename varies by endianness: icudt<major>b.dat vs. icudt<major>l.dat
+	@(cd ${STAGEDIR}${PREFIX} && ${ECHO_CMD} \
+		${DATADIR_REL}/${PORTVERSION}/icudt*.dat >>${TMPPLIST})
+.endif # PKGNAMESUFFIX
 
 .include <bsd.port.mk>

Modified: trunk/devel/icu/distinfo
===================================================================
--- trunk/devel/icu/distinfo	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/distinfo	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1523210834
-SHA256 (icu4c-58_2-src.tgz) = 2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c
-SIZE (icu4c-58_2-src.tgz) = 23369902
+TIMESTAMP = 1529573964
+SHA256 (icu4c-62_1-src.tgz) = 3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3
+SIZE (icu4c-62_1-src.tgz) = 23468750

Modified: trunk/devel/icu/files/patch-common_unicode_platform.h
===================================================================
--- trunk/devel/icu/files/patch-common_unicode_platform.h	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/files/patch-common_unicode_platform.h	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,6 +1,6 @@
---- common/unicode/platform.h.orig	2016-03-23 20:49:58 UTC
+--- common/unicode/platform.h.orig	2017-03-22 19:06:26 UTC
 +++ common/unicode/platform.h
-@@ -379,8 +379,8 @@
+@@ -382,8 +382,8 @@
   */
  #ifdef U_IS_BIG_ENDIAN
      /* Use the predefined value. */

Deleted: trunk/devel/icu/files/patch-config__mh-bsd-gcc
===================================================================
--- trunk/devel/icu/files/patch-config__mh-bsd-gcc	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/files/patch-config__mh-bsd-gcc	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,12 +0,0 @@
---- ./config/mh-bsd-gcc.orig	2011-10-19 01:13:00.000000000 +0200
-+++ ./config/mh-bsd-gcc	2012-01-14 21:01:17.083384507 +0100
-@@ -23,9 +23,6 @@
- ## Compiler switch to embed a library name
- LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
- 
--## Shared library options
--LD_SOOPTIONS= -Wl,-Bsymbolic
--
- ## Shared object suffix
- SO = so
- ## Non-shared intermediate object suffix

Deleted: trunk/devel/icu/files/patch-install
===================================================================
--- trunk/devel/icu/files/patch-install	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/files/patch-install	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,8 +0,0 @@
---- Makefile.in	2007-12-12 13:58:06.000000000 -0500
-+++ Makefile.in	2008-01-28 15:20:56.000000000 -0500
-@@ -126,5 +126,4 @@
- 	$(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@
- 	$(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs
--	$(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh
- 	$(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html
- 	$(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config

Deleted: trunk/devel/icu/files/patch-r39484
===================================================================
--- trunk/devel/icu/files/patch-r39484	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/files/patch-r39484	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,148 +0,0 @@
-https://ssl.icu-project.org/trac/ticket/12827
-
-Index: test/intltest/apicoll.h
-===================================================================
---- test/intltest/apicoll.h	(revision 39483)
-+++ test/intltest/apicoll.h	(revision 39484)
-@@ -35,6 +35,7 @@ class CollationAPITest: public IntlTestCollator {
-      * - displayable name in the desired locale
-      */
-     void TestProperty(/* char* par */);
-+    void TestKeywordValues();
- 
-     /**
-     * This tests the RuleBasedCollator
-Index: test/intltest/apicoll.cpp
-===================================================================
---- test/intltest/apicoll.cpp	(revision 39483)
-+++ test/intltest/apicoll.cpp	(revision 39484)
-@@ -81,17 +81,10 @@ CollationAPITest::TestProperty(/* char* par */)
-     logln("Test ctors : ");
-     col = Collator::createInstance(Locale::getEnglish(), success);
-     if (U_FAILURE(success)){
--        errcheckln(success, "Default Collator creation failed. - %s", u_errorName(success));
-+        errcheckln(success, "English Collator creation failed. - %s", u_errorName(success));
-         return;
-     }
- 
--    StringEnumeration* kwEnum = col->getKeywordValuesForLocale("", Locale::getEnglish(),true,success);
--    if (U_FAILURE(success)){
--        errcheckln(success, "Get Keyword Values for Locale failed. - %s", u_errorName(success));
--        return;
--    }
--    delete kwEnum;
--
-     col->getVersion(versionArray);
-     // Check for a version greater than some value rather than equality
-     // so that we need not update the expected version each time.
-@@ -231,6 +224,29 @@ CollationAPITest::TestProperty(/* char* par */)
-     delete junk;
- }
- 
-+void CollationAPITest::TestKeywordValues() {
-+    IcuTestErrorCode errorCode(*this, "TestKeywordValues");
-+    LocalPointer<Collator> col(Collator::createInstance(Locale::getEnglish(), errorCode));
-+    if (errorCode.logIfFailureAndReset("English Collator creation failed")) {
-+        return;
-+    }
-+
-+    LocalPointer<StringEnumeration> kwEnum(
-+        col->getKeywordValuesForLocale("collation", Locale::getEnglish(), TRUE, errorCode));
-+    if (errorCode.logIfFailureAndReset("Get Keyword Values for English Collator failed")) {
-+        return;
-+    }
-+    assertTrue("expect at least one collation tailoring for English", kwEnum->count(errorCode) > 0);
-+    const char *kw;
-+    UBool hasStandard = FALSE;
-+    while ((kw = kwEnum->next(NULL, errorCode)) != NULL) {
-+        if (strcmp(kw, "standard") == 0) {
-+            hasStandard = TRUE;
-+        }
-+    }
-+    assertTrue("expect at least the 'standard' collation tailoring for English", hasStandard);
-+}
-+
- void 
- CollationAPITest::TestRuleBasedColl()
- {
-@@ -2466,6 +2482,7 @@ void CollationAPITest::runIndexedTest( int32_t ind
-     if (exec) logln("TestSuite CollationAPITest: ");
-     TESTCASE_AUTO_BEGIN;
-     TESTCASE_AUTO(TestProperty);
-+    TESTCASE_AUTO(TestKeywordValues);
-     TESTCASE_AUTO(TestOperators);
-     TESTCASE_AUTO(TestDuplicate);
-     TESTCASE_AUTO(TestCompare);
-Index: i18n/ucol_res.cpp
-===================================================================
---- i18n/ucol_res.cpp	(revision 39483)
-+++ i18n/ucol_res.cpp	(revision 39484)
-@@ -680,6 +680,7 @@ ucol_getKeywordValuesForLocale(const char* /*key*/
-         return NULL;
-     }
-     memcpy(en, &defaultKeywordValues, sizeof(UEnumeration));
-+    ulist_resetList(sink.values);  // Initialize the iterator.
-     en->context = sink.values;
-     sink.values = NULL;  // Avoid deletion in the sink destructor.
-     return en;
-Index: common/ulist.c
-===================================================================
---- common/ulist.c	(revision 39483)
-+++ common/ulist.c	(revision 39484)
-@@ -29,7 +29,6 @@ struct UList {
-     UListNode *tail;
-     
-     int32_t size;
--    int32_t currentIndex;
- };
- 
- static void ulist_addFirstItem(UList *list, UListNode *newItem);
-@@ -51,7 +50,6 @@ U_CAPI UList *U_EXPORT2 ulist_createEmptyList(UErr
-     newList->head = NULL;
-     newList->tail = NULL;
-     newList->size = 0;
--    newList->currentIndex = -1;
-     
-     return newList;
- }
-@@ -80,8 +78,9 @@ static void ulist_removeItem(UList *list, UListNod
-     } else {
-         p->next->previous = p->previous;
-     }
--    list->curr = NULL;
--    list->currentIndex = 0;
-+    if (p == list->curr) {
-+        list->curr = p->next;
-+    }
-     --list->size;
-     if (p->forceDelete) {
-         uprv_free(p->data);
-@@ -150,7 +149,6 @@ U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList
-         newItem->next = list->head;
-         list->head->previous = newItem;
-         list->head = newItem;
--        list->currentIndex++;
-     }
-     
-     list->size++;
-@@ -193,7 +191,6 @@ U_CAPI void *U_EXPORT2 ulist_getNext(UList *list)
-     
-     curr = list->curr;
-     list->curr = curr->next;
--    list->currentIndex++;
-     
-     return curr->data;
- }
-@@ -209,7 +206,6 @@ U_CAPI int32_t U_EXPORT2 ulist_getListSize(const U
- U_CAPI void U_EXPORT2 ulist_resetList(UList *list) {
-     if (list != NULL) {
-         list->curr = list->head;
--        list->currentIndex = 0;
-     }
- }
- 
-@@ -272,4 +268,3 @@ U_CAPI void U_EXPORT2 ulist_reset_keyword_values_i
- U_CAPI UList * U_EXPORT2 ulist_getListFromEnum(UEnumeration *en) {
-     return (UList *)(en->context);
- }
--

Deleted: trunk/devel/icu/files/patch-r39671
===================================================================
--- trunk/devel/icu/files/patch-r39671	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/files/patch-r39671	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,176 +0,0 @@
-Index: test/intltest/utxttest.h
-===================================================================
---- test/intltest/utxttest.h	(revision 39670)
-+++ test/intltest/utxttest.h	(revision 39671)
-@@ -38,6 +38,7 @@ class UTextTest : public IntlTest {
-     void Ticket10562();
-     void Ticket10983();
-     void Ticket12130();
-+    void Ticket12888();
- 
- private:
-     struct m {                              // Map between native indices & code points.
-Index: test/intltest/utxttest.cpp
-===================================================================
---- test/intltest/utxttest.cpp	(revision 39670)
-+++ test/intltest/utxttest.cpp	(revision 39671)
-@@ -67,6 +67,8 @@ UTextTest::runIndexedTest(int32_t index, UBool exe
-             if (exec) Ticket10983();  break;
-         case 7: name = "Ticket12130";
-             if (exec) Ticket12130(); break;
-+        case 8: name = "Ticket12888";
-+            if (exec) Ticket12888(); break;
-         default: name = "";          break;
-     }
- }
-@@ -1583,3 +1585,63 @@ void UTextTest::Ticket12130() {
-     }
-     utext_close(&ut);
- }
-+
-+// Ticket 12888: bad handling of illegal utf-8 containing many instances of the archaic, now illegal,
-+//               six byte utf-8 forms. Original implementation had an assumption that
-+//               there would be at most three utf-8 bytes per UTF-16 code unit.
-+//               The five and six byte sequences map to a single replacement character.
-+
-+void UTextTest::Ticket12888() {
-+    const char *badString = 
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80";
-+
-+    UErrorCode status = U_ZERO_ERROR;
-+    LocalUTextPointer ut(utext_openUTF8(NULL, badString, -1, &status));
-+    TEST_SUCCESS(status);
-+    for (;;) {
-+        UChar32 c = utext_next32(ut.getAlias());
-+        if (c == U_SENTINEL) {
-+            break;
-+        }
-+    }
-+    int32_t endIdx = utext_getNativeIndex(ut.getAlias());
-+    if (endIdx != (int32_t)strlen(badString)) {
-+        errln("%s:%d expected=%d, actual=%d", __FILE__, __LINE__, strlen(badString), endIdx);
-+        return;
-+    }
-+
-+    for (int32_t prevIndex = endIdx; prevIndex>0;) {
-+        UChar32 c = utext_previous32(ut.getAlias());
-+        int32_t currentIndex = utext_getNativeIndex(ut.getAlias());
-+        if (c != 0xfffd) {
-+            errln("%s:%d (expected, actual, index) = (%d, %d, %d)\n",
-+                    __FILE__, __LINE__, 0xfffd, c, currentIndex);
-+            break;
-+        }
-+        if (currentIndex != prevIndex - 6) {
-+            errln("%s:%d: wrong index. Expected, actual = %d, %d",
-+                    __FILE__, __LINE__, prevIndex - 6, currentIndex);
-+            break;
-+        }
-+        prevIndex = currentIndex;
-+    }
-+}
-Index: common/utext.cpp
-===================================================================
---- common/utext.cpp	(revision 39670)
-+++ common/utext.cpp	(revision 39671)
-@@ -847,9 +847,15 @@ U_CDECL_END
- //------------------------------------------------------------------------------
- 
- // Chunk size.
--//     Must be less than 85, because of byte mapping from UChar indexes to native indexes.
--//     Worst case is three native bytes to one UChar.  (Supplemenaries are 4 native bytes
--//     to two UChars.)
-+//     Must be less than 42  (256/6), because of byte mapping from UChar indexes to native indexes.
-+//     Worst case there are six UTF-8 bytes per UChar.
-+//         obsolete 6 byte form fd + 5 trails maps to fffd
-+//         obsolete 5 byte form fc + 4 trails maps to fffd
-+//         non-shortest 4 byte forms maps to fffd
-+//         normal supplementaries map to a pair of utf-16, two utf8 bytes per utf-16 unit
-+//     mapToUChars array size must allow for the worst case, 6.
-+//     This could be brought down to 4, by treating fd and fc as pure illegal,
-+//     rather than obsolete lead bytes. But that is not compatible with the utf-8 access macros.
- //
- enum { UTF8_TEXT_CHUNK_SIZE=32 };
- 
-@@ -889,7 +895,7 @@ struct UTF8Buf {
-                                                      //  Requires two extra slots,
-                                                      //    one for a supplementary starting in the last normal position,
-                                                      //    and one for an entry for the buffer limit position.
--    uint8_t   mapToUChars[UTF8_TEXT_CHUNK_SIZE*3+6]; // Map native offset from bufNativeStart to
-+    uint8_t   mapToUChars[UTF8_TEXT_CHUNK_SIZE*6+6]; // Map native offset from bufNativeStart to
-                                                      //   correspoding offset in filled part of buf.
-     int32_t   align;
- };
-@@ -1032,6 +1038,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool for
-             // Requested index is in this buffer.
-             u8b = (UTF8Buf *)ut->p;   // the current buffer
-             mapIndex = ix - u8b->toUCharsMapStart;
-+            U_ASSERT(mapIndex < (int32_t)sizeof(UTF8Buf::mapToUChars));
-             ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
-             return TRUE;
- 
-@@ -1298,6 +1305,10 @@ fillReverse:
-         // Can only do this if the incoming index is somewhere in the interior of the string.
-         //   If index is at the end, there is no character there to look at.
-         if (ix != ut->b) {
-+            // Note: this function will only move the index back if it is on a trail byte
-+            //       and there is a preceding lead byte and the sequence from the lead 
-+            //       through this trail could be part of a valid UTF-8 sequence
-+            //       Otherwise the index remains unchanged.
-             U8_SET_CP_START(s8, 0, ix);
-         }
- 
-@@ -1311,7 +1322,10 @@ fillReverse:
-         UChar   *buf = u8b->buf;
-         uint8_t *mapToNative = u8b->mapToNative;
-         uint8_t *mapToUChars = u8b->mapToUChars;
--        int32_t  toUCharsMapStart = ix - (UTF8_TEXT_CHUNK_SIZE*3 + 1);
-+        int32_t  toUCharsMapStart = ix - sizeof(UTF8Buf::mapToUChars) + 1;
-+        // Note that toUCharsMapStart can be negative. Happens when the remaining
-+        // text from current position to the beginning is less than the buffer size.
-+        // + 1 because mapToUChars must have a slot at the end for the bufNativeLimit entry.
-         int32_t  destIx = UTF8_TEXT_CHUNK_SIZE+2;   // Start in the overflow region
-                                                     //   at end of buffer to leave room
-                                                     //   for a surrogate pair at the
-@@ -1338,6 +1352,7 @@ fillReverse:
-             if (c<0x80) {
-                 // Special case ASCII range for speed.
-                 buf[destIx] = (UChar)c;
-+                U_ASSERT(toUCharsMapStart <= srcIx);
-                 mapToUChars[srcIx - toUCharsMapStart] = (uint8_t)destIx;
-                 mapToNative[destIx] = (uint8_t)(srcIx - toUCharsMapStart);
-             } else {
-@@ -1367,6 +1382,7 @@ fillReverse:
-                 do {
-                     mapToUChars[sIx-- - toUCharsMapStart] = (uint8_t)destIx;
-                 } while (sIx >= srcIx);
-+                U_ASSERT(toUCharsMapStart <= (srcIx+1));
- 
-                 // Set native indexing limit to be the current position.
-                 //   We are processing a non-ascii, non-native-indexing char now;
-@@ -1541,6 +1557,7 @@ utf8TextMapIndexToUTF16(const UText *ut, int64_t i
-     U_ASSERT(index>=ut->chunkNativeStart+ut->nativeIndexingLimit);
-     U_ASSERT(index<=ut->chunkNativeLimit);
-     int32_t mapIndex = index - u8b->toUCharsMapStart;
-+    U_ASSERT(mapIndex < (int32_t)sizeof(UTF8Buf::mapToUChars));
-     int32_t offset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
-     U_ASSERT(offset>=0 && offset<=ut->chunkLength);
-     return offset;

Modified: trunk/devel/icu/pkg-plist
===================================================================
--- trunk/devel/icu/pkg-plist	2018-10-19 23:07:38 UTC (rev 24545)
+++ trunk/devel/icu/pkg-plist	2018-10-19 23:13:27 UTC (rev 24546)
@@ -1,3 +1,4 @@
+sbin/escapesrc
 sbin/icupkg
 sbin/gensprep
 sbin/gennorm2
@@ -44,6 +45,8 @@
 include/unicode/bytestriebuilder.h
 include/unicode/calendar.h
 include/unicode/caniter.h
+include/unicode/casemap.h
+include/unicode/char16ptr.h
 include/unicode/chariter.h
 include/unicode/choicfmt.h
 include/unicode/coleitr.h
@@ -63,6 +66,7 @@
 include/unicode/dtitvinf.h
 include/unicode/dtptngen.h
 include/unicode/dtrule.h
+include/unicode/edits.h
 include/unicode/enumset.h
 include/unicode/errorcode.h
 include/unicode/fieldpos.h
@@ -86,6 +90,8 @@
 include/unicode/msgfmt.h
 include/unicode/normalizer2.h
 include/unicode/normlzr.h
+include/unicode/nounit.h
+include/unicode/numberformatter.h
 include/unicode/numfmt.h
 include/unicode/numsys.h
 include/unicode/parseerr.h
@@ -113,6 +119,7 @@
 include/unicode/sortkey.h
 include/unicode/std_string.h
 include/unicode/strenum.h
+include/unicode/stringoptions.h
 include/unicode/stringpiece.h
 include/unicode/stringtriebuilder.h
 include/unicode/stsearch.h
@@ -174,6 +181,7 @@
 include/unicode/unorm.h
 include/unicode/unorm2.h
 include/unicode/unum.h
+include/unicode/unumberformatter.h
 include/unicode/unumsys.h
 include/unicode/uobject.h
 include/unicode/upluralrules.h
@@ -232,7 +240,7 @@
 man/man8/gencmn.8.gz
 man/man8/gensprep.8.gz
 man/man8/icupkg.8.gz
- at comment %%DATADIR%%/%%ICUVER%%/install-sh
+%%DATADIR%%/%%ICUVER%%/install-sh
 %%DATADIR%%/%%ICUVER%%/mkinstalldirs
 %%DATADIR%%/%%ICUVER%%/LICENSE
 %%DATADIR%%/%%ICUVER%%/config/mh-bsd-gcc



More information about the Midnightbsd-cvs mailing list