FreeBSD Bugzilla – Attachment 182328 Details for
Bug 219092
devel/icu: update to version 59.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
libicu 59_1 patch.
icu-59.1.patch.txt (text/plain), 19.35 KB, created by
Douglas Carmichael
on 2017-05-06 09:01:08 UTC
(
hide
)
Description:
libicu 59_1 patch.
Filename:
MIME Type:
Creator:
Douglas Carmichael
Created:
2017-05-06 09:01:08 UTC
Size:
19.35 KB
patch
obsolete
>diff -ruN icu.orig/Makefile icu/Makefile >--- icu.orig/Makefile 2017-05-05 22:35:43.069193000 -0500 >+++ icu/Makefile 2017-05-05 22:35:57.165133000 -0500 >@@ -2,7 +2,7 @@ > # $FreeBSD: head/devel/icu/Makefile 440117 2017-05-04 21:44:57Z jkim $ > > PORTNAME= icu >-DISTVERSION= 58_2 >+DISTVERSION= 59_1 > PORTREVISION?= 2 # keep for icu-lx > PORTEPOCH?= 1 > CATEGORIES?= devel >diff -ruN icu.orig/distinfo icu/distinfo >--- icu.orig/distinfo 2017-05-05 22:35:43.069242000 -0500 >+++ icu/distinfo 2017-05-05 22:36:04.915501000 -0500 >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1481218489 >-SHA256 (icu4c-58_2-src.tgz) = 2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c >-SIZE (icu4c-58_2-src.tgz) = 23369902 >+TIMESTAMP = 1494041764 >+SHA256 (icu4c-59_1-src.tgz) = 7132fdaf9379429d004005217f10e00b7d2319d0fea22bdfddef8991c45b75fe >+SIZE (icu4c-59_1-src.tgz) = 22706578 >diff -ruN icu.orig/files/patch-r39484 icu/files/patch-r39484 >--- icu.orig/files/patch-r39484 2017-05-05 22:35:43.069821000 -0500 >+++ icu/files/patch-r39484 1969-12-31 18:00:00.000000000 -0600 >@@ -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); >- } >-- >diff -ruN icu.orig/files/patch-r39671 icu/files/patch-r39671 >--- icu.orig/files/patch-r39671 2017-05-05 22:35:43.069885000 -0500 >+++ icu/files/patch-r39671 1969-12-31 18:00:00.000000000 -0600 >@@ -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; >diff -ruN icu.orig/pkg-plist icu/pkg-plist >--- icu.orig/pkg-plist 2017-05-05 22:35:43.070153000 -0500 >+++ icu/pkg-plist 2017-05-06 02:54:02.735741000 -0500 >@@ -1,40 +1,14 @@ >-sbin/icupkg >-sbin/gensprep >-sbin/gennorm2 >-sbin/gencmn >-sbin/genccode >-lib/libicudata.a >-lib/libicudata.so >-lib/libicudata.so.%%ICUMAJOR%% >-lib/libicudata.so.%%ICUVER%% >-lib/libicui18n.a >-lib/libicui18n.so >-lib/libicui18n.so.%%ICUMAJOR%% >-lib/libicui18n.so.%%ICUVER%% >-lib/libicuio.a >-lib/libicuio.so >-lib/libicuio.so.%%ICUMAJOR%% >-lib/libicuio.so.%%ICUVER%% >-lib/libicutest.a >-lib/libicutest.so >-lib/libicutest.so.%%ICUMAJOR%% >-lib/libicutest.so.%%ICUVER%% >-lib/libicutu.a >-lib/libicutu.so >-lib/libicutu.so.%%ICUMAJOR%% >-lib/libicutu.so.%%ICUVER%% >-lib/libicuuc.a >-lib/libicuuc.so >-lib/libicuuc.so.%%ICUMAJOR%% >-lib/libicuuc.so.%%ICUVER%% >-lib/icu/pkgdata.inc >-lib/icu/current >-lib/icu/Makefile.inc >-lib/icu/%%ICUVER%%/pkgdata.inc >-lib/icu/%%ICUVER%%/Makefile.inc >-libdata/pkgconfig/icu-io.pc >-libdata/pkgconfig/icu-i18n.pc >-libdata/pkgconfig/icu-uc.pc >+bin/derb >+bin/genbrk >+bin/gencfu >+bin/gencnval >+bin/gendict >+bin/genrb >+bin/icu-config >+bin/icuinfo >+bin/makeconv >+bin/pkgdata >+bin/uconv > include/unicode/alphaindex.h > include/unicode/appendable.h > include/unicode/basictz.h >@@ -44,6 +18,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 +39,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 >@@ -207,17 +184,38 @@ > include/unicode/uvernum.h > include/unicode/uversion.h > include/unicode/vtzone.h >-bin/uconv >-bin/pkgdata >-bin/makeconv >-bin/icuinfo >-bin/icu-config >-bin/genrb >-bin/gendict >-bin/gencnval >-bin/gencfu >-bin/genbrk >-bin/derb >+lib/icu/%%ICUVER%%/Makefile.inc >+lib/icu/%%ICUVER%%/pkgdata.inc >+lib/icu/Makefile.inc >+lib/icu/current >+lib/icu/pkgdata.inc >+lib/libicudata.a >+lib/libicudata.so >+lib/libicudata.so.59 >+lib/libicudata.so.%%ICUVER%% >+lib/libicui18n.a >+lib/libicui18n.so >+lib/libicui18n.so.59 >+lib/libicui18n.so.%%ICUVER%% >+lib/libicuio.a >+lib/libicuio.so >+lib/libicuio.so.59 >+lib/libicuio.so.%%ICUVER%% >+lib/libicutest.a >+lib/libicutest.so >+lib/libicutest.so.59 >+lib/libicutest.so.%%ICUVER%% >+lib/libicutu.a >+lib/libicutu.so >+lib/libicutu.so.59 >+lib/libicutu.so.%%ICUVER%% >+lib/libicuuc.a >+lib/libicuuc.so >+lib/libicuuc.so.59 >+lib/libicuuc.so.%%ICUVER%% >+libdata/pkgconfig/icu-i18n.pc >+libdata/pkgconfig/icu-io.pc >+libdata/pkgconfig/icu-uc.pc > man/man1/derb.1.gz > man/man1/genbrk.1.gz > man/man1/gencfu.1.gz >@@ -232,7 +230,13 @@ > man/man8/gencmn.8.gz > man/man8/gensprep.8.gz > man/man8/icupkg.8.gz >-%%DATADIR%%/%%ICUVER%%/install-sh >-%%DATADIR%%/%%ICUVER%%/mkinstalldirs >+sbin/escapesrc >+sbin/genccode >+sbin/gencmn >+sbin/gennorm2 >+sbin/gensprep >+sbin/icupkg > %%DATADIR%%/%%ICUVER%%/LICENSE > %%DATADIR%%/%%ICUVER%%/config/mh-bsd-gcc >+%%DATADIR%%/%%ICUVER%%/install-sh >+%%DATADIR%%/%%ICUVER%%/mkinstalldirs
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 219092
: 182328