<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f81eba724741f04cbfe0c45c22fcac8e6e8058d7">https://github.com/macports/macports-ports/commit/f81eba724741f04cbfe0c45c22fcac8e6e8058d7</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit f81eba724741f04cbfe0c45c22fcac8e6e8058d7
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Wed Apr 7 22:14:05 2021 -0700

<span style='display:block; white-space:pre;color:#404040;'>    icu: remove icu58 subport
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    spun off into separate Portfile
</span>---
 devel/icu/Portfile                                 |  35 +----
 devel/icu/files/CVE-2017-7867-CVE-2017-7868.patch  | 156 ---------------------
 .../files/patch-bootstrap_common-putil.cpp.diff    |  17 ---
 .../files/patch-bootstrap_config-mh-darwin.diff    |  14 --
 4 files changed, 6 insertions(+), 216 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/icu/Portfile b/devel/icu/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e94323bd5b5..59136375275 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/icu/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/icu/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,10 +12,6 @@ set my_name         icu4c
</span> 
 version             67.1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "${name}58"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version         58.3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> categories          devel textproc
 platforms           darwin freebsd
 maintainers         {kencu @kencu} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -40,7 +36,7 @@ checksums           rmd160  c4a84ef7d2e18d6d1374b5ed6449227b94550e14 \
</span>                     sha256  94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc \
                     size    24518055
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.major} >= 11 || ${subport} eq "${name}58"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.major} >= 11} {
</span>     configure.python        /usr/bin/python
 } else {
     depends_build-append    port:python27
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,20 +44,7 @@ if {${os.major} >= 11 || ${subport} eq "${name}58"} {
</span>     configure.python        ${prefix}/bin/python2.7
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}58 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision                1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.pre_args      --prefix=${prefix}/libexec/${subport}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append       CVE-2017-7867-CVE-2017-7868.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            patch-bootstrap_config-mh-darwin.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums               rmd160  0b1ad8ea9bccd5d0f96a89bd0cdc12b5751ed46e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            sha256  2680f3c547cd26cba1d7ebd819cd336ff92cf444a270e195fd3b10bfdf22276c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            size    22626103
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { [vercmp ${version} 59] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.cxx_standard   2011
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard   2011
</span> 
 set docdir          ${prefix}/share/doc/${name}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -131,14 +114,12 @@ if { ${subport} ne "${name}-docs" } {
</span> 
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [vercmp ${version} 59] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append   patch-config-mh-darwin.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-config-mh-darwin.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append patch-declspec-conflict.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # (#60325)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append patch-declspec-conflict.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # (#60325)
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append patch-i18n-formatted_string_builder.h.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append patch-i18n-formatted_string_builder.h.diff
</span> 
     # ICU has three mechanisms to aid other projects in building properly
     #     1) .pc files for pkg-config
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -226,12 +207,8 @@ if { ${subport} ne "${name}-docs" } {
</span>     }
 
     platform darwin 8 {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { [vercmp ${version} 59] < 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            patchfiles-append patch-bootstrap_common-putil.cpp.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span>         patchfiles-append patch-common-putil.cpp.diff
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> 
     if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} {
         # (#59514)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/icu/files/CVE-2017-7867-CVE-2017-7868.patch b/devel/icu/files/CVE-2017-7867-CVE-2017-7868.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 335d4a59c62..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/icu/files/CVE-2017-7867-CVE-2017-7868.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,156 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://nvd.nist.gov/vuln/detail/CVE-2017-7867
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://nvd.nist.gov/vuln/detail/CVE-2017-7868
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://bugs.icu-project.org/trac/ticket/12888
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://bugs.icu-project.org/trac/changeset/39671
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- common/utext.cpp.orig  2016-06-15 13:58:17.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ common/utext.cpp       2017-05-25 21:51:47.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -848,9 +848,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // Chunk size.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--//     Must be less than 85, because of byte mapping from UChar indexes to native indexes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--//     Worst case is three native bytes to one UChar.  (Supplemenaries are 4 native bytes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--//     to two UChars.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//     Must be less than 42  (256/6), because of byte mapping from UChar indexes to native indexes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//     Worst case there are six UTF-8 bytes per UChar.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//         obsolete 6 byte form fd + 5 trails maps to fffd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//         obsolete 5 byte form fc + 4 trails maps to fffd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//         non-shortest 4 byte forms maps to fffd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//         normal supplementaries map to a pair of utf-16, two utf8 bytes per utf-16 unit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//     mapToUChars array size must allow for the worst case, 6.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//     This could be brought down to 4, by treating fd and fc as pure illegal,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//     rather than obsolete lead bytes. But that is not compatible with the utf-8 access macros.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum { UTF8_TEXT_CHUNK_SIZE=32 };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enum { SIZEOF_MAPTOUCHARS=UTF8_TEXT_CHUNK_SIZE*6+6 };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- //
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -890,5 +897,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                      //    one for a supplementary starting in the last normal position,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                      //    and one for an entry for the buffer limit position.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    uint8_t   mapToUChars[UTF8_TEXT_CHUNK_SIZE*3+6]; // Map native offset from bufNativeStart to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    uint8_t   mapToUChars[SIZEOF_MAPTOUCHARS];       // Map native offset from bufNativeStart to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                      //   correspoding offset in filled part of buf.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int32_t   align;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1033,4 +1040,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             u8b = (UTF8Buf *)ut->p;   // the current buffer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             mapIndex = ix - u8b->toUCharsMapStart;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            U_ASSERT(mapIndex < (int32_t)SIZEOF_MAPTOUCHARS);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1299,4 +1307,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         //   If index is at the end, there is no character there to look at.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (ix != ut->b) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            // Note: this function will only move the index back if it is on a trail byte
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            //       and there is a preceding lead byte and the sequence from the lead 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            //       through this trail could be part of a valid UTF-8 sequence
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            //       Otherwise the index remains unchanged.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             U8_SET_CP_START(s8, 0, ix);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1312,5 +1324,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         uint8_t *mapToNative = u8b->mapToNative;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         uint8_t *mapToUChars = u8b->mapToUChars;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        int32_t  toUCharsMapStart = ix - (UTF8_TEXT_CHUNK_SIZE*3 + 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int32_t  toUCharsMapStart = ix - SIZEOF_MAPTOUCHARS + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        // Note that toUCharsMapStart can be negative. Happens when the remaining
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        // text from current position to the beginning is less than the buffer size.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        // + 1 because mapToUChars must have a slot at the end for the bufNativeLimit entry.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         int32_t  destIx = UTF8_TEXT_CHUNK_SIZE+2;   // Start in the overflow region
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                                     //   at end of buffer to leave room
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1339,4 +1354,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 // Special case ASCII range for speed.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 buf[destIx] = (UChar)c;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                U_ASSERT(toUCharsMapStart <= srcIx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 mapToUChars[srcIx - toUCharsMapStart] = (uint8_t)destIx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 mapToNative[destIx] = (uint8_t)(srcIx - toUCharsMapStart);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1368,4 +1384,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     mapToUChars[sIx-- - toUCharsMapStart] = (uint8_t)destIx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 } while (sIx >= srcIx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                U_ASSERT(toUCharsMapStart <= (srcIx+1));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 // Set native indexing limit to be the current position.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1542,4 +1559,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     U_ASSERT(index<=ut->chunkNativeLimit);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int32_t mapIndex = index - u8b->toUCharsMapStart;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    U_ASSERT(mapIndex < (int32_t)SIZEOF_MAPTOUCHARS);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int32_t offset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     U_ASSERT(offset>=0 && offset<=ut->chunkLength);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- test/intltest/utxttest.cpp     (revision 39670)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ test/intltest/utxttest.cpp     (revision 39671)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,4 +68,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case 7: name = "Ticket12130";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (exec) Ticket12130(); break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        case 8: name = "Ticket12888";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (exec) Ticket12888(); break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         default: name = "";          break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1584,2 +1586,62 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     utext_close(&ut);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// Ticket 12888: bad handling of illegal utf-8 containing many instances of the archaic, now illegal,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//               six byte utf-8 forms. Original implementation had an assumption that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//               there would be at most three utf-8 bytes per UTF-16 code unit.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//               The five and six byte sequences map to a single replacement character.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void UTextTest::Ticket12888() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const char *badString = 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            "\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80\xfd\x80\x80\x80\x80\x80";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    UErrorCode status = U_ZERO_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    LocalUTextPointer ut(utext_openUTF8(NULL, badString, -1, &status));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    TEST_SUCCESS(status);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    for (;;) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        UChar32 c = utext_next32(ut.getAlias());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (c == U_SENTINEL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    int32_t endIdx = utext_getNativeIndex(ut.getAlias());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (endIdx != (int32_t)strlen(badString)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        errln("%s:%d expected=%d, actual=%d", __FILE__, __LINE__, strlen(badString), endIdx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    for (int32_t prevIndex = endIdx; prevIndex>0;) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        UChar32 c = utext_previous32(ut.getAlias());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int32_t currentIndex = utext_getNativeIndex(ut.getAlias());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (c != 0xfffd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            errln("%s:%d (expected, actual, index) = (%d, %d, %d)\n",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    __FILE__, __LINE__, 0xfffd, c, currentIndex);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (currentIndex != prevIndex - 6) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            errln("%s:%d: wrong index. Expected, actual = %d, %d",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    __FILE__, __LINE__, prevIndex - 6, currentIndex);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        prevIndex = currentIndex;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- test/intltest/utxttest.h       (revision 39670)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ test/intltest/utxttest.h       (revision 39671)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -39,4 +39,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void Ticket10983();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void Ticket12130();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    void Ticket12888();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/icu/files/patch-bootstrap_common-putil.cpp.diff b/devel/icu/files/patch-bootstrap_common-putil.cpp.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 323f7e4942f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/icu/files/patch-bootstrap_common-putil.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,17 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-http://bugs.icu-project.org/trac/ticket/9367
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- common/putil.cpp.orig  2016-10-19 12:20:56.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ common/putil.cpp       2017-02-11 10:01:49.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -119,6 +119,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Mac OS X 10.4 doesn't use its localtime_r() declaration in <time.h> if either _ANSI_SOURCE or _POSIX_C_SOURCE is #defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(U_TZNAME) && U_PLATFORM_IS_DARWIN_BASED && (defined(_ANSI_SOURCE) || defined(_POSIX_C_SOURCE))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+U_CFUNC struct tm *localtime_r(const time_t *, struct tm *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * Only include langinfo.h if we have a way to get the codeset. If we later
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * depend on more feature, we can test on U_HAVE_NL_LANGINFO.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/icu/files/patch-bootstrap_config-mh-darwin.diff b/devel/icu/files/patch-bootstrap_config-mh-darwin.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index f25d965daea..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/icu/files/patch-bootstrap_config-mh-darwin.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- config/mh-darwin.orig  2016-06-15 13:58:17.000000000 -0500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ config/mh-darwin       2017-02-11 09:37:32.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -30,11 +30,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) $(LD_SOOPTIONS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ## Compiler switches to embed a library name and version information
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--ifeq ($(ENABLE_RPATH),YES)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ## Compiler switch to embed a runtime search path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LD_RPATH=
</span></pre><pre style='margin:0'>

</pre>