summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2017-12-03 15:39:22 +0100
committerFabian Groffen <grobian@gentoo.org>2017-12-03 15:39:22 +0100
commit48fd26ecc502d239477c753687539222f5e1d7ee (patch)
treef7cbacc0bb4f7354b91d272193a31576d11fa14f
parenthashgen: don't generate Manifest.gz for all subdirs (diff)
downloadprefix-48fd26ecc502d239477c753687539222f5e1d7ee.tar.gz
prefix-48fd26ecc502d239477c753687539222f5e1d7ee.tar.bz2
prefix-48fd26ecc502d239477c753687539222f5e1d7ee.zip
dev-libs/icu: cleanup
Package-Manager: Portage-2.3.13-prefix, Repoman-2.3.4
-rw-r--r--dev-libs/icu/Manifest2
-rw-r--r--dev-libs/icu/files/icu-3.6-darwin.patch66
-rw-r--r--dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff309
-rw-r--r--dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff305
-rw-r--r--dev-libs/icu/files/icu-3.8-setBreakType-public.diff24
-rw-r--r--dev-libs/icu/files/icu-3.8.1-darwin.patch56
-rw-r--r--dev-libs/icu/files/icu-3.8.1-static-names.patch18
-rw-r--r--dev-libs/icu/files/icu-3.8.1-winnt-basic.patch93
-rw-r--r--dev-libs/icu/files/icu-3.8.1-winnt.patch230
-rw-r--r--dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch177
-rw-r--r--dev-libs/icu/files/icu-4.0.1-fix_parallel_building.patch10
-rw-r--r--dev-libs/icu/files/icu-4.0.1-ia64-as.patch11
-rw-r--r--dev-libs/icu/files/icu-4.2.1-fix_misoptimizations.patch25
-rw-r--r--dev-libs/icu/files/icu-4.2.1-pkgdata-build_data_without_assembly.patch16
-rw-r--r--dev-libs/icu/files/icu-4.2.1-pkgdata.patch188
-rw-r--r--dev-libs/icu/files/icu-4.4.1-arm.patch26
-rw-r--r--dev-libs/icu/files/icu-4.4.1-et_EE.patch17
-rw-r--r--dev-libs/icu/files/icu-4.4.1-pkgdata.patch80
-rw-r--r--dev-libs/icu/files/icu-4.6-echo_t.patch28
-rw-r--r--dev-libs/icu/files/icu-4.6-pkgdata.patch98
-rw-r--r--dev-libs/icu/files/icu-4.8.1-darwin.patch56
-rw-r--r--dev-libs/icu/files/icu-4.8.1-fix_binformat_fonts.patch14
-rw-r--r--dev-libs/icu/files/icu-4.8.1-fix_nan.patch68
-rw-r--r--dev-libs/icu/files/icu-4.8.1.1-fix_ltr.patch61
-rw-r--r--dev-libs/icu/files/icu-49.1.1-bsd.patch25
-rw-r--r--dev-libs/icu/files/icu-49.1.1-regex.patch128
-rw-r--r--dev-libs/icu/files/icu-49.1.2-platforms.patch59
-rw-r--r--dev-libs/icu/files/icu-51.1-CVE-2013-2924.patch36
-rw-r--r--dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch1105
-rw-r--r--dev-libs/icu/files/icu-fix-tests-depending-on-date.patch15
-rw-r--r--dev-libs/icu/files/icu-remove-bashisms.patch230
-rw-r--r--dev-libs/icu/icu-54.1-r1.ebuild144
-rw-r--r--dev-libs/icu/icu-55.1.ebuild143
33 files changed, 0 insertions, 3863 deletions
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 7992659570..dc6f8971f7 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,3 +1 @@
-DIST icu4c-54_1-src.tgz 25485678 SHA256 d42bc9a8ca6a91c55eb0925c279f49e5b508d51ef26ac9850d9be55de5bb8ab3 SHA512 d54d4cd826e1aef62a574595a04f9fec0a42c4445ed0a166a6bb5c5f3c9f692bf3273756f350233f50b2a1ad32c437dedfeeac96d6dc814d27bfd9159b7a651c WHIRLPOOL 1ae01eb26824ca591ff76ea040f703023f24975ad4177d49b1dd60f7e7f96f60884745d6c6e5e2bdf17fc8e104e97ed814f6c0ca051d1807814e324eb24e94dd
-DIST icu4c-55_1-src.tgz 25600847 SHA256 e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b SHA512 21a3eb2c3678cd27b659eed073f8f1bd99c9751291d077820e9a370fd90b7d9b3bf414cc03dec4acb7fa61087e02d04f9f40e91a32c5180c718e2102fbd0cd35 WHIRLPOOL 8c5221c82ee2c8a02beafd0fdf91e0038e49912cc8b05fb7437dd4d0a0204b97ea62c45c2dd9dde0f658620b772d706e795821865c567d2e1eb91f8b83a12c4a
DIST icu4c-58_2-src.tgz 23369902 SHA256 2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c SHA512 5c21af748f48b392e6c0412bd0aee92162ea931820dcbfab4ec6e0299868504b303d88f7586cc95de55c777ac0dca3a29d6c8ca0892c646ebc864c8a5b5a162a WHIRLPOOL 25829f8ee870b703fd604ae5b9b584390a142f5011e2a5db18332453e2f1640d81270086f243318eeb93f187b04ea23dab14901ab81c8d924c8d47b1f77aee5a
diff --git a/dev-libs/icu/files/icu-3.6-darwin.patch b/dev-libs/icu/files/icu-3.6-darwin.patch
deleted file mode 100644
index cf28e70d0d..0000000000
--- a/dev-libs/icu/files/icu-3.6-darwin.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- config/mh-darwin
-+++ config/mh-darwin
-@@ -4,6 +4,13 @@
- ## Copyright (c) 1999-2006 International Business Machines Corporation and
- ## others. All Rights Reserved.
-
-+
-+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+FINAL_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION).$(SO)
-+MIDDLE_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION_MAJOR).$(SO)
-+
-+IS_DARWIN = yes
-+
- ## Flags for position independent code
- SHAREDLIBCFLAGS = -dynamic
- SHAREDLIBCXXFLAGS = -dynamic
-@@ -25,7 +34,7 @@
- SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS)
-
- ## Compiler switches to embed a library name and version information
--LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
-+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
-
- ## Compiler switch to embed a runtime search path
- LD_RPATH=
-@@ -72,9 +81,9 @@
-
- ## Versioned libraries rules
-
--%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
-+%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO)
- $(RM) $@ && ln -s ${<F} $@
--%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
-- $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
-+%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO)
-+ $(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@
-
- ## End Darwin-specific setup
---- tools/ctestfw/Makefile.in
-+++ tools/ctestfw/Makefile.in
-@@ -31,7 +31,11 @@
- endif
-
- ifneq ($(ENABLE_SHARED),)
-+ifeq ($(IS_DARWIN),)
- SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+else
-+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+endif
- ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
- endif
-
---- stubdata/Makefile.in
-+++ stubdata/Makefile.in
-@@ -32,7 +32,11 @@
-
-
- ifneq ($(ENABLE_SHARED),)
-+ifeq ($(IS_DARWIN),)
- SO_TARGET = $(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-+else
-+SO_TARGET = $(LIBDIR)/$(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-+endif
- ALL_SO_TARGETS = $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET) $(SO_TARGET) $(BATCH_STUB_TARGET) $(SHARED_OBJECT)
- endif
-
diff --git a/dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff b/dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff
deleted file mode 100644
index 07979a4531..0000000000
--- a/dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff
+++ /dev/null
@@ -1,309 +0,0 @@
-# borrowed from redhat -- https://bugzilla.redhat.com/show_bug.cgi?id=429023
-
-diff -ru icu.orig/source/common/uvectr32.cpp icu/source/common/uvectr32.cpp
---- icu.orig/source/common/uvectr32.cpp 2003-08-27 02:01:30.000000000 +0100
-+++ icu/source/common/uvectr32.cpp 2008-01-22 08:37:06.000000000 +0000
-@@ -1,6 +1,6 @@
- /*
- ******************************************************************************
--* Copyright (C) 1999-2003, International Business Machines Corporation and *
-+* Copyright (C) 1999-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- ******************************************************************************
- * Date Name Description
-@@ -26,6 +26,7 @@
- UVector32::UVector32(UErrorCode &status) :
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(NULL)
- {
- _init(DEFUALT_CAPACITY, status);
-@@ -34,6 +35,7 @@
- UVector32::UVector32(int32_t initialCapacity, UErrorCode &status) :
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(0)
- {
- _init(initialCapacity, status);
-@@ -46,6 +48,9 @@
- if (initialCapacity < 1) {
- initialCapacity = DEFUALT_CAPACITY;
- }
-+ if (maxCapacity>0 && maxCapacity<initialCapacity) {
-+ initialCapacity = maxCapacity;
-+ }
- elements = (int32_t *)uprv_malloc(sizeof(int32_t)*initialCapacity);
- if (elements == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
-@@ -189,21 +194,35 @@
- UBool UVector32::expandCapacity(int32_t minimumCapacity, UErrorCode &status) {
- if (capacity >= minimumCapacity) {
- return TRUE;
-- } else {
-- int32_t newCap = capacity * 2;
-- if (newCap < minimumCapacity) {
-- newCap = minimumCapacity;
-- }
-- int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-- if (newElems == 0) {
-- status = U_MEMORY_ALLOCATION_ERROR;
-- return FALSE;
-- }
-- uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-- uprv_free(elements);
-- elements = newElems;
-- capacity = newCap;
-- return TRUE;
-+ }
-+ if (maxCapacity>0 && minimumCapacity>maxCapacity) {
-+ status = U_BUFFER_OVERFLOW_ERROR;
-+ return FALSE;
-+ }
-+ int32_t newCap = capacity * 2;
-+ if (newCap < minimumCapacity) {
-+ newCap = minimumCapacity;
-+ }
-+ if (maxCapacity > 0 && newCap > maxCapacity) {
-+ newCap = maxCapacity;
-+ }
-+ int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-+ if (newElems == 0) {
-+ status = U_MEMORY_ALLOCATION_ERROR;
-+ return FALSE;
-+ }
-+ uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-+ uprv_free(elements);
-+ elements = newElems;
-+ capacity = newCap;
-+ return TRUE;
-+}
-+
-+void UVector32::setMaxCapacity(int32_t limit) {
-+ U_ASSERT(limit >= 0);
-+ maxCapacity = limit;
-+ if (maxCapacity < 0) {
-+ maxCapacity = 0;
- }
- }
-
-diff -ru icu.orig/source/common/uvectr32.h icu/source/common/uvectr32.h
---- icu.orig/source/common/uvectr32.h 2006-01-18 03:52:04.000000000 +0000
-+++ icu/source/common/uvectr32.h 2008-01-22 08:37:07.000000000 +0000
-@@ -1,6 +1,6 @@
- /*
- **********************************************************************
--* Copyright (C) 1999-2006, International Business Machines
-+* Copyright (C) 1999-2008, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
-@@ -61,6 +61,8 @@
- int32_t count;
-
- int32_t capacity;
-+
-+ int32_t maxCapacity; // Limit beyond which capacity is not permitted to grow.
-
- int32_t* elements;
-
-@@ -162,6 +164,14 @@
- int32_t *getBuffer() const;
-
- /**
-+ * Set the maximum allowed buffer capacity for this vector/stack.
-+ * Default with no limit set is unlimited, go until malloc() fails.
-+ * A Limit of zero means unlimited capacity.
-+ * Units are vector elements (32 bits each), not bytes.
-+ */
-+ void setMaxCapacity(int32_t limit);
-+
-+ /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- */
- static UClassID U_EXPORT2 getStaticClassID();
-@@ -221,7 +231,9 @@
- }
-
- inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) {
-- ensureCapacity(count+size, status);
-+ if (ensureCapacity(count+size, status) == FALSE) {
-+ return NULL;
-+ }
- int32_t *rp = elements+count;
- count += size;
- return rp;
-diff -ru icu.orig/source/i18n/regexcmp.cpp icu/source/i18n/regexcmp.cpp
---- icu.orig/source/i18n/regexcmp.cpp 2006-02-02 04:37:14.000000000 +0000
-+++ icu/source/i18n/regexcmp.cpp 2008-01-22 08:37:06.000000000 +0000
-@@ -1187,14 +1187,17 @@
- // Because capture groups can be forward-referenced by back-references,
- // we fill the operand with the capture group number. At the end
- // of compilation, it will be changed to the variable's location.
-- U_ASSERT(groupNum > 0);
-- int32_t op;
-- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ if (groupNum < 1) {
-+ error(U_REGEX_INVALID_BACK_REF);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-+ int32_t op;
-+ if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-+ op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ } else {
-+ op = URX_BUILD(URX_BACKREF, groupNum);
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
- }
- break;
-
-diff -ru icu.orig/source/i18n/rematch.cpp icu/source/i18n/rematch.cpp
---- icu.orig/source/i18n/rematch.cpp 2005-08-25 19:02:20.000000000 +0100
-+++ icu/source/i18n/rematch.cpp 2008-01-22 08:37:44.000000000 +0000
-@@ -30,6 +30,15 @@
-
- U_NAMESPACE_BEGIN
-
-+// Limit the size of the back track stack, to avoid system failures caused
-+// by heap exhaustion. Units are in 32 bit words, not bytes.
-+// This value puts ICU's limits higher than most other regexp implementations,
-+// which use recursion rather than the heap, and take more storage per
-+// backtrack point.
-+// This constant is _temporary_. Proper API to control the value will added.
-+//
-+static const int32_t BACKTRACK_STACK_CAPACITY = 8000000;
-+
- //-----------------------------------------------------------------------------
- //
- // Constructor and Destructor
-@@ -53,6 +62,8 @@
- }
- if (fStack == NULL || fData == NULL) {
- fDeferredStatus = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
-
- reset(*RegexStaticSets::gStaticSets->fEmptyString);
-@@ -78,6 +89,8 @@
- }
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(input);
- }
-@@ -102,6 +115,8 @@
- }
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(*RegexStaticSets::gStaticSets->fEmptyString);
- }
-@@ -1015,6 +1030,14 @@
- inline REStackFrame *RegexMatcher::StateSave(REStackFrame *fp, int32_t savePatIdx, int32_t frameSize, UErrorCode &status) {
- // push storage for a new frame.
- int32_t *newFP = fStack->reserveBlock(frameSize, status);
-+ if (newFP == NULL) {
-+ // Heap allocation error on attempted stack expansion.
-+ // We need to return a writable stack frame, so just return the
-+ // previous frame. The match operation will stop quickly
-+ // becuase of the error status, after which the frame will never
-+ // be looked at again.
-+ return fp;
-+ }
- fp = (REStackFrame *)(newFP - frameSize); // in case of realloc of stack.
-
- // New stack frame = copy of old top frame.
-@@ -1030,8 +1053,8 @@
- fp->fPatIdx = savePatIdx;
- return (REStackFrame *)newFP;
- }
--
--
-+
-+
- //--------------------------------------------------------------------------------
- //
- // MatchAt This is the actual matching engine.
-@@ -2262,6 +2285,7 @@
- }
-
- if (U_FAILURE(status)) {
-+ isMatch = FALSE;
- break;
- }
- }
-diff -ru icu.orig/source/test/intltest/regextst.cpp icu/source/test/intltest/regextst.cpp
---- icu.orig/source/test/intltest/regextst.cpp 2005-07-05 19:39:00.000000000 +0100
-+++ icu/source/test/intltest/regextst.cpp 2008-01-22 08:38:21.000000000 +0000
-@@ -66,6 +66,10 @@
- case 6: name = "PerlTests";
- if (exec) PerlTests();
- break;
-+ case 7: name = "Bug 6149";
-+ if (exec) Bug6149();
-+ break;
-+
-
-
- default: name = "";
-@@ -1637,6 +1641,13 @@
- // UnicodeSet containing a string
- REGEX_ERR("abc[{def}]xyz", 1, 10, U_REGEX_SET_CONTAINS_STRING);
-
-+
-+ // Invalid Back Reference \0
-+ // For ICU 3.8 and earlier
-+ // For ICU versions newer than 3.8, \0 introduces an octal escape.
-+ //
-+ REGEX_ERR("(ab)\\0", 1, 6, U_REGEX_INVALID_BACK_REF);
-+
- }
-
-
-@@ -2119,6 +2130,26 @@
- }
-
-
-+//--------------------------------------------------------------
-+//
-+// Bug6149 Verify limits to heap expansion for backtrack stack.
-+// Use this pattern,
-+// "(a?){1,}"
-+// The zero-length match will repeat forever.
-+// (That this goes into a loop is another bug)
-+//
-+//---------------------------------------------------------------
-+void RegexTest::Bug6149() {
-+ UnicodeString pattern("(a?){1,}");
-+ UnicodeString s("xyz");
-+ uint32_t flags = 0;
-+ UErrorCode status = U_ZERO_ERROR;
-+
-+ RegexMatcher matcher(pattern, s, flags, status);
-+ UBool result = false;
-+ REGEX_ASSERT_FAIL(result=matcher.matches(status), U_BUFFER_OVERFLOW_ERROR);
-+ REGEX_ASSERT(result == FALSE);
-+ }
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-
-diff -ru icu.orig/source/test/intltest/regextst.h icu/source/test/intltest/regextst.h
---- icu.orig/source/test/intltest/regextst.h 2003-12-03 06:58:28.000000000 +0000
-+++ icu/source/test/intltest/regextst.h 2008-01-22 08:37:06.000000000 +0000
-@@ -30,6 +30,7 @@
- virtual void Extended();
- virtual void Errors();
- virtual void PerlTests();
-+ virtual void Bug6149();
-
- // The following functions are internal to the regexp tests.
- virtual UBool doRegexLMTest(const char *pat, const char *text, UBool looking, UBool match, int line);
diff --git a/dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff b/dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff
deleted file mode 100644
index 545540a4cf..0000000000
--- a/dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff
+++ /dev/null
@@ -1,305 +0,0 @@
-Index: /icu/branches/maint/maint-3-8/source/i18n/regexcmp.cpp
-===================================================================
---- i18n/regexcmp.cpp (revision 21805)
-+++ i18n/regexcmp.cpp (revision 23292)
-@@ -3,5 +3,5 @@
- // file: regexcmp.cpp
- //
--// Copyright (C) 2002-2007 International Business Machines Corporation and others.
-+// Copyright (C) 2002-2008 International Business Machines Corporation and others.
- // All Rights Reserved.
- //
-@@ -1187,12 +1187,15 @@
- // we fill the operand with the capture group number. At the end
- // of compilation, it will be changed to the variable's location.
-- U_ASSERT(groupNum > 0);
-- int32_t op;
-- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ if (groupNum < 1) {
-+ error(U_REGEX_INVALID_BACK_REF);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t op;
-+ if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-+ op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ } else {
-+ op = URX_BUILD(URX_BACKREF, groupNum);
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ }
- }
- break;
-Index: /icu/branches/maint/maint-3-8/source/i18n/rematch.cpp
-===================================================================
---- i18n/rematch.cpp (revision 21973)
-+++ i18n/rematch.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- **************************************************************************
--* Copyright (C) 2002-2007 International Business Machines Corporation *
-+* Copyright (C) 2002-2008 International Business Machines Corporation *
- * and others. All rights reserved. *
- **************************************************************************
-@@ -30,4 +30,13 @@
-
- U_NAMESPACE_BEGIN
-+
-+// Limit the size of the back track stack, to avoid system failures caused
-+// by heap exhaustion. Units are in 32 bit words, not bytes.
-+// This value puts ICU's limits higher than most other regexp implementations,
-+// which use recursion rather than the heap, and take more storage per
-+// backtrack point.
-+// This constant is _temporary_. Proper API to control the value will added.
-+//
-+static const int32_t BACKTRACK_STACK_CAPACITY = 8000000;
-
- //-----------------------------------------------------------------------------
-@@ -54,6 +63,7 @@
- if (fStack == NULL || fData == NULL) {
- fDeferredStatus = U_MEMORY_ALLOCATION_ERROR;
-- }
--
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
-+ }
- reset(RegexStaticSets::gStaticSets->fEmptyString);
- }
-@@ -79,4 +89,6 @@
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(input);
-@@ -103,4 +115,6 @@
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(RegexStaticSets::gStaticSets->fEmptyString);
-@@ -1015,4 +1029,12 @@
- // push storage for a new frame.
- int32_t *newFP = fStack->reserveBlock(frameSize, status);
-+ if (newFP == NULL) {
-+ // Heap allocation error on attempted stack expansion.
-+ // We need to return a writable stack frame, so just return the
-+ // previous frame. The match operation will stop quickly
-+ // becuase of the error status, after which the frame will never
-+ // be looked at again.
-+ return fp;
-+ }
- fp = (REStackFrame *)(newFP - frameSize); // in case of realloc of stack.
-
-@@ -1030,6 +1052,6 @@
- return (REStackFrame *)newFP;
- }
--
--
-+
-+
- //--------------------------------------------------------------------------------
- //
-@@ -2262,4 +2284,5 @@
-
- if (U_FAILURE(status)) {
-+ isMatch = FALSE;
- break;
- }
-Index: /icu/branches/maint/maint-3-8/source/test/intltest/regextst.h
-===================================================================
---- test/intltest/regextst.h (revision 22001)
-+++ test/intltest/regextst.h (revision 23292)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2007, International Business Machines Corporation and
-+ * Copyright (c) 2002-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -31,4 +31,5 @@
- virtual void Errors();
- virtual void PerlTests();
-+ virtual void Bug6149();
-
- // The following functions are internal to the regexp tests.
-Index: /icu/branches/maint/maint-3-8/source/test/intltest/regextst.cpp
-===================================================================
---- test/intltest/regextst.cpp (revision 22057)
-+++ test/intltest/regextst.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2007, International Business Machines Corporation and
-+ * Copyright (c) 2002-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -67,4 +67,8 @@
- if (exec) PerlTests();
- break;
-+ case 7: name = "Bug 6149";
-+ if (exec) Bug6149();
-+ break;
-+
-
-
-@@ -1640,4 +1644,10 @@
- // Ticket 5389
- REGEX_ERR("*c", 1, 1, U_REGEX_RULE_SYNTAX);
-+
-+ // Invalid Back Reference \0
-+ // For ICU 3.8 and earlier
-+ // For ICU versions newer than 3.8, \0 introduces an octal escape.
-+ //
-+ REGEX_ERR("(ab)\\0", 1, 6, U_REGEX_INVALID_BACK_REF);
-
- }
-@@ -2123,4 +2133,24 @@
-
-
-+//--------------------------------------------------------------
-+//
-+// Bug6149 Verify limits to heap expansion for backtrack stack.
-+// Use this pattern,
-+// "(a?){1,}"
-+// The zero-length match will repeat forever.
-+// (That this goes into a loop is another bug)
-+//
-+//---------------------------------------------------------------
-+void RegexTest::Bug6149() {
-+ UnicodeString pattern("(a?){1,}");
-+ UnicodeString s("xyz");
-+ uint32_t flags = 0;
-+ UErrorCode status = U_ZERO_ERROR;
-+
-+ RegexMatcher matcher(pattern, s, flags, status);
-+ UBool result = false;
-+ REGEX_ASSERT_FAIL(result=matcher.matches(status), U_BUFFER_OVERFLOW_ERROR);
-+ REGEX_ASSERT(result == FALSE);
-+ }
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-Index: /icu/branches/maint/maint-3-8/source/common/uvectr32.cpp
-===================================================================
---- common/uvectr32.cpp (revision 12958)
-+++ common/uvectr32.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- ******************************************************************************
--* Copyright (C) 1999-2003, International Business Machines Corporation and *
-+* Copyright (C) 1999-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- ******************************************************************************
-@@ -27,4 +27,5 @@
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(NULL)
- {
-@@ -35,4 +36,5 @@
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(0)
- {
-@@ -46,4 +48,7 @@
- if (initialCapacity < 1) {
- initialCapacity = DEFUALT_CAPACITY;
-+ }
-+ if (maxCapacity>0 && maxCapacity<initialCapacity) {
-+ initialCapacity = maxCapacity;
- }
- elements = (int32_t *)uprv_malloc(sizeof(int32_t)*initialCapacity);
-@@ -190,19 +195,33 @@
- if (capacity >= minimumCapacity) {
- return TRUE;
-- } else {
-- int32_t newCap = capacity * 2;
-- if (newCap < minimumCapacity) {
-- newCap = minimumCapacity;
-- }
-- int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-- if (newElems == 0) {
-- status = U_MEMORY_ALLOCATION_ERROR;
-- return FALSE;
-- }
-- uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-- uprv_free(elements);
-- elements = newElems;
-- capacity = newCap;
-- return TRUE;
-+ }
-+ if (maxCapacity>0 && minimumCapacity>maxCapacity) {
-+ status = U_BUFFER_OVERFLOW_ERROR;
-+ return FALSE;
-+ }
-+ int32_t newCap = capacity * 2;
-+ if (newCap < minimumCapacity) {
-+ newCap = minimumCapacity;
-+ }
-+ if (maxCapacity > 0 && newCap > maxCapacity) {
-+ newCap = maxCapacity;
-+ }
-+ int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-+ if (newElems == 0) {
-+ status = U_MEMORY_ALLOCATION_ERROR;
-+ return FALSE;
-+ }
-+ uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-+ uprv_free(elements);
-+ elements = newElems;
-+ capacity = newCap;
-+ return TRUE;
-+}
-+
-+void UVector32::setMaxCapacity(int32_t limit) {
-+ U_ASSERT(limit >= 0);
-+ maxCapacity = limit;
-+ if (maxCapacity < 0) {
-+ maxCapacity = 0;
- }
- }
-Index: /icu/branches/maint/maint-3-8/source/common/uvectr32.h
-===================================================================
---- common/uvectr32.h (revision 19000)
-+++ common/uvectr32.h (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- **********************************************************************
--* Copyright (C) 1999-2006, International Business Machines
-+* Copyright (C) 1999-2008, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
-@@ -62,4 +62,6 @@
-
- int32_t capacity;
-+
-+ int32_t maxCapacity; // Limit beyond which capacity is not permitted to grow.
-
- int32_t* elements;
-@@ -161,4 +163,12 @@
- */
- int32_t *getBuffer() const;
-+
-+ /**
-+ * Set the maximum allowed buffer capacity for this vector/stack.
-+ * Default with no limit set is unlimited, go until malloc() fails.
-+ * A Limit of zero means unlimited capacity.
-+ * Units are vector elements (32 bits each), not bytes.
-+ */
-+ void setMaxCapacity(int32_t limit);
-
- /**
-@@ -222,5 +232,7 @@
-
- inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) {
-- ensureCapacity(count+size, status);
-+ if (ensureCapacity(count+size, status) == FALSE) {
-+ return NULL;
-+ }
- int32_t *rp = elements+count;
- count += size;
-
diff --git a/dev-libs/icu/files/icu-3.8-setBreakType-public.diff b/dev-libs/icu/files/icu-3.8-setBreakType-public.diff
deleted file mode 100644
index 3320b92282..0000000000
--- a/dev-libs/icu/files/icu-3.8-setBreakType-public.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-This patch makes setBreakType public (needed for OO.org),
-pending a better upstream solution in 4.0. For details, see:
-http://qa.openoffice.org/issues/show_bug.cgi?id=83146
-http://bugs.icu-project.org/trac/ticket/5498
-http://bugs.gentoo.org/show_bug.cgi?id=200010
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=448745
-diff -Nau common/unicode.rbbi.h.orig common/unicode/rbbi.h
---- common/unicode/rbbi.h.orig 2007-10-31 15:52:08.000000000 +0100
-+++ common/unicode/rbbi.h 2007-10-31 15:52:47.000000000 +0100
-@@ -611,12 +611,14 @@
- virtual int32_t getBreakType() const;
- #endif
-
-+public:
- /**
- * Set the type of the break iterator.
- * @internal
- */
- virtual void setBreakType(int32_t type);
-
-+protected:
- /**
- * Common initialization function, used by constructors and bufferClone.
- * (Also used by DictionaryBasedBreakIterator::createBufferClone().)
diff --git a/dev-libs/icu/files/icu-3.8.1-darwin.patch b/dev-libs/icu/files/icu-3.8.1-darwin.patch
deleted file mode 100644
index faf102f80a..0000000000
--- a/dev-libs/icu/files/icu-3.8.1-darwin.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -ur icu.orig/source/config/mh-darwin icu/source/config/mh-darwin
---- icu.orig/source/config/mh-darwin 2007-12-12 19:57:36 +0100
-+++ icu/source/config/mh-darwin 2008-01-25 22:32:46 +0100
-@@ -4,6 +4,13 @@
- ## Copyright (c) 1999-2007 International Business Machines Corporation and
- ## others. All Rights Reserved.
-
-+
-+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+FINAL_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION).$(SO)
-+MIDDLE_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION_MAJOR).$(SO)
-+
-+IS_DARWIN = yes
-+
- ## Flags for position independent code
- SHAREDLIBCFLAGS = -dynamic
- SHAREDLIBCXXFLAGS = -dynamic
-@@ -25,7 +32,7 @@
- SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS)
-
- ## Compiler switches to embed a library name and version information
--LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
-+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
-
- ## Compiler switch to embed a runtime search path
- LD_RPATH=
-diff -ur icu.orig/source/stubdata/Makefile.in icu/source/stubdata/Makefile.in
---- icu.orig/source/stubdata/Makefile.in 2007-12-12 19:57:36 +0100
-+++ icu/source/stubdata/Makefile.in 2008-01-25 22:32:46 +0100
-@@ -32,7 +32,11 @@
-
-
- ifneq ($(ENABLE_SHARED),)
-+ifeq ($(IS_DARWIN),)
- SO_TARGET = $(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-+else
-+SO_TARGET = $(LIBDIR)/$(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-+endif
- ALL_SO_TARGETS = $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET) $(SO_TARGET) $(BATCH_STUB_TARGET) $(SHARED_OBJECT)
- endif
-
-diff -ur icu.orig/source/tools/ctestfw/Makefile.in icu/source/tools/ctestfw/Makefile.in
---- icu.orig/source/tools/ctestfw/Makefile.in 2007-12-12 19:57:26 +0100
-+++ icu/source/tools/ctestfw/Makefile.in 2008-01-25 22:32:46 +0100
-@@ -31,7 +31,11 @@
- endif
-
- ifneq ($(ENABLE_SHARED),)
-+ifeq ($(IS_DARWIN),)
- SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+else
-+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+endif
- ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
- endif
-
diff --git a/dev-libs/icu/files/icu-3.8.1-static-names.patch b/dev-libs/icu/files/icu-3.8.1-static-names.patch
deleted file mode 100644
index f608cf2887..0000000000
--- a/dev-libs/icu/files/icu-3.8.1-static-names.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- icu/source/icudefs.mk.in.weg 2009-06-08 16:38:33 +0200
-+++ icu/source/icudefs.mk.in 2009-06-08 16:38:43 +0200
-@@ -173,13 +173,13 @@
-
- ## If we can't use the shared libraries, use the static libraries
- ifneq ($(ENABLE_SHARED),YES)
--STATIC_PREFIX_WHEN_USED = s
-+STATIC_PREFIX_WHEN_USED =
- else
- STATIC_PREFIX_WHEN_USED =
- endif
-
- # Static library prefix and file extension
--STATIC_PREFIX = s
-+STATIC_PREFIX =
- LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
- A = a
- SOBJ = $(SO)
diff --git a/dev-libs/icu/files/icu-3.8.1-winnt-basic.patch b/dev-libs/icu/files/icu-3.8.1-winnt-basic.patch
deleted file mode 100644
index 80e5309011..0000000000
--- a/dev-libs/icu/files/icu-3.8.1-winnt-basic.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff -ruN icu.orig/source/aclocal.m4 icu/source/aclocal.m4
---- icu.orig/source/aclocal.m4 2008-08-28 10:38:15 +0200
-+++ icu/source/aclocal.m4 2008-08-28 10:38:56 +0200
-@@ -31,6 +31,7 @@
- icu_cv_host_frag=mh-linux-va
- fi ;;
- *-*-linux*|*-pc-gnu) icu_cv_host_frag=mh-linux ;;
-+*-*-winnt*) icu_cv_host_frag=mh-winnt ;;
- *-*-cygwin|*-*-mingw32)
- if test "$GCC" = yes; then
- AC_TRY_COMPILE([
-diff -ruN icu.orig/source/config/mh-winnt icu/source/config/mh-winnt
---- icu.orig/source/config/mh-winnt 1970-01-01 01:00:00 +0100
-+++ icu/source/config/mh-winnt 2008-08-28 10:39:52 +0200
-@@ -0,0 +1,78 @@
-+## -*-makefile-*-
-+## Windows specific setup (through parity)
-+## Copyright (c) 1999-2006, International Business Machines Corporation and
-+## others. All Rights Reserved.
-+
-+## Commands to generate dependency files
-+GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
-+GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
-+
-+## Flags for position independent code
-+SHAREDLIBCFLAGS = -fPIC
-+SHAREDLIBCXXFLAGS = -fPIC
-+SHAREDLIBCPPFLAGS = -DPIC
-+
-+## Additional flags when building libraries and with threads
-+THREADSCPPFLAGS = -D_REENTRANT
-+LIBCPPFLAGS =
-+
-+## Compiler switch to embed a runtime search path
-+LD_RPATH=
-+LD_RPATH_PRE = -Wl,-rpath,
-+
-+## These are the library specific LDFLAGS
-+LDFLAGSICUDT=
-+
-+## Compiler switch to embed a library name
-+# The initial tab in the next line is to prevent icu-config from reading it.
-+ #LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
-+#SH# # We can't depend on MIDDLE_SO_TARGET being set.
-+#SH# LD_SONAME=
-+
-+## Shared object suffix
-+SO = so
-+## Non-shared intermediate object suffix
-+STATIC_O = ao
-+
-+## Compilation rules
-+%.$(STATIC_O): $(srcdir)/%.c
-+ $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
-+%.o: $(srcdir)/%.c
-+ $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
-+
-+%.$(STATIC_O): $(srcdir)/%.cpp
-+ $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
-+%.o: $(srcdir)/%.cpp
-+ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
-+
-+
-+## Dependency rules
-+%.d: $(srcdir)/%.c
-+ @echo "generating dependency information for $<"
-+ @$(SHELL) -ec '$(GEN_DEPS.c) $< \
-+ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
-+ [ -s $@ ] || rm -f $@'
-+
-+%.d: $(srcdir)/%.cpp
-+ @echo "generating dependency information for $<"
-+ @$(SHELL) -ec '$(GEN_DEPS.cc) $< \
-+ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
-+ [ -s $@ ] || rm -f $@'
-+
-+## Versioned libraries rules
-+
-+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
-+ $(RM) $@ && ln -s ${<F} $@
-+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
-+ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
-+
-+## Bind internal references
-+
-+# LDflags that pkgdata will use
-+BIR_LDFLAGS=
-+
-+# Dependencies [i.e. map files] for the final library
-+BIR_DEPS=
-+
-+## End Windows-specific setup
-+
diff --git a/dev-libs/icu/files/icu-3.8.1-winnt.patch b/dev-libs/icu/files/icu-3.8.1-winnt.patch
deleted file mode 100644
index a62d5cc25e..0000000000
--- a/dev-libs/icu/files/icu-3.8.1-winnt.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/common/Makefile.in icu/source/common/Makefile.in
---- icu.orig/source/common/Makefile.in 2008-08-29 09:23:02 +0200
-+++ icu/source/common/Makefile.in 2008-08-29 09:48:46 +0200
-@@ -132,6 +132,9 @@
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
- endif
- endif
-+ if test -f $(FINAL_SO_TARGET).dll; then \
-+ $(INSTALL-L) $(FINAL_SO_TARGET).dll $(DESTDIR)$(libdir); \
-+ fi
- ifneq ($(IMPORT_LIB_EXT),)
- $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
- ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/common/unicode/umachine.h icu/source/common/unicode/umachine.h
---- icu.orig/source/common/unicode/umachine.h 2008-08-29 10:10:19 +0200
-+++ icu/source/common/unicode/umachine.h 2008-08-29 08:34:43 +0200
-@@ -44,6 +44,12 @@
- #if defined(U_PALMOS)
- # include "unicode/ppalmos.h"
- #elif defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
-+# if defined(__PARITY__)
-+# define U_MAKE "gmake"
-+ /* can do dllimport _always_ with parity. parity will
-+ * change it to the correct sort of symbol request. */
-+# define PARITY_IMPORT __declspec(dllimport)
-+# endif
- # include "unicode/pwin32.h"
- #else
- # include "unicode/platform.h"
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/common/unicode/utypes.h icu/source/common/unicode/utypes.h
---- icu.orig/source/common/unicode/utypes.h 2008-08-29 10:10:19 +0200
-+++ icu/source/common/unicode/utypes.h 2008-08-29 08:34:43 +0200
-@@ -451,6 +451,12 @@
- #define U_TOOLUTIL_API U_IMPORT
- #endif
-
-+#ifdef __PARITY__
-+/* always use the PARITY_IMPORT setting... */
-+#undef U_DATA_API
-+#define U_DATA_API PARITY_IMPORT
-+#endif
-+
- /**
- * \def U_STANDARD_CPP_NAMESPACE
- * Control of C++ Namespace
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/extra/uconv/uconv.cpp icu/source/extra/uconv/uconv.cpp
---- icu.orig/source/extra/uconv/uconv.cpp 2008-08-29 10:10:19 +0200
-+++ icu/source/extra/uconv/uconv.cpp 2008-08-29 08:34:43 +0200
-@@ -46,6 +46,7 @@
- #if defined(U_WINDOWS)
- #define USE_FILENO_BINARY_MODE 1
- /* Windows likes to rename Unix-like functions */
-+#ifndef __PARITY__
- #ifndef fileno
- #define fileno _fileno
- #endif
-@@ -55,6 +56,7 @@
- #ifndef O_BINARY
- #define O_BINARY _O_BINARY
- #endif
-+#endif /* __PARITY__ */
- #endif
- #endif
-
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/i18n/Makefile.in icu/source/i18n/Makefile.in
---- icu.orig/source/i18n/Makefile.in 2008-08-29 09:23:55 +0200
-+++ icu/source/i18n/Makefile.in 2008-08-29 10:03:14 +0200
-@@ -122,6 +122,9 @@
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
- endif
- endif
-+ if test -f $(FINAL_SO_TARGET).dll; then \
-+ $(INSTALL-L) $(FINAL_SO_TARGET).dll $(DESTDIR)$(libdir); \
-+ fi
- ifneq ($(IMPORT_LIB_EXT),)
- $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
- ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/io/Makefile.in icu/source/io/Makefile.in
---- icu.orig/source/io/Makefile.in 2008-08-29 09:24:03 +0200
-+++ icu/source/io/Makefile.in 2008-08-29 10:04:19 +0200
-@@ -107,6 +107,9 @@
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
- endif
- endif
-+ if test -f $(FINAL_SO_TARGET).dll; then \
-+ $(INSTALL-L) $(FINAL_SO_TARGET).dll $(DESTDIR)$(libdir); \
-+ fi
- ifneq ($(IMPORT_LIB_EXT),)
- $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
- ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/layout/Makefile.in icu/source/layout/Makefile.in
---- icu.orig/source/layout/Makefile.in 2008-08-29 09:24:07 +0200
-+++ icu/source/layout/Makefile.in 2008-08-29 10:05:37 +0200
-@@ -177,6 +177,9 @@
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
- endif
- endif
-+ if test -f $(FINAL_SO_TARGET).dll; then \
-+ $(INSTALL-L) $(FINAL_SO_TARGET).dll $(DESTDIR)$(libdir); \
-+ fi
- ifneq ($(IMPORT_LIB_EXT),)
- $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
- ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/layoutex/Makefile.in icu/source/layoutex/Makefile.in
---- icu.orig/source/layoutex/Makefile.in 2008-08-29 09:24:09 +0200
-+++ icu/source/layoutex/Makefile.in 2008-08-29 10:06:15 +0200
-@@ -108,6 +108,9 @@
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
- endif
- endif
-+ if test -f $(FINAL_SO_TARGET).dll; then \
-+ $(INSTALL-L) $(FINAL_SO_TARGET).dll $(DESTDIR)$(libdir); \
-+ fi
- ifneq ($(IMPORT_LIB_EXT),)
- $(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
- ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/tools/genccode/genccode.c icu/source/tools/genccode/genccode.c
---- icu.orig/source/tools/genccode/genccode.c 2008-08-29 10:10:19 +0200
-+++ icu/source/tools/genccode/genccode.c 2008-08-29 08:34:43 +0200
-@@ -878,8 +878,12 @@
- */
- entry[0]='_';
-
-+#ifndef __PARITY__
- newSuffix=".obj";
- #else
-+ newSuffix=".o";
-+#endif
-+#else
- # error "Unknown platform for CAN_GENERATE_OBJECTS."
- #endif
-
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/tools/pkgdata/dllmode.c icu/source/tools/pkgdata/dllmode.c
---- icu.orig/source/tools/pkgdata/dllmode.c 2008-08-29 09:25:05 +0200
-+++ icu/source/tools/pkgdata/dllmode.c 2008-08-29 10:00:28 +0200
-@@ -266,6 +266,9 @@
- T_FileStream_writeLine(makefile, "\tcd $(INSTALLTO) && $(RM) $(MIDDLE_SO_TARGET) && ln -s $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET)\n");
- T_FileStream_writeLine(makefile, "endif\n");
- T_FileStream_writeLine(makefile, "endif\n");
-+ T_FileStream_writeLine(makefile, "\tif test -f $(TARGETDIR)/$(FINAL_SO_TARGET).dll; then \\\n");
-+ T_FileStream_writeLine(makefile, "\t\t$(INSTALL-L) $(TARGETDIR)/$(FINAL_SO_TARGET).dll $(INSTALLTO)/$(FINAL_SO_TARGET).dll; \\\n");
-+ T_FileStream_writeLine(makefile, "\tfi");
-
- #ifdef OS390
- T_FileStream_writeLine(makefile, "ifneq ($(IMPORT_LIB_EXT),)\n");
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/tools/pkgdata/pkgdata.c icu/source/tools/pkgdata/pkgdata.c
---- icu.orig/source/tools/pkgdata/pkgdata.c 2008-08-29 10:10:19 +0200
-+++ icu/source/tools/pkgdata/pkgdata.c 2008-08-29 08:34:43 +0200
-@@ -37,7 +37,7 @@
- #include "uoptions.h"
- #include "putilimp.h"
-
--#if U_HAVE_POPEN
-+#if U_HAVE_POPEN || defined (__PARITY__)
- # include <unistd.h>
- #endif
- #include <stdio.h>
-@@ -476,6 +476,26 @@
- o->makeArgs && *o->makeArgs ? "'" : "",
- o->makeArgs && *o->makeArgs ? o->makeArgs : "",
- o->makeArgs && *o->makeArgs ? "'" : "");
-+#elif defined(__PARITY__)
-+ {
-+ const char * p = NULL;
-+ if(access("C:\\Windows\\posix.exe", X_OK) == 0)
-+ p = "C:\\Windows\\posix.exe";
-+ else
-+ p = "C:\\Windows\\system32\\posix.exe";
-+
-+ /* need to call through posix subsystem to reach make */
-+ sprintf(cmd, "%s /u /c %s %s%s -f %s %s %s %s %s",
-+ p,
-+ make,
-+ o->install ? "INSTALLTO=" : "",
-+ o->install ? o->install : "",
-+ o->makeFile,
-+ o->clean ? "clean" : "",
-+ o->rebuild ? "rebuild" : "",
-+ o->install ? "install" : "",
-+ o->makeArgs);
-+ }
- #else
- sprintf(cmd, "%s %s%s -f %s %s %s %s %s",
- make,
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/tools/pkgdata/pkgtypes.h icu/source/tools/pkgdata/pkgtypes.h
---- icu.orig/source/tools/pkgdata/pkgtypes.h 2008-08-29 10:10:19 +0200
-+++ icu/source/tools/pkgdata/pkgtypes.h 2008-08-29 08:34:43 +0200
-@@ -140,13 +140,23 @@
- /* set up common defines for library naming */
-
- #ifdef U_WINDOWS
--# ifndef UDATA_SO_SUFFIX
--# define UDATA_SO_SUFFIX ".dll"
-+# ifndef __PARITY__
-+# ifndef UDATA_SO_SUFFIX
-+# define UDATA_SO_SUFFIX ".dll"
-+# endif
-+# define LIB_PREFIX ""
-+# define LIB_STATIC_PREFIX ""
-+# define OBJ_SUFFIX ".obj"
-+# define UDATA_LIB_SUFFIX ".lib"
-+# else
-+# ifndef UDATA_SO_SUFFIX
-+# define UDATA_SO_SUFFIX ".so"
-+# endif
-+# define LIB_PREFIX "lib"
-+# define LIB_STATIC_PREFIX "lib"
-+# define OBJ_SUFFIX ".o"
-+# define UDATA_LIB_SUFFIX ".a"
- # endif
--# define LIB_PREFIX ""
--# define LIB_STATIC_PREFIX ""
--# define OBJ_SUFFIX ".obj"
--# define UDATA_LIB_SUFFIX ".lib"
-
- #elif defined(U_CYGWIN)
- # define LIB_PREFIX "cyg"
-diff -ru -x icu-config -x config.log -x icudefs.mk -x Makefile icu.orig/source/tools/toolutil/Makefile.in icu/source/tools/toolutil/Makefile.in
---- icu.orig/source/tools/toolutil/Makefile.in 2008-08-29 09:25:05 +0200
-+++ icu/source/tools/toolutil/Makefile.in 2008-08-29 10:08:06 +0200
-@@ -91,6 +91,9 @@
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
- endif
- endif
-+ if test -f $(FINAL_SO_TARGET).dll; then \
-+ $(INSTALL-L) $(FINAL_SO_TARGET).dll $(DESTDIR)$(libdir); \
-+ fi
- endif
-
- dist-local:
diff --git a/dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch b/dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch
deleted file mode 100644
index be1f7ec59f..0000000000
--- a/dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-https://bugs.icu-project.org/trac/ticket/6814
-https://bugs.icu-project.org/trac/changeset/25681
-
---- i18n/olsontz.cpp
-+++ i18n/olsontz.cpp
-@@ -1,6 +1,6 @@
- /*
- **********************************************************************
--* Copyright (c) 2003-2008, International Business Machines
-+* Copyright (c) 2003-2009, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- * Author: Alan Liu
-@@ -526,8 +526,8 @@
- if (transitionTimes[i] >= limit) {
- break;
- }
-- if (transitionTimes[i] >= start &&
-- dstOffset(typeData[i]) != 0) {
-+ if ((transitionTimes[i] >= start && dstOffset(typeData[i]) != 0)
-+ || (transitionTimes[i] > start && i > 0 && dstOffset(typeData[i - 1]) != 0)) {
- return TRUE;
- }
- }
---- i18n/timezone.cpp
-+++ i18n/timezone.cpp
-@@ -1,6 +1,6 @@
- /*
- *******************************************************************************
--* Copyright (C) 1997-2008, International Business Machines Corporation and *
-+* Copyright (C) 1997-2009, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- *******************************************************************************
- *
-@@ -1240,6 +1240,8 @@
- }
- } else {
- // The display name for standard time was requested, but currently in DST
-+ // or display name for daylight saving time was requested, but this zone no longer
-+ // observes DST.
- tz = new SimpleTimeZone(rawOffset, tempID);
- if (U_FAILURE(status) || tz == NULL) {
- if (U_SUCCESS(status)) {
---- test/intltest/tztest.cpp
-+++ test/intltest/tztest.cpp
-@@ -34,6 +34,11 @@
- // class TimeZoneTest
- // *****************************************************************************
-
-+// TODO: We should probably read following data at runtime, so we can update
-+// the these values every release with necessary data changes.
-+const int32_t TimeZoneTest::REFERENCE_YEAR = 2009;
-+const char * TimeZoneTest::REFERENCE_DATA_VERSION = "2009d";
-+
- void TimeZoneTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
- {
- if (exec) logln("TestSuite TestTimeZone");
-@@ -579,18 +584,13 @@
- */
- void TimeZoneTest::TestShortZoneIDs()
- {
-- // TODO: This test case is tzdata sensitive.
-- // We should actually put the data version in this test code
-- // at build time. For now, we just hardcode the version string
-- // and display warning instead of error if non-reference tzdata
-- // version is used.
-- const char *REFERENCE_DATA_VERSION = "2008i";
--
- UErrorCode status = U_ZERO_ERROR;
-+
-+ // This test case is tzdata version sensitive.
- UBool isNonReferenceTzdataVersion = FALSE;
- const char *tzdataVer = TimeZone::getTZDataVersion(status);
- if (failure(status, "getTZDataVersion")) return;
-- if (uprv_strcmp(tzdataVer, REFERENCE_DATA_VERSION) != 0) {
-+ if (uprv_strcmp(tzdataVer, TimeZoneTest::REFERENCE_DATA_VERSION) != 0) {
- // Note: We want to display a warning message here if
- // REFERENCE_DATA_VERSION is out of date - so we
- // do not forget to update the value before GA.
-@@ -603,11 +603,11 @@
- // Note: useDaylightTime returns true if DST is observed
- // in the time zone in the current calendar year. The test
- // data is valid for the date after the reference year below.
-- // If system clock is before the year, some test cases may fail.
-- const int32_t REFERENCE_YEAR = 2009;
-+ // If system clock is before the year, some test cases may
-+ // fail.
- GregorianCalendar cal(*TimeZone::getGMT(), status);
- if (failure(status, "GregorianCalendar")) return;
-- cal.set(REFERENCE_YEAR, UCAL_JANUARY, 2); // day 2 in GMT
-+ cal.set(TimeZoneTest::REFERENCE_YEAR, UCAL_JANUARY, 2); // day 2 in GMT
-
- UBool isDateBeforeReferenceYear = ucal_getNow() < cal.getTime(status);
- if (failure(status, "Calendar::getTime")) return;
-@@ -1898,6 +1898,15 @@
- };
-
- void TimeZoneTest::TestDisplayNamesMeta() {
-+ UErrorCode status = U_ZERO_ERROR;
-+ GregorianCalendar cal(*TimeZone::getGMT(), status);
-+ if (failure(status, "GregorianCalendar")) return;
-+
-+ UBool isReferenceYear = TRUE;
-+ if (cal.get(UCAL_YEAR, status) != TimeZoneTest::REFERENCE_YEAR) {
-+ isReferenceYear = FALSE;
-+ }
-+
- UBool sawAnError = FALSE;
- for (int testNum = 0; zoneDisplayTestData[testNum].zoneName != NULL; testNum++) {
- Locale locale = Locale::createFromName(zoneDisplayTestData[testNum].localeName);
-@@ -1908,20 +1917,33 @@
- locale,
- displayName);
- if (displayName != zoneDisplayTestData[testNum].expectedDisplayName) {
-- sawAnError = TRUE;
- char name[100];
- UErrorCode status = U_ZERO_ERROR;
- displayName.extract(name, 100, NULL, status);
-- errln("Incorrect time zone display name. zone = \"%s\",\n"
-- " locale = \"%s\", style = %s, Summertime = %d\n"
-- " Expected \"%s\", "
-- " Got \"%s\"\n", zoneDisplayTestData[testNum].zoneName,
-- zoneDisplayTestData[testNum].localeName,
-- zoneDisplayTestData[testNum].style==TimeZone::SHORT ?
-- "SHORT" : "LONG",
-- zoneDisplayTestData[testNum].summerTime,
-- zoneDisplayTestData[testNum].expectedDisplayName,
-- name);
-+ if (isReferenceYear) {
-+ sawAnError = TRUE;
-+ errln("Incorrect time zone display name. zone = \"%s\",\n"
-+ " locale = \"%s\", style = %s, Summertime = %d\n"
-+ " Expected \"%s\", "
-+ " Got \"%s\"\n", zoneDisplayTestData[testNum].zoneName,
-+ zoneDisplayTestData[testNum].localeName,
-+ zoneDisplayTestData[testNum].style==TimeZone::SHORT ?
-+ "SHORT" : "LONG",
-+ zoneDisplayTestData[testNum].summerTime,
-+ zoneDisplayTestData[testNum].expectedDisplayName,
-+ name);
-+ } else {
-+ logln("Incorrect time zone display name. zone = \"%s\",\n"
-+ " locale = \"%s\", style = %s, Summertime = %d\n"
-+ " Expected \"%s\", "
-+ " Got \"%s\"\n", zoneDisplayTestData[testNum].zoneName,
-+ zoneDisplayTestData[testNum].localeName,
-+ zoneDisplayTestData[testNum].style==TimeZone::SHORT ?
-+ "SHORT" : "LONG",
-+ zoneDisplayTestData[testNum].summerTime,
-+ zoneDisplayTestData[testNum].expectedDisplayName,
-+ name);
-+ }
- }
- delete zone;
- }
---- test/intltest/tztest.h
-+++ test/intltest/tztest.h
-@@ -1,6 +1,6 @@
-
- /********************************************************************
-- * Copyright (c) 1997-2008, International Business Machines
-+ * Copyright (c) 1997-2009, International Business Machines
- * Corporation and others. All Rights Reserved.
- ********************************************************************/
-
-@@ -98,6 +98,11 @@
- // internal functions
- static UnicodeString& formatOffset(int32_t offset, UnicodeString& rv);
- static UnicodeString& formatTZID(int32_t offset, UnicodeString& rv);
-+
-+ // Some test case data is current date/tzdata version sensitive and producing errors
-+ // when year/rule are changed.
-+ static const int32_t REFERENCE_YEAR;
-+ static const char *REFERENCE_DATA_VERSION;
- };
-
- #endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/dev-libs/icu/files/icu-4.0.1-fix_parallel_building.patch b/dev-libs/icu/files/icu-4.0.1-fix_parallel_building.patch
deleted file mode 100644
index 0e09fd9eda..0000000000
--- a/dev-libs/icu/files/icu-4.0.1-fix_parallel_building.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- data/Makefile.in
-+++ data/Makefile.in
-@@ -355,6 +355,7 @@
- endif
- endif
-
-+$(BUILD_DIRS): build-dir
-
- build-dir:
- @list='$(BUILD_DIRS)'; \
diff --git a/dev-libs/icu/files/icu-4.0.1-ia64-as.patch b/dev-libs/icu/files/icu-4.0.1-ia64-as.patch
deleted file mode 100644
index ef6807467d..0000000000
--- a/dev-libs/icu/files/icu-4.0.1-ia64-as.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- icu/source/tools/genccode/genccode.c.orig 2007-10-17 23:03:50.771468000 +0200
-+++ icu/source/tools/genccode/genccode.c 2007-10-17 23:04:00.851163000 +0200
-@@ -209,7 +209,7 @@
- "\t.type %s,@object\n"
- "\t.global %s\n"
- "\t.secalias .abe$0.rodata, \".rodata\"\n"
-- "\t.section .abe$0.rodata = \"a\", \"progbits\"\n"
-+ "\t.section .abe$0.rodata, \"a\", \"progbits\"\n"
- "\t.align 16\n"
- "%s::\t",
-
diff --git a/dev-libs/icu/files/icu-4.2.1-fix_misoptimizations.patch b/dev-libs/icu/files/icu-4.2.1-fix_misoptimizations.patch
deleted file mode 100644
index 10838240e7..0000000000
--- a/dev-libs/icu/files/icu-4.2.1-fix_misoptimizations.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://bugs.icu-project.org/trac/ticket/7039
-
---- common/unicode/unistr.h
-+++ common/unicode/unistr.h
-@@ -4048,7 +4048,8 @@
-
- {
- // This dstSize value will be checked explicitly
-- return extract(start, _length, dst, dst!=0 ? 0xffffffff : 0, codepage);
-+ // Ticket #7039: Clip length to the maximum valid length to the end of addressable memory given the starting address
-+ return extract(start, _length, dst, dst!=0 ? ((dst >= (char*)((size_t)-1) - UINT32_MAX) ? (((char*)UINT32_MAX) - dst) : UINT32_MAX) : 0, codepage);
- }
-
- #endif
---- runConfigureICU
-+++ runConfigureICU
-@@ -318,7 +318,7 @@
- then
- case $CXX in
- g++|*/g++|*-g++-*|*/*-g++-*)
-- RELEASE_CXXFLAGS=-O
-+ RELEASE_CXXFLAGS=-O3
- ;;
- esac
- fi
diff --git a/dev-libs/icu/files/icu-4.2.1-pkgdata-build_data_without_assembly.patch b/dev-libs/icu/files/icu-4.2.1-pkgdata-build_data_without_assembly.patch
deleted file mode 100644
index 9edab456dd..0000000000
--- a/dev-libs/icu/files/icu-4.2.1-pkgdata-build_data_without_assembly.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=275769
-
---- tools/pkgdata/pkgdata.cpp
-+++ tools/pkgdata/pkgdata.cpp
-@@ -77,6 +77,11 @@
- #define CAN_WRITE_OBJ_CODE
- #endif
-
-+#ifdef CAN_WRITE_OBJ_CODE
-+#undef CAN_WRITE_OBJ_CODE
-+#define BUILD_DATA_WITHOUT_ASSEMBLY
-+#endif
-+
- /*
- * When building the data library without assembly,
- * some platforms use a single c code file for all of
diff --git a/dev-libs/icu/files/icu-4.2.1-pkgdata.patch b/dev-libs/icu/files/icu-4.2.1-pkgdata.patch
deleted file mode 100644
index a66b0ff461..0000000000
--- a/dev-libs/icu/files/icu-4.2.1-pkgdata.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-https://bugs.icu-project.org/trac/ticket/6969
-https://bugs.icu-project.org/trac/changeset/26210
-
---- tools/pkgdata/pkgdata.cpp
-+++ tools/pkgdata/pkgdata.cpp
-@@ -118,6 +118,7 @@
- static void createFileNames(const char *version_major, const char *version, const char *libName, const UBool reverseExt);
-
- static int32_t pkg_getOptionsFromICUConfig(UOption *option);
-+static int runCommand(const char* command);
-
- enum {
- NAME,
-@@ -461,6 +462,15 @@
- return result;
- }
-
-+static int runCommand(const char* command) {
-+ printf("pkgdata: %s\n", command);
-+ int result = system(command);
-+ if (result != 0) {
-+ printf("-- return status = %d\n", result);
-+ }
-+ return result;
-+}
-+
- #define LN_CMD "ln -s"
- #define RM_CMD "rm -f"
-
-@@ -724,7 +734,7 @@
- LN_CMD,
- libFileNames[LIB_FILE_VERSION],
- libFileNames[LIB_FILE_VERSION_MAJOR]);
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- return result;
- }
-@@ -737,7 +747,7 @@
- libFileNames[LIB_FILE_VERSION],
- libFileNames[LIB_FILE], pkgDataFlags[SO_EXT]);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
-
- return result;
- }
-@@ -753,7 +763,7 @@
- installDir, PKGDATA_FILE_SEP_STRING, libFileNames[LIB_FILE_VERSION]
- );
-
-- result = system(cmd);
-+ result = runCommand(cmd);
-
- if (result != 0) {
- return result;
-@@ -795,7 +805,7 @@
- srcDir, PKGDATA_FILE_SEP_STRING, buffer,
- installDir, PKGDATA_FILE_SEP_STRING, buffer);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- fprintf(stderr, "Failed to install data file with command: %s\n", cmd);
- break;
-@@ -815,7 +825,7 @@
- }
- #else
- sprintf(cmd, "%s %s %s %s", WIN_INSTALL_CMD, srcDir, installDir, WIN_INSTALL_CMD_FLAGS);
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- fprintf(stderr, "Failed to install data file with command: %s\n", cmd);
- }
-@@ -849,7 +859,17 @@
- targetDir,
- libFileNames[LIB_FILE_VERSION_TMP]);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
-+ if (result != 0) {
-+ return result;
-+ }
-+
-+ sprintf(cmd, "%s %s%s",
-+ pkgDataFlags[RANLIB],
-+ targetDir,
-+ libFileNames[LIB_FILE_VERSION]);
-+
-+ result = runCommand(cmd);
- if (result != 0) {
- return result;
- }
-@@ -860,7 +880,7 @@
- targetDir,
- libFileNames[LIB_FILE_VERSION_TMP]);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- return result;
- }
-@@ -908,7 +928,21 @@
- pkgDataFlags[A_EXT],
- objectFile);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
-+ if (result == 0)
-+ {
-+#ifdef OS400
-+ sprintf(cmd, "QSH CMD('%s %s%s.%s')",
-+#else
-+ sprintf(cmd, "%s %s%s.%s",
-+#endif
-+ pkgDataFlags[RANLIB],
-+ targetDir,
-+ libFileNames[LIB_FILE],
-+ pkgDataFlags[A_EXT]);
-+
-+ result = runCommand(cmd);
-+ }
- } else /* if (mode == MODE_DLL) */ {
- #ifdef U_CYGWIN
- sprintf(cmd, "%s%s%s %s -o %s%s %s %s%s %s %s",
-@@ -935,7 +969,7 @@
- pkgDataFlags[BIR_FLAGS]);
-
- /* Generate the library file. */
-- result = system(cmd);
-+ result = runCommand(cmd);
- }
-
- if (freeCmd) {
-@@ -961,7 +995,7 @@
- tempObjectFile,
- gencFilePath);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- return result;
- }
-@@ -1043,7 +1077,7 @@
- tempObjectFile,
- gencmnFile);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- break;
- }
-@@ -1094,7 +1128,7 @@
- sprintf(cmd, "cat %s >> %s", gencmnFile, icudtAll);
- #endif
-
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- break;
- }
-@@ -1110,7 +1144,7 @@
- pkgDataFlags[LIBFLAGS],
- tempObjectFile,
- gencmnFile);
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result != 0) {
- break;
- }
-@@ -1139,7 +1173,7 @@
- tempObjectFile,
- icudtAll);
-
-- result = system(cmd);
-+ result = runCommand(cmd);
- if (result == 0) {
- sprintf(buffer, "%s %s",
- buffer,
-@@ -1222,7 +1256,7 @@
- );
- }
-
-- return system(cmd);
-+ return runCommand(cmd);
- }
- #endif
-
diff --git a/dev-libs/icu/files/icu-4.4.1-arm.patch b/dev-libs/icu/files/icu-4.4.1-arm.patch
deleted file mode 100644
index 20f4852ea6..0000000000
--- a/dev-libs/icu/files/icu-4.4.1-arm.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=329439
-https://bugs.icu-project.org/trac/ticket/7664
-https://bugs.icu-project.org/trac/changeset/28107
-
---- tools/toolutil/pkg_genc.c
-+++ tools/toolutil/pkg_genc.c
-@@ -1,5 +1,5 @@
- /******************************************************************************
-- * Copyright (C) 2009, International Business Machines
-+ * Copyright (C) 2009-2010, International Business Machines
- * Corporation and others. All Rights Reserved.
- *******************************************************************************
- */
-@@ -118,10 +118,10 @@
- } assemblyHeader[] = {
- {"gcc",
- ".globl %s\n"
-- "\t.section .note.GNU-stack,\"\",@progbits\n"
-+ "\t.section .note.GNU-stack,\"\",%%progbits\n"
- "\t.section .rodata\n"
- "\t.align 8\n" /* Either align 8 bytes or 2^8 (256) bytes. 8 bytes is needed. */
-- "\t.type %s,@object\n"
-+ "\t.type %s,%%object\n"
- "%s:\n\n",
-
- ".long ","",HEX_0X
diff --git a/dev-libs/icu/files/icu-4.4.1-et_EE.patch b/dev-libs/icu/files/icu-4.4.1-et_EE.patch
deleted file mode 100644
index 25f2106688..0000000000
--- a/dev-libs/icu/files/icu-4.4.1-et_EE.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=260127
-https://bugs.icu-project.org/trac/ticket/6934
-https://bugs.icu-project.org/trac/changeset/28160
-
---- Makefile.in
-+++ Makefile.in
-@@ -219,8 +219,8 @@
- $(INSTALL_SCRIPT) $(top_srcdir)/config/icu-config-top $@
- chmod u+w $@
- @echo "# Following from @platform_make_fragment@" >> $@
-- sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
-- sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
-+ LC_ALL=C sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
-+ LC_ALL=C sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
- cat $(top_srcdir)/config/icu-config-bottom >> $@
- echo "# Rebuilt on "`date` >> $@
- chmod u-w $@
diff --git a/dev-libs/icu/files/icu-4.4.1-pkgdata.patch b/dev-libs/icu/files/icu-4.4.1-pkgdata.patch
deleted file mode 100644
index 8a1a5bc688..0000000000
--- a/dev-libs/icu/files/icu-4.4.1-pkgdata.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-https://bugs.icu-project.org/trac/ticket/7663
-https://bugs.icu-project.org/trac/changeset/28002
-https://bugs.icu-project.org/trac/ticket/7680
-https://bugs.icu-project.org/trac/changeset/28124
-
---- source/tools/pkgdata/pkgdata.cpp
-+++ source/tools/pkgdata/pkgdata.cpp
-@@ -98,6 +98,7 @@
- #endif
-
- #define LARGE_BUFFER_MAX_SIZE 2048
-+#define MEDIUM_BUFFER_MAX_SIZE 1024
- #define SMALL_BUFFER_MAX_SIZE 512
-
- static void loadLists(UPKGOptions *o, UErrorCode *status);
-@@ -472,29 +473,48 @@
- }
-
- static int runCommand(const char* command, UBool specialHandling) {
-- char cmd[SMALL_BUFFER_MAX_SIZE];
-+ char *cmd = NULL;
-+ char cmdBuffer[SMALL_BUFFER_MAX_SIZE];
-+ int32_t len = strlen(command);
-+
-+ if (len == 0) {
-+ return 0;
-+ }
-
- if (!specialHandling) {
-+#if defined(USING_CYGWIN) || defined(OS400)
-+#define CMD_PADDING_SIZE 20
-+ if ((len + CMD_PADDING_SIZE) >= SMALL_BUFFER_MAX_SIZE) {
-+ cmd = (char *)uprv_malloc(len + CMD_PADDING_SIZE);
-+ } else {
-+ cmd = cmdBuffer;
-+ }
- #ifdef USING_CYGWIN
- sprintf(cmd, "bash -c \"%s\"", command);
-
- #elif defined(OS400)
- sprintf(cmd, "QSH CMD('%s')", command);
-+#endif
- #else
- goto normal_command_mode;
- #endif
- } else {
- normal_command_mode:
-- sprintf(cmd, "%s", command);
-+ cmd = (char *)command;
- }
--
-+
- printf("pkgdata: %s\n", cmd);
- int result = system(cmd);
-- if (result != 0) {
-- printf("-- return status = %d\n", result);
-+ if (result != 0) {
-+ printf("-- return status = %d\n", result);
- }
-- return result;
--}
-+
-+ if (cmd != cmdBuffer && cmd != command) {
-+ uprv_free(cmd);
-+ }
-+
-+ return result;
-+}
-
- #define LN_CMD "ln -s"
- #define RM_CMD "rm -f"
-@@ -586,7 +606,7 @@
- pkgDataFlags = (char**)uprv_malloc(sizeof(char*) * PKGDATA_FLAGS_SIZE);
- if (pkgDataFlags != NULL) {
- for (int32_t i = 0; i < PKGDATA_FLAGS_SIZE; i++) {
-- pkgDataFlags[i] = (char*)uprv_malloc(sizeof(char) * SMALL_BUFFER_MAX_SIZE);
-+ pkgDataFlags[i] = (char*)uprv_malloc(sizeof(char) * MEDIUM_BUFFER_MAX_SIZE);
- if (pkgDataFlags[i] != NULL) {
- pkgDataFlags[i][0] = 0;
- } else {
diff --git a/dev-libs/icu/files/icu-4.6-echo_t.patch b/dev-libs/icu/files/icu-4.6-echo_t.patch
deleted file mode 100644
index 72c9534dec..0000000000
--- a/dev-libs/icu/files/icu-4.6-echo_t.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/source/configure.ac
-+++ b/source/configure.ac
-@@ -20,9 +20,9 @@
- # for icu-config
- # This may be removed later - mow (June 17, 2010)
- ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
--case `/bin/sh -c "echo -n x"` in
-+case `${CONFIG_SHELL} -c "echo -n x"` in
- -n*)
-- case `/bin/sh -c "echo 'x\c'"` in
-+ case `${CONFIG_SHELL} -c "echo 'x\c'"` in
- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
- *) ICU_ECHO_C='\c';;
- esac;;
---- a/source/configure
-+++ b/source/configure
-@@ -20,9 +20,9 @@
- # for icu-config
- # This may be removed later - mow (June 17, 2010)
- ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
--case `/bin/sh -c "echo -n x"` in
-+case `${CONFIG_SHELL} -c "echo -n x"` in
- -n*)
-- case `/bin/sh -c "echo 'x\c'"` in
-+ case `${CONFIG_SHELL} -c "echo 'x\c'"` in
- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
- *) ICU_ECHO_C='\c';;
- esac;;
diff --git a/dev-libs/icu/files/icu-4.6-pkgdata.patch b/dev-libs/icu/files/icu-4.6-pkgdata.patch
deleted file mode 100644
index df9b4045fa..0000000000
--- a/dev-libs/icu/files/icu-4.6-pkgdata.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=326021
-https://ssl.icu-project.org/trac/ticket/8281
-https://ssl.icu-project.org/trac/changeset/29332
-https://ssl.icu-project.org/trac/changeset/29333
-
---- tools/pkgdata/pkgdata.cpp
-+++ tools/pkgdata/pkgdata.cpp
-@@ -1,5 +1,5 @@
- /******************************************************************************
-- * Copyright (C) 2000-2010, International Business Machines
-+ * Copyright (C) 2000-2011, International Business Machines
- * Corporation and others. All Rights Reserved.
- *******************************************************************************
- * file name: pkgdata.c
-@@ -99,6 +99,7 @@
-
- #define LARGE_BUFFER_MAX_SIZE 2048
- #define SMALL_BUFFER_MAX_SIZE 512
-+#define BUFFER_PADDING_SIZE 20
-
- static void loadLists(UPKGOptions *o, UErrorCode *status);
-
-@@ -484,9 +485,8 @@
-
- if (!specialHandling) {
- #if defined(USING_CYGWIN) || defined(OS400)
--#define CMD_PADDING_SIZE 20
-- if ((len + CMD_PADDING_SIZE) >= SMALL_BUFFER_MAX_SIZE) {
-- cmd = (char *)uprv_malloc(len + CMD_PADDING_SIZE);
-+ if ((len + BUFFER_PADDING_SIZE) >= SMALL_BUFFER_MAX_SIZE) {
-+ cmd = (char *)uprv_malloc(len + BUFFER_PADDING_SIZE);
- } else {
- cmd = cmdBuffer;
- }
-@@ -1133,6 +1133,7 @@
- int32_t result = 0;
- char *cmd = NULL;
- UBool freeCmd = FALSE;
-+ int32_t length = 0;
-
- /* This is necessary because if packaging is done without assembly code, objectFile might be extremely large
- * containing many object files and so the calling function should supply a command buffer that is large
-@@ -1140,15 +1141,18 @@
- */
- if (command != NULL) {
- cmd = command;
-- } else {
-- if ((cmd = (char *)uprv_malloc(sizeof(char) * LARGE_BUFFER_MAX_SIZE)) == NULL) {
-- fprintf(stderr, "Unable to allocate memory for command.\n");
-- return -1;
-- }
-- freeCmd = TRUE;
- }
-
- if (mode == MODE_STATIC) {
-+ if (cmd == NULL) {
-+ length = uprv_strlen(pkgDataFlags[AR]) + uprv_strlen(pkgDataFlags[ARFLAGS]) + uprv_strlen(targetDir) +
-+ uprv_strlen(libFileNames[LIB_FILE_VERSION]) + uprv_strlen(objectFile) + uprv_strlen(pkgDataFlags[RANLIB]) + BUFFER_PADDING_SIZE;
-+ if ((cmd = (char *)uprv_malloc(sizeof(char) * length)) == NULL) {
-+ fprintf(stderr, "Unable to allocate memory for command.\n");
-+ return -1;
-+ }
-+ freeCmd = TRUE;
-+ }
- sprintf(cmd, "%s %s %s%s %s",
- pkgDataFlags[AR],
- pkgDataFlags[ARFLAGS],
-@@ -1166,6 +1170,21 @@
- result = runCommand(cmd);
- }
- } else /* if (mode == MODE_DLL) */ {
-+ if (cmd == NULL) {
-+ length = uprv_strlen(pkgDataFlags[GENLIB]) + uprv_strlen(pkgDataFlags[LDICUDTFLAGS]) +
-+ uprv_strlen(targetDir) + uprv_strlen(libFileNames[LIB_FILE_VERSION_TMP]) +
-+ uprv_strlen(objectFile) + uprv_strlen(pkgDataFlags[LD_SONAME]) +
-+ uprv_strlen(pkgDataFlags[LD_SONAME][0] == 0 ? "" : libFileNames[LIB_FILE_VERSION_MAJOR]) +
-+ uprv_strlen(pkgDataFlags[RPATH_FLAGS]) + uprv_strlen(pkgDataFlags[BIR_FLAGS]) + BUFFER_PADDING_SIZE;
-+#ifdef U_CYGWIN
-+ length += uprv_strlen(targetDir) + uprv_strlen(libFileNames[LIB_FILE_CYGWIN_VERSION]);
-+#endif
-+ if ((cmd = (char *)uprv_malloc(sizeof(char) * length)) == NULL) {
-+ fprintf(stderr, "Unable to allocate memory for command.\n");
-+ return -1;
-+ }
-+ freeCmd = TRUE;
-+ }
- #ifdef U_CYGWIN
- sprintf(cmd, "%s%s%s %s -o %s%s %s %s%s %s %s",
- pkgDataFlags[GENLIB],
-@@ -1209,7 +1228,7 @@
- tempObjectFile[uprv_strlen(tempObjectFile)-1] = 'o';
-
- length = uprv_strlen(pkgDataFlags[COMPILER]) + uprv_strlen(pkgDataFlags[LIBFLAGS])
-- + uprv_strlen(tempObjectFile) + uprv_strlen(gencFilePath) + 10;
-+ + uprv_strlen(tempObjectFile) + uprv_strlen(gencFilePath) + BUFFER_PADDING_SIZE;
-
- cmd = (char *)uprv_malloc(sizeof(char) * length);
- if (cmd == NULL) {
diff --git a/dev-libs/icu/files/icu-4.8.1-darwin.patch b/dev-libs/icu/files/icu-4.8.1-darwin.patch
deleted file mode 100644
index 3e0eb2b57c..0000000000
--- a/dev-libs/icu/files/icu-4.8.1-darwin.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -ur icu.orig/source/config/mh-darwin icu/source/config/mh-darwin
---- icu.orig/source/config/mh-darwin 2011-10-19 01:13:00.000000000 +0200
-+++ icu/source/config/mh-darwin 2011-11-27 20:51:08.000000000 +0100
-@@ -4,6 +4,13 @@
- ## Copyright (c) 1999-2011 International Business Machines Corporation and
- ## others. All Rights Reserved.
-
-+
-+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+FINAL_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION).$(SO)
-+MIDDLE_SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO_TARGET_VERSION_MAJOR).$(SO)
-+
-+IS_DARWIN = yes
-+
- ## Flags for position independent code
- SHAREDLIBCFLAGS = -dynamic
- SHAREDLIBCXXFLAGS = -dynamic
-@@ -28,7 +35,7 @@
- ifeq ($(ENABLE_RPATH),YES)
- LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
- else
--LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
-+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
- endif
-
- ## Compiler switch to embed a runtime search path
-diff -ur icu.orig/source/stubdata/Makefile.in icu/source/stubdata/Makefile.in
---- icu.orig/source/stubdata/Makefile.in 2011-10-19 01:13:00.000000000 +0200
-+++ icu/source/stubdata/Makefile.in 2011-11-27 20:49:45.000000000 +0100
-@@ -32,7 +32,11 @@
-
-
- ifneq ($(ENABLE_SHARED),)
-+ifeq ($(IS_DARWIN),)
- SO_TARGET = $(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-+else
-+SO_TARGET = $(LIBDIR)/$(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-+endif
- ALL_SO_TARGETS = $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET) $(SO_TARGET) $(BATCH_STUB_TARGET) $(SHARED_OBJECT)
- endif
-
-diff -ur icu.orig/source/tools/ctestfw/Makefile.in icu/source/tools/ctestfw/Makefile.in
---- icu.orig/source/tools/ctestfw/Makefile.in 2011-10-19 01:12:44.000000000 +0200
-+++ icu/source/tools/ctestfw/Makefile.in 2011-11-27 20:49:45.000000000 +0100
-@@ -31,7 +31,11 @@
- endif
-
- ifneq ($(ENABLE_SHARED),)
-+ifeq ($(IS_DARWIN),)
- SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+else
-+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-+endif
- ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
- endif
-
diff --git a/dev-libs/icu/files/icu-4.8.1-fix_binformat_fonts.patch b/dev-libs/icu/files/icu-4.8.1-fix_binformat_fonts.patch
deleted file mode 100644
index 6e1a6870ba..0000000000
--- a/dev-libs/icu/files/icu-4.8.1-fix_binformat_fonts.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-https://ssl.icu-project.org/trac/ticket/8800
---- layout/LookupProcessor.cpp
-+++ layout/LookupProcessor.cpp
-@@ -201,7 +201,9 @@
-
- if (requiredFeatureIndex != 0xFFFF) {
- requiredFeatureTable = featureListTable->getFeatureTable(requiredFeatureIndex, &requiredFeatureTag);
-- featureReferences += SWAPW(featureTable->lookupCount);
-+ if (requiredFeatureTable) {
-+ featureReferences += SWAPW(requiredFeatureTable->lookupCount);
-+ }
- }
-
- lookupOrderArray = LE_NEW_ARRAY(le_uint16, featureReferences);
diff --git a/dev-libs/icu/files/icu-4.8.1-fix_nan.patch b/dev-libs/icu/files/icu-4.8.1-fix_nan.patch
deleted file mode 100644
index 971d66d8bc..0000000000
--- a/dev-libs/icu/files/icu-4.8.1-fix_nan.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=380827
-http://bugs.icu-project.org/trac/ticket/8561
-http://bugs.icu-project.org/trac/changeset/30689
-http://code.google.com/p/chromium/issues/detail?id=92847
-
---- source/i18n/digitlst.cpp.orig 2011-07-19 23:16:00.000000000 +0200
-+++ source/i18n/digitlst.cpp 2011-10-12 23:47:08.000000000 +0200
-@@ -60,6 +60,18 @@
-
- U_NAMESPACE_BEGIN
-
-+static void
-+loadDecimalChar() {
-+ if (gDecimal == 0) {
-+ char rep[MAX_DIGITS];
-+ // For machines that decide to change the decimal on you,
-+ // and try to be too smart with localization.
-+ // This normally should be just a '.'.
-+ sprintf(rep, "%+1.1f", 1.0);
-+ gDecimal = rep[2];
-+ }
-+}
-+
- // -------------------------------------
- // default constructor
-
-@@ -408,15 +420,6 @@
- }
- DigitList *nonConstThis = const_cast<DigitList *>(this);
-
-- if (gDecimal == 0) {
-- char rep[MAX_DIGITS];
-- // For machines that decide to change the decimal on you,
-- // and try to be too smart with localization.
-- // This normally should be just a '.'.
-- sprintf(rep, "%+1.1f", 1.0);
-- gDecimal = rep[2];
-- }
--
- if (isZero()) {
- nonConstThis->fDouble = 0.0;
- if (decNumberIsNegative(fDecNumber)) {
-@@ -451,6 +454,7 @@
- }
- U_ASSERT(uprv_strlen(&s[0]) < MAX_DBL_DIGITS+18);
-
-+ loadDecimalChar();
- if (gDecimal != '.') {
- char *decimalPt = strchr(s, '.');
- if (decimalPt != NULL) {
-@@ -741,6 +745,17 @@
- sprintf(rep, "%+1.*e", MAX_DBL_DIGITS - 1, source);
- U_ASSERT(uprv_strlen(rep) < sizeof(rep));
-
-+ // uprv_decNumberFromString() will parse the string expecting '.' as a
-+ // decimal separator, however sprintf() can use ',' in certain locales.
-+ // Overwrite a different decimal separator with '.' here before proceeding.
-+ loadDecimalChar();
-+ if (gDecimal != '.') {
-+ char *decimalPt = strchr(rep, gDecimal);
-+ if (decimalPt != NULL) {
-+ *decimalPt = '.';
-+ }
-+ }
-+
- // Create a decNumber from the string.
- uprv_decNumberFromString(fDecNumber, rep, &fContext);
- uprv_decNumberTrim(fDecNumber);
diff --git a/dev-libs/icu/files/icu-4.8.1.1-fix_ltr.patch b/dev-libs/icu/files/icu-4.8.1.1-fix_ltr.patch
deleted file mode 100644
index 15df6e2dda..0000000000
--- a/dev-libs/icu/files/icu-4.8.1.1-fix_ltr.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-https://ssl.icu-project.org/trac/ticket/8764
---- layout/LESwaps.h
-+++ layout/LESwaps.h
-@@ -45,8 +45,8 @@
- public:
-
- /**
-- * Reads a big-endian 16-bit word and returns a native-endian value.
-- * No-op on a big-endian platform, byte-swaps on a little-endian platform.
-+ * This method does the byte swap required on little endian platforms
-+ * to correctly access a (16-bit) word.
- *
- * @param value - the word to be byte swapped
- *
-@@ -56,21 +56,12 @@
- */
- static le_uint16 swapWord(le_uint16 value)
- {
--#if (defined(U_IS_BIG_ENDIAN) && U_IS_BIG_ENDIAN) || \
-- (defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)) || \
-- defined(__BIG_ENDIAN__)
-- // Fastpath when we know that the platform is big-endian.
-- return value;
--#else
-- // Reads a big-endian value on any platform.
-- const le_uint8 *p = reinterpret_cast<const le_uint8 *>(&value);
-- return (le_uint16)((p[0] << 8) | p[1]);
--#endif
-+ return (le_uint16)((value << 8) | (value >> 8));
- };
-
- /**
-- * Reads a big-endian 32-bit word and returns a native-endian value.
-- * No-op on a big-endian platform, byte-swaps on a little-endian platform.
-+ * This method does the byte swapping required on little endian platforms
-+ * to correctly access a (32-bit) long.
- *
- * @param value - the long to be byte swapped
- *
-@@ -80,16 +71,11 @@
- */
- static le_uint32 swapLong(le_uint32 value)
- {
--#if (defined(U_IS_BIG_ENDIAN) && U_IS_BIG_ENDIAN) || \
-- (defined(BYTE_ORDER) && defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)) || \
-- defined(__BIG_ENDIAN__)
-- // Fastpath when we know that the platform is big-endian.
-- return value;
--#else
-- // Reads a big-endian value on any platform.
-- const le_uint8 *p = reinterpret_cast<const le_uint8 *>(&value);
-- return (le_uint32)((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
--#endif
-+ return (le_uint32)(
-+ (value << 24) |
-+ ((value << 8) & 0xff0000) |
-+ ((value >> 8) & 0xff00) |
-+ (value >> 24));
- };
-
- private:
diff --git a/dev-libs/icu/files/icu-49.1.1-bsd.patch b/dev-libs/icu/files/icu-49.1.1-bsd.patch
deleted file mode 100644
index 665087f97b..0000000000
--- a/dev-libs/icu/files/icu-49.1.1-bsd.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://ssl.icu-project.org/trac/ticket/9286
-https://ssl.icu-project.org/trac/changeset/31780
-
---- common/putilimp.h
-+++ common/putilimp.h
-@@ -116,6 +116,8 @@
- # define U_TIMEZONE __timezone
- #elif U_PLATFORM_USES_ONLY_WIN32_API
- # define U_TIMEZONE _timezone
-+#elif U_PLATFORM == U_PF_BSD && !defined(__NetBSD__)
-+ /* not defined */
- #elif U_PLATFORM == U_PF_OS400
- /* not defined */
- #else
---- common/unicode/platform.h
-+++ common/unicode/platform.h
-@@ -131,7 +131,7 @@
- # include <android/api-level.h>
- #elif defined(linux) || defined(__linux__) || defined(__linux)
- # define U_PLATFORM U_PF_LINUX
--#elif defined(BSD) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-+#elif defined(BSD) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__)
- # define U_PLATFORM U_PF_BSD
- #elif defined(sun) || defined(__sun)
- /* Check defined(__SVR4) || defined(__svr4__) to distinguish Solaris from SunOS? */
diff --git a/dev-libs/icu/files/icu-49.1.1-regex.patch b/dev-libs/icu/files/icu-49.1.1-regex.patch
deleted file mode 100644
index 0ff59b958d..0000000000
--- a/dev-libs/icu/files/icu-49.1.1-regex.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-https://ssl.icu-project.org/trac/ticket/9283
-https://ssl.icu-project.org/trac/changeset/31782
-
---- i18n/regexcmp.cpp
-+++ i18n/regexcmp.cpp
-@@ -3306,10 +3306,31 @@
- }
-
- case URX_STRING_I:
-- // TODO: Is the case-folded string the longest?
-- // If so we can optimize this the same as URX_STRING.
-- loc++;
-- currentLen = INT32_MAX;
-+ // TODO: This code assumes that any user string that matches will be no longer
-+ // than our compiled string, with case insensitive matching.
-+ // Our compiled string has been case-folded already.
-+ //
-+ // Any matching user string will have no more code points than our
-+ // compiled (folded) string. Folding may add code points, but
-+ // not remove them.
-+ //
-+ // There is a potential problem if a supplemental code point
-+ // case-folds to a BMP code point. In this case our compiled string
-+ // could be shorter (in code units) than a matching user string.
-+ //
-+ // At this time (Unicode 6.1) there are no such characters, and this case
-+ // is not being handled. A test, intltest regex/Bug9283, will fail if
-+ // any problematic characters are added to Unicode.
-+ //
-+ // If this happens, we can make a set of the BMP chars that the
-+ // troublesome supplementals fold to, scan our string, and bump the
-+ // currentLen one extra for each that is found.
-+ //
-+ {
-+ loc++;
-+ int32_t stringLenOp = (int32_t)fRXPat->fCompiledPat->elementAti(loc);
-+ currentLen = safeIncrement(currentLen, URX_VAL(stringLenOp));
-+ }
- break;
-
- case URX_CTR_INIT:
---- test/intltest/regextst.cpp
-+++ test/intltest/regextst.cpp
-@@ -26,6 +26,7 @@
- #include "unicode/regex.h"
- #include "unicode/uchar.h"
- #include "unicode/ucnv.h"
-+#include "unicode/uniset.h"
- #include "unicode/ustring.h"
- #include "regextst.h"
- #include "uvector.h"
-@@ -127,6 +128,9 @@
- case 20: name = "CheckInvBufSize";
- if (exec) CheckInvBufSize();
- break;
-+ case 21: name = "Bug 9283";
-+ if (exec) Bug9283();
-+ break;
-
- default: name = "";
- break; //needed to end loop
-@@ -5184,6 +5188,34 @@
- delete pMatcher;
- }
-
-+// Bug 9283
-+// This test is checking for the existance of any supplemental characters that case-fold
-+// to a bmp character.
-+//
-+// At the time of this writing there are none. If any should appear in a subsequent release
-+// of Unicode, the code in regular expressions compilation that determines the longest
-+// posssible match for a literal string will need to be enhanced.
-+//
-+// See file regexcmp.cpp, case URX_STRING_I in RegexCompile::maxMatchLength()
-+// for details on what to do in case of a failure of this test.
-+//
-+void RegexTest::Bug9283() {
-+ UErrorCode status = U_ZERO_ERROR;
-+ UnicodeSet supplementalsWithCaseFolding("[[:CWCF:]&[\\U00010000-\\U0010FFFF]]", status);
-+ REGEX_CHECK_STATUS;
-+ int32_t index;
-+ UChar32 c;
-+ for (index=0; ; index++) {
-+ c = supplementalsWithCaseFolding.charAt(index);
-+ if (c == -1) {
-+ break;
-+ }
-+ UnicodeString cf = UnicodeString(c).foldCase();
-+ REGEX_ASSERT(cf.length() >= 2);
-+ }
-+}
-+
-+
- void RegexTest::CheckInvBufSize() {
- if(inv_next>=INV_BUFSIZ) {
- errln("%s: increase #define of INV_BUFSIZ ( is %d but needs to be at least %d )\n",
---- test/intltest/regextst.h
-+++ test/intltest/regextst.h
-@@ -1,6 +1,6 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2011, International Business Machines Corporation and
-+ * Copyright (c) 2002-2012, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-
-@@ -45,6 +45,7 @@
- virtual void Bug7740();
- virtual void Bug8479();
- virtual void Bug7029();
-+ virtual void Bug9283();
- virtual void CheckInvBufSize();
-
- // The following functions are internal to the regexp tests.
---- test/testdata/regextst.txt
-+++ test/testdata/regextst.txt
-@@ -1141,6 +1141,11 @@
- "[\w]+" " <0>abc\u200cdef\u200dghi</0> "
- "[\w]+" i " <0>abc\u200cdef\u200dghi</0> "
-
-+# Bug 9283
-+# uregex_open fails for look-behind assertion + case-insensitive
-+
-+"(ab)?(?<=ab)cd|ef" i "<0><1>ab</1>cd</0>"
-+
- # Random debugging, Temporary
- #
- #"^(?:a?b?)*$" "a--"
diff --git a/dev-libs/icu/files/icu-49.1.2-platforms.patch b/dev-libs/icu/files/icu-49.1.2-platforms.patch
deleted file mode 100644
index 1aaf58034b..0000000000
--- a/dev-libs/icu/files/icu-49.1.2-platforms.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-https://ssl.icu-project.org/trac/ticket/9286
-https://ssl.icu-project.org/trac/ticket/9365
-https://ssl.icu-project.org/trac/changeset/31780
-https://ssl.icu-project.org/trac/changeset/31971
-https://ssl.icu-project.org/trac/changeset/32020
-https://ssl.icu-project.org/trac/changeset/32023
-
---- common/putilimp.h
-+++ common/putilimp.h
-@@ -117,6 +117,8 @@
- # define U_TIMEZONE __timezone
- #elif U_PLATFORM_USES_ONLY_WIN32_API
- # define U_TIMEZONE _timezone
-+#elif U_PLATFORM == U_PF_BSD && !defined(__NetBSD__)
-+ /* not defined */
- #elif U_PLATFORM == U_PF_OS400
- /* not defined */
- #else
---- common/unicode/platform.h
-+++ common/unicode/platform.h
-@@ -131,7 +131,7 @@
- # include <android/api-level.h>
- #elif defined(linux) || defined(__linux__) || defined(__linux)
- # define U_PLATFORM U_PF_LINUX
--#elif defined(BSD) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-+#elif defined(BSD) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__MirBSD__)
- # define U_PLATFORM U_PF_BSD
- #elif defined(sun) || defined(__sun)
- /* Check defined(__SVR4) || defined(__svr4__) to distinguish Solaris from SunOS? */
-@@ -268,6 +268,9 @@
- #elif U_PLATFORM == U_PF_SOLARIS
- /* Solaris has inttypes.h but not stdint.h. */
- # define U_HAVE_STDINT_H 0
-+#elif U_PLATFORM == U_PF_AIX && !defined(_AIX51) && defined(_POWER)
-+ /* PPC AIX <= 4.3 has inttypes.h but not stdint.h. */
-+# define U_HAVE_STDINT_H 0
- #else
- # define U_HAVE_STDINT_H 1
- #endif
-@@ -283,6 +286,9 @@
- #elif U_PLATFORM == U_PF_SOLARIS
- /* Solaris has inttypes.h but not stdint.h. */
- # define U_HAVE_INTTYPES_H 1
-+#elif U_PLATFORM == U_PF_AIX && !defined(_AIX51) && defined(_POWER)
-+ /* PPC AIX <= 4.3 has inttypes.h but not stdint.h. */
-+# define U_HAVE_INTTYPES_H 1
- #else
- /* Most platforms have both inttypes.h and stdint.h, or neither. */
- # define U_HAVE_INTTYPES_H U_HAVE_STDINT_H
-@@ -352,6 +358,9 @@
- #elif defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0)
- /* HPPA do not appear to predefine any endianness macros. */
- # define U_IS_BIG_ENDIAN 1
-+#elif defined(sparc) || defined(__sparc) || defined(__sparc__)
-+ /* Some sparc based systems (e.g. Linux) do not predefine any endianness macros. */
-+# define U_IS_BIG_ENDIAN 1
- #else
- # define U_IS_BIG_ENDIAN 0
- #endif
diff --git a/dev-libs/icu/files/icu-51.1-CVE-2013-2924.patch b/dev-libs/icu/files/icu-51.1-CVE-2013-2924.patch
deleted file mode 100644
index 65e734c7b3..0000000000
--- a/dev-libs/icu/files/icu-51.1-CVE-2013-2924.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Index: /icu/trunk/source/i18n/csrucode.cpp
-===================================================================
---- /icu/trunk/source/i18n/csrucode.cpp (revision 34075)
-+++ /icu/trunk/source/i18n/csrucode.cpp (revision 34076)
-@@ -1,5 +1,5 @@
- /*
- **********************************************************************
-- * Copyright (C) 2005-2012, International Business Machines
-+ * Copyright (C) 2005-2013, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
-@@ -34,6 +34,7 @@
- const uint8_t *input = textIn->fRawInput;
- int32_t confidence = 0;
-+ int32_t length = textIn->fRawLength;
-
-- if (input[0] == 0xFE && input[1] == 0xFF) {
-+ if (length >=2 && input[0] == 0xFE && input[1] == 0xFF) {
- confidence = 100;
- }
-@@ -58,6 +59,7 @@
- const uint8_t *input = textIn->fRawInput;
- int32_t confidence = 0;
-+ int32_t length = textIn->fRawLength;
-
-- if (input[0] == 0xFF && input[1] == 0xFE && (input[2] != 0x00 || input[3] != 0x00)) {
-+ if (length >= 4 && input[0] == 0xFF && input[1] == 0xFE && (input[2] != 0x00 || input[3] != 0x00)) {
- confidence = 100;
- }
-@@ -82,5 +84,5 @@
- int32_t confidence = 0;
-
-- if (getChar(input, 0) == 0x0000FEFFUL) {
-+ if (limit > 0 && getChar(input, 0) == 0x0000FEFFUL) {
- hasBOM = TRUE;
- }
diff --git a/dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch b/dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch
deleted file mode 100644
index db86c921bc..0000000000
--- a/dev-libs/icu/files/icu-54.1-CVE-2014-9654.patch
+++ /dev/null
@@ -1,1105 +0,0 @@
-Index: /icu/trunk/source/common/unicode/utypes.h
-===================================================================
---- /icu/trunk/source/common/unicode/utypes.h (revision 36800)
-+++ /icu/trunk/source/common/unicode/utypes.h (revision 36801)
-@@ -648,4 +648,5 @@
- U_REGEX_TIME_OUT, /**< Maximum allowed match time exceeded */
- U_REGEX_STOPPED_BY_CALLER, /**< Matching operation aborted by user callback fn. */
-+ U_REGEX_PATTERN_TOO_BIG, /**< Pattern exceeds limits on size or complexity. @draft ICU 55 */
- U_REGEX_ERROR_LIMIT, /**< This must always be the last value to indicate the limit for regexp errors */
-
-Index: /icu/trunk/source/common/utypes.c
-===================================================================
---- /icu/trunk/source/common/utypes.c (revision 36800)
-+++ /icu/trunk/source/common/utypes.c (revision 36801)
-@@ -2,5 +2,5 @@
- ******************************************************************************
- *
--* Copyright (C) 1997-2011, International Business Machines
-+* Copyright (C) 1997-2014, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
-@@ -166,5 +166,6 @@
- "U_REGEX_STACK_OVERFLOW",
- "U_REGEX_TIME_OUT",
-- "U_REGEX_STOPPED_BY_CALLER"
-+ "U_REGEX_STOPPED_BY_CALLER",
-+ "U_REGEX_PATTERN_TOO_BIG"
- };
-
-Index: /icu/trunk/source/i18n/regexcmp.cpp
-===================================================================
---- /icu/trunk/source/i18n/regexcmp.cpp (revision 36800)
-+++ /icu/trunk/source/i18n/regexcmp.cpp (revision 36801)
-@@ -305,5 +305,5 @@
- // the position in the compiled pattern.
- //
-- fRXPat->fFrameSize+=RESTACKFRAME_HDRCOUNT;
-+ allocateStackData(RESTACKFRAME_HDRCOUNT);
-
- //
-@@ -371,7 +371,7 @@
- //4 NOP Resreved, will be replaced by a save if there are
- // OR | operators at the top level
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_STATE_SAVE, 2), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_JMP, 3), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_FAIL, 0), *fStatus);
-+ appendOp(URX_STATE_SAVE, 2);
-+ appendOp(URX_JMP, 3);
-+ appendOp(URX_FAIL, 0);
-
- // Standard open nonCapture paren action emits the two NOPs and
-@@ -396,5 +396,5 @@
-
- // add the END operation to the compiled pattern.
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_END, 0), *fStatus);
-+ appendOp(URX_END, 0);
-
- // Terminate the pattern compilation state machine.
-@@ -418,5 +418,5 @@
- int32_t op = (int32_t)fRXPat->fCompiledPat->elementAti(savePosition);
- U_ASSERT(URX_TYPE(op) == URX_NOP); // original contents of reserved location
-- op = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+1);
-+ op = buildOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+1);
- fRXPat->fCompiledPat->setElementAt(op, savePosition);
-
-@@ -424,6 +424,5 @@
- // the JMP will eventually be the location following the ')' for the
- // group. This will be patched in later, when the ')' is encountered.
-- op = URX_BUILD(URX_JMP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP, 0);
-
- // Push the position of the newly added JMP op onto the parentheses stack.
-@@ -434,5 +433,5 @@
- // for a SAVE in the event that there is yet another '|' following
- // this one.
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
- fParenStack.push(fRXPat->fCompiledPat->size()-1, *fStatus);
- }
-@@ -460,10 +459,8 @@
- {
- fixLiterals();
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- int32_t varsLoc = fRXPat->fFrameSize; // Reserve three slots in match stack frame.
-- fRXPat->fFrameSize += 3;
-- int32_t cop = URX_BUILD(URX_START_CAPTURE, varsLoc);
-- fRXPat->fCompiledPat->addElement(cop, *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ int32_t varsLoc = allocateStackData(3); // Reserve three slots in match stack frame.
-+ appendOp(URX_START_CAPTURE, varsLoc);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -490,6 +487,6 @@
- {
- fixLiterals();
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -513,10 +510,8 @@
- {
- fixLiterals();
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- int32_t varLoc = fRXPat->fDataSize; // Reserve a data location for saving the
-- fRXPat->fDataSize += 1; // state stack ptr.
-- int32_t stoOp = URX_BUILD(URX_STO_SP, varLoc);
-- fRXPat->fCompiledPat->addElement(stoOp, *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ int32_t varLoc = allocateData(1); // Reserve a data location for saving the state stack ptr.
-+ appendOp(URX_STO_SP, varLoc);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -561,24 +556,12 @@
- {
- fixLiterals();
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 2;
-- int32_t op = URX_BUILD(URX_LA_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+ 2);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_JMP, fRXPat->fCompiledPat->size()+ 3);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_BACKTRACK, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t dataLoc = allocateData(2);
-+ appendOp(URX_LA_START, dataLoc);
-+ appendOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+ 2);
-+ appendOp(URX_JMP, fRXPat->fCompiledPat->size()+ 3);
-+ appendOp(URX_LA_END, dataLoc);
-+ appendOp(URX_BACKTRACK, 0);
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -605,14 +588,8 @@
- {
- fixLiterals();
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 2;
-- int32_t op = URX_BUILD(URX_LA_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_STATE_SAVE, 0); // dest address will be patched later.
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
--
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t dataLoc = allocateData(2);
-+ appendOp(URX_LA_START, dataLoc);
-+ appendOp(URX_STATE_SAVE, 0); // dest address will be patched later.
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -652,21 +629,17 @@
-
- // Allocate data space
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 4;
-+ int32_t dataLoc = allocateData(4);
-
- // Emit URX_LB_START
-- int32_t op = URX_BUILD(URX_LB_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_START, dataLoc);
-
- // Emit URX_LB_CONT
-- op = URX_BUILD(URX_LB_CONT, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MinMatchLength. To be filled later.
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MaxMatchLength. To be filled later.
--
-- // Emit the NOP
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_CONT, dataLoc);
-+ appendOp(URX_RESERVED_OP, 0); // MinMatchLength. To be filled later.
-+ appendOp(URX_RESERVED_OP, 0); // MaxMatchLength. To be filled later.
-+
-+ // Emit the NOPs
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -708,22 +681,18 @@
-
- // Allocate data space
-- int32_t dataLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize += 4;
-+ int32_t dataLoc = allocateData(4);
-
- // Emit URX_LB_START
-- int32_t op = URX_BUILD(URX_LB_START, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_START, dataLoc);
-
- // Emit URX_LBN_CONT
-- op = URX_BUILD(URX_LBN_CONT, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MinMatchLength. To be filled later.
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // MaxMatchLength. To be filled later.
-- fRXPat->fCompiledPat->addElement(0, *fStatus); // Continue Loc. To be filled later.
--
-- // Emit the NOP
-- op = URX_BUILD(URX_NOP, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LBN_CONT, dataLoc);
-+ appendOp(URX_RESERVED_OP, 0); // MinMatchLength. To be filled later.
-+ appendOp(URX_RESERVED_OP, 0); // MaxMatchLength. To be filled later.
-+ appendOp(URX_RESERVED_OP, 0); // Continue Loc. To be filled later.
-+
-+ // Emit the NOPs
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -795,10 +764,7 @@
- if (URX_TYPE(repeatedOp) == URX_SETREF) {
- // Emit optimized code for [char set]+
-- int32_t loopOpI = URX_BUILD(URX_LOOP_SR_I, URX_VAL(repeatedOp));
-- fRXPat->fCompiledPat->addElement(loopOpI, *fStatus);
-- frameLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, frameLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ appendOp(URX_LOOP_SR_I, URX_VAL(repeatedOp));
-+ frameLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, frameLoc);
- break;
- }
-@@ -808,5 +774,5 @@
- URX_TYPE(repeatedOp) == URX_DOTANY_UNIX) {
- // Emit Optimized code for .+ operations.
-- int32_t loopOpI = URX_BUILD(URX_LOOP_DOT_I, 0);
-+ int32_t loopOpI = buildOp(URX_LOOP_DOT_I, 0);
- if (URX_TYPE(repeatedOp) == URX_DOTANY_ALL) {
- // URX_LOOP_DOT_I operand is a flag indicating ". matches any" mode.
-@@ -816,9 +782,7 @@
- loopOpI |= 2;
- }
-- fRXPat->fCompiledPat->addElement(loopOpI, *fStatus);
-- frameLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, frameLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ appendOp(loopOpI);
-+ frameLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, frameLoc);
- break;
- }
-@@ -834,16 +798,13 @@
- // Emit the code sequence that can handle it.
- insertOp(topLoc);
-- frameLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
--
-- int32_t op = URX_BUILD(URX_STO_INP_LOC, frameLoc);
-+ frameLoc = allocateStackData(1);
-+
-+ int32_t op = buildOp(URX_STO_INP_LOC, frameLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
-- op = URX_BUILD(URX_JMP_SAV_X, topLoc+1);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP_SAV_X, topLoc+1);
- } else {
- // Simpler code when the repeated body must match something non-empty
-- int32_t jmpOp = URX_BUILD(URX_JMP_SAV, topLoc);
-- fRXPat->fCompiledPat->addElement(jmpOp, *fStatus);
-+ appendOp(URX_JMP_SAV, topLoc);
- }
- }
-@@ -857,6 +818,5 @@
- {
- int32_t topLoc = blockTopLoc(FALSE);
-- int32_t saveStateOp = URX_BUILD(URX_STATE_SAVE, topLoc);
-- fRXPat->fCompiledPat->addElement(saveStateOp, *fStatus);
-+ appendOp(URX_STATE_SAVE, topLoc);
- }
- break;
-@@ -872,5 +832,5 @@
- {
- int32_t saveStateLoc = blockTopLoc(TRUE);
-- int32_t saveStateOp = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size());
-+ int32_t saveStateOp = buildOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size());
- fRXPat->fCompiledPat->setElementAt(saveStateOp, saveStateLoc);
- }
-@@ -891,12 +851,10 @@
- int32_t jmp2_loc = fRXPat->fCompiledPat->size();
-
-- int32_t jmp1_op = URX_BUILD(URX_JMP, jmp2_loc+1);
-+ int32_t jmp1_op = buildOp(URX_JMP, jmp2_loc+1);
- fRXPat->fCompiledPat->setElementAt(jmp1_op, jmp1_loc);
-
-- int32_t jmp2_op = URX_BUILD(URX_JMP, jmp2_loc+2);
-- fRXPat->fCompiledPat->addElement(jmp2_op, *fStatus);
--
-- int32_t save_op = URX_BUILD(URX_STATE_SAVE, jmp1_loc+1);
-- fRXPat->fCompiledPat->addElement(save_op, *fStatus);
-+ appendOp(URX_JMP, jmp2_loc+2);
-+
-+ appendOp(URX_STATE_SAVE, jmp1_loc+1);
- }
- break;
-@@ -938,10 +896,8 @@
- if (URX_TYPE(repeatedOp) == URX_SETREF) {
- // Emit optimized code for a [char set]*
-- int32_t loopOpI = URX_BUILD(URX_LOOP_SR_I, URX_VAL(repeatedOp));
-+ int32_t loopOpI = buildOp(URX_LOOP_SR_I, URX_VAL(repeatedOp));
- fRXPat->fCompiledPat->setElementAt(loopOpI, topLoc);
-- dataLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, dataLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ dataLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, dataLoc);
- break;
- }
-@@ -951,5 +907,5 @@
- URX_TYPE(repeatedOp) == URX_DOTANY_UNIX) {
- // Emit Optimized code for .* operations.
-- int32_t loopOpI = URX_BUILD(URX_LOOP_DOT_I, 0);
-+ int32_t loopOpI = buildOp(URX_LOOP_DOT_I, 0);
- if (URX_TYPE(repeatedOp) == URX_DOTANY_ALL) {
- // URX_LOOP_DOT_I operand is a flag indicating . matches any mode.
-@@ -960,8 +916,6 @@
- }
- fRXPat->fCompiledPat->setElementAt(loopOpI, topLoc);
-- dataLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- int32_t loopOpC = URX_BUILD(URX_LOOP_C, dataLoc);
-- fRXPat->fCompiledPat->addElement(loopOpC, *fStatus);
-+ dataLoc = allocateStackData(1);
-+ appendOp(URX_LOOP_C, dataLoc);
- break;
- }
-@@ -972,5 +926,5 @@
-
- int32_t saveStateLoc = blockTopLoc(TRUE);
-- int32_t jmpOp = URX_BUILD(URX_JMP_SAV, saveStateLoc+1);
-+ int32_t jmpOp = buildOp(URX_JMP_SAV, saveStateLoc+1);
-
- // Check for minimum match length of zero, which requires
-@@ -978,10 +932,9 @@
- if (minMatchLength(saveStateLoc, fRXPat->fCompiledPat->size()-1) == 0) {
- insertOp(saveStateLoc);
-- dataLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
--
-- int32_t op = URX_BUILD(URX_STO_INP_LOC, dataLoc);
-+ dataLoc = allocateStackData(1);
-+
-+ int32_t op = buildOp(URX_STO_INP_LOC, dataLoc);
- fRXPat->fCompiledPat->setElementAt(op, saveStateLoc+1);
-- jmpOp = URX_BUILD(URX_JMP_SAV_X, saveStateLoc+2);
-+ jmpOp = buildOp(URX_JMP_SAV_X, saveStateLoc+2);
- }
-
-@@ -990,10 +943,10 @@
- int32_t continueLoc = fRXPat->fCompiledPat->size()+1;
-
-- // Put together the save state op store it into the compiled code.
-- int32_t saveStateOp = URX_BUILD(URX_STATE_SAVE, continueLoc);
-+ // Put together the save state op and store it into the compiled code.
-+ int32_t saveStateOp = buildOp(URX_STATE_SAVE, continueLoc);
- fRXPat->fCompiledPat->setElementAt(saveStateOp, saveStateLoc);
-
- // Append the URX_JMP_SAV or URX_JMPX operation to the compiled pattern.
-- fRXPat->fCompiledPat->addElement(jmpOp, *fStatus);
-+ appendOp(jmpOp);
- }
- break;
-@@ -1009,8 +962,7 @@
- int32_t jmpLoc = blockTopLoc(TRUE); // loc 1.
- int32_t saveLoc = fRXPat->fCompiledPat->size(); // loc 3.
-- int32_t jmpOp = URX_BUILD(URX_JMP, saveLoc);
-- int32_t stateSaveOp = URX_BUILD(URX_STATE_SAVE, jmpLoc+1);
-+ int32_t jmpOp = buildOp(URX_JMP, saveLoc);
- fRXPat->fCompiledPat->setElementAt(jmpOp, jmpLoc);
-- fRXPat->fCompiledPat->addElement(stateSaveOp, *fStatus);
-+ appendOp(URX_STATE_SAVE, jmpLoc+1);
- }
- break;
-@@ -1085,7 +1037,7 @@
- // First the STO_SP before the start of the loop
- insertOp(topLoc);
-- int32_t varLoc = fRXPat->fDataSize; // Reserve a data location for saving the
-- fRXPat->fDataSize += 1; // state stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, varLoc);
-+
-+ int32_t varLoc = allocateData(1); // Reserve a data location for saving the
-+ int32_t op = buildOp(URX_STO_SP, varLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
-@@ -1096,6 +1048,5 @@
-
- // Then the LD_SP after the end of the loop
-- op = URX_BUILD(URX_LD_SP, varLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, varLoc);
- }
-
-@@ -1133,13 +1084,11 @@
- {
- fixLiterals(FALSE);
-- int32_t op;
- if (fModeFlags & UREGEX_DOTALL) {
-- op = URX_BUILD(URX_DOTANY_ALL, 0);
-+ appendOp(URX_DOTANY_ALL, 0);
- } else if (fModeFlags & UREGEX_UNIX_LINES) {
-- op = URX_BUILD(URX_DOTANY_UNIX, 0);
-+ appendOp(URX_DOTANY_UNIX, 0);
- } else {
-- op = URX_BUILD(URX_DOTANY, 0);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_DOTANY, 0);
-+ }
- }
- break;
-@@ -1148,15 +1097,13 @@
- {
- fixLiterals(FALSE);
-- int32_t op = 0;
- if ( (fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_CARET;
-+ appendOp(URX_CARET, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_CARET_M;
-+ appendOp(URX_CARET_M, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_CARET; // Only testing true start of input.
-+ appendOp(URX_CARET, 0); // Only testing true start of input.
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_CARET_M_UNIX;
-- }
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 0), *fStatus);
-+ appendOp(URX_CARET_M_UNIX, 0);
-+ }
- }
- break;
-@@ -1165,15 +1112,13 @@
- {
- fixLiterals(FALSE);
-- int32_t op = 0;
- if ( (fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_DOLLAR;
-+ appendOp(URX_DOLLAR, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) == 0) {
-- op = URX_DOLLAR_M;
-+ appendOp(URX_DOLLAR_M, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) == 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_DOLLAR_D;
-+ appendOp(URX_DOLLAR_D, 0);
- } else if ((fModeFlags & UREGEX_MULTILINE) != 0 && (fModeFlags & UREGEX_UNIX_LINES) != 0) {
-- op = URX_DOLLAR_MD;
-- }
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 0), *fStatus);
-+ appendOp(URX_DOLLAR_MD, 0);
-+ }
- }
- break;
-@@ -1181,5 +1126,5 @@
- case doBackslashA:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_CARET, 0), *fStatus);
-+ appendOp(URX_CARET, 0);
- break;
-
-@@ -1193,5 +1138,5 @@
- fixLiterals(FALSE);
- int32_t op = (fModeFlags & UREGEX_UWORD)? URX_BACKSLASH_BU : URX_BACKSLASH_B;
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 1), *fStatus);
-+ appendOp(op, 1);
- }
- break;
-@@ -1206,5 +1151,5 @@
- fixLiterals(FALSE);
- int32_t op = (fModeFlags & UREGEX_UWORD)? URX_BACKSLASH_BU : URX_BACKSLASH_B;
-- fRXPat->fCompiledPat->addElement(URX_BUILD(op, 0), *fStatus);
-+ appendOp(op, 0);
- }
- break;
-@@ -1212,44 +1157,40 @@
- case doBackslashD:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_D, 1), *fStatus);
-+ appendOp(URX_BACKSLASH_D, 1);
- break;
-
- case doBackslashd:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_D, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_D, 0);
- break;
-
- case doBackslashG:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_G, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_G, 0);
- break;
-
- case doBackslashS:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STAT_SETREF_N, URX_ISSPACE_SET), *fStatus);
-+ appendOp(URX_STAT_SETREF_N, URX_ISSPACE_SET);
- break;
-
- case doBackslashs:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STATIC_SETREF, URX_ISSPACE_SET), *fStatus);
-+ appendOp(URX_STATIC_SETREF, URX_ISSPACE_SET);
- break;
-
- case doBackslashW:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STAT_SETREF_N, URX_ISWORD_SET), *fStatus);
-+ appendOp(URX_STAT_SETREF_N, URX_ISWORD_SET);
- break;
-
- case doBackslashw:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(
-- URX_BUILD(URX_STATIC_SETREF, URX_ISWORD_SET), *fStatus);
-+ appendOp(URX_STATIC_SETREF, URX_ISWORD_SET);
- break;
-
- case doBackslashX:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_X, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_X, 0);
- break;
-
-@@ -1257,10 +1198,10 @@
- case doBackslashZ:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_DOLLAR, 0), *fStatus);
-+ appendOp(URX_DOLLAR, 0);
- break;
-
- case doBackslashz:
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKSLASH_Z, 0), *fStatus);
-+ appendOp(URX_BACKSLASH_Z, 0);
- break;
-
-@@ -1322,11 +1263,9 @@
- // and shouldn't enter this code path at all.
- fixLiterals(FALSE);
-- int32_t op;
- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ appendOp(URX_BACKREF_I, groupNum);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_BACKREF, groupNum);
-+ }
- }
- break;
-@@ -1349,20 +1288,16 @@
- // Emit the STO_SP
- int32_t topLoc = blockTopLoc(TRUE);
-- int32_t stoLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize++; // Reserve the data location for storing save stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, stoLoc);
-+ int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr.
-+ int32_t op = buildOp(URX_STO_SP, stoLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
- // Emit the STATE_SAVE
-- op = URX_BUILD(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+2);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_STATE_SAVE, fRXPat->fCompiledPat->size()+2);
-
- // Emit the JMP
-- op = URX_BUILD(URX_JMP, topLoc+1);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP, topLoc+1);
-
- // Emit the LD_SP
-- op = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -1384,21 +1319,18 @@
-
- // emit STO_SP loc
-- int32_t stoLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize++; // Reserve the data location for storing save stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, stoLoc);
-+ int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr.
-+ int32_t op = buildOp(URX_STO_SP, stoLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
- // Emit the SAVE_STATE 5
- int32_t L7 = fRXPat->fCompiledPat->size()+1;
-- op = URX_BUILD(URX_STATE_SAVE, L7);
-+ op = buildOp(URX_STATE_SAVE, L7);
- fRXPat->fCompiledPat->setElementAt(op, topLoc+1);
-
- // Append the JMP operation.
-- op = URX_BUILD(URX_JMP, topLoc+1);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_JMP, topLoc+1);
-
- // Emit the LD_SP loc
-- op = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -1419,17 +1351,15 @@
-
- // Emit the STO_SP
-- int32_t stoLoc = fRXPat->fDataSize;
-- fRXPat->fDataSize++; // Reserve the data location for storing save stack ptr.
-- int32_t op = URX_BUILD(URX_STO_SP, stoLoc);
-+ int32_t stoLoc = allocateData(1); // Reserve the data location for storing save stack ptr.
-+ int32_t op = buildOp(URX_STO_SP, stoLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc);
-
- // Emit the SAVE_STATE
- int32_t continueLoc = fRXPat->fCompiledPat->size()+1;
-- op = URX_BUILD(URX_STATE_SAVE, continueLoc);
-+ op = buildOp(URX_STATE_SAVE, continueLoc);
- fRXPat->fCompiledPat->setElementAt(op, topLoc+1);
-
- // Emit the LD_SP
-- op = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -1488,6 +1418,6 @@
- {
- fixLiterals(FALSE);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
-+ appendOp(URX_NOP, 0);
-+ appendOp(URX_NOP, 0);
-
- // On the Parentheses stack, start a new frame and add the postions
-@@ -1826,5 +1756,4 @@
- //------------------------------------------------------------------------------
- void RegexCompile::fixLiterals(UBool split) {
-- int32_t op = 0; // An op from/for the compiled pattern.
-
- // If no literal characters have been scanned but not yet had code generated
-@@ -1865,21 +1794,21 @@
- if ((fModeFlags & UREGEX_CASE_INSENSITIVE) &&
- u_hasBinaryProperty(lastCodePoint, UCHAR_CASE_SENSITIVE)) {
-- op = URX_BUILD(URX_ONECHAR_I, lastCodePoint);
-+ appendOp(URX_ONECHAR_I, lastCodePoint);
- } else {
-- op = URX_BUILD(URX_ONECHAR, lastCodePoint);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_ONECHAR, lastCodePoint);
-+ }
- } else {
- // Two or more chars, emit a URX_STRING to match them.
-+ if (fLiteralChars.length() > 0x00ffffff || fRXPat->fLiteralText.length() > 0x00ffffff) {
-+ error(U_REGEX_PATTERN_TOO_BIG);
-+ }
- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_STRING_I, fRXPat->fLiteralText.length());
-+ appendOp(URX_STRING_I, fRXPat->fLiteralText.length());
- } else {
- // TODO here: add optimization to split case sensitive strings of length two
- // into two single char ops, for efficiency.
-- op = URX_BUILD(URX_STRING, fRXPat->fLiteralText.length());
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_STRING_LEN, fLiteralChars.length());
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_STRING, fRXPat->fLiteralText.length());
-+ }
-+ appendOp(URX_STRING_LEN, fLiteralChars.length());
-
- // Add this string into the accumulated strings of the compiled pattern.
-@@ -1891,6 +1820,56 @@
-
-
--
--
-+int32_t RegexCompile::buildOp(int32_t type, int32_t val) {
-+ if (U_FAILURE(*fStatus)) {
-+ return 0;
-+ }
-+ if (type < 0 || type > 255) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ type = URX_RESERVED_OP;
-+ }
-+ if (val > 0x00ffffff) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ val = 0;
-+ }
-+ if (val < 0) {
-+ if (!(type == URX_RESERVED_OP_N || type == URX_RESERVED_OP)) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return -1;
-+ }
-+ if (URX_TYPE(val) != 0xff) {
-+ U_ASSERT(FALSE);
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return -1;
-+ }
-+ type = URX_RESERVED_OP_N;
-+ }
-+ return (type << 24) | val;
-+}
-+
-+
-+//------------------------------------------------------------------------------
-+//
-+// appendOp() Append a new instruction onto the compiled pattern
-+// Includes error checking, limiting the size of the
-+// pattern to lengths that can be represented in the
-+// 24 bit operand field of an instruction.
-+//
-+//------------------------------------------------------------------------------
-+void RegexCompile::appendOp(int32_t op) {
-+ if (U_FAILURE(*fStatus)) {
-+ return;
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ if ((fRXPat->fCompiledPat->size() > 0x00fffff0) && U_SUCCESS(*fStatus)) {
-+ error(U_REGEX_PATTERN_TOO_BIG);
-+ }
-+}
-+
-+void RegexCompile::appendOp(int32_t type, int32_t val) {
-+ appendOp(buildOp(type, val));
-+}
-
-
-@@ -1908,5 +1887,5 @@
- U_ASSERT(where>0 && where < code->size());
-
-- int32_t nop = URX_BUILD(URX_NOP, 0);
-+ int32_t nop = buildOp(URX_NOP, 0);
- code->insertElementAt(nop, where, *fStatus);
-
-@@ -1929,5 +1908,5 @@
- // needs to be incremented to adjust for the insertion.
- opValue++;
-- op = URX_BUILD(opType, opValue);
-+ op = buildOp(opType, opValue);
- code->setElementAt(op, loc);
- }
-@@ -1953,4 +1932,56 @@
- }
-
-+
-+//------------------------------------------------------------------------------
-+//
-+// allocateData() Allocate storage in the matcher's static data area.
-+// Return the index for the newly allocated data.
-+// The storage won't actually exist until we are running a match
-+// operation, but the storage indexes are inserted into various
-+// opcodes while compiling the pattern.
-+//
-+//------------------------------------------------------------------------------
-+int32_t RegexCompile::allocateData(int32_t size) {
-+ if (U_FAILURE(*fStatus)) {
-+ return 0;
-+ }
-+ if (size <= 0 || size > 0x100 || fRXPat->fDataSize < 0) {
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return 0;
-+ }
-+ int32_t dataIndex = fRXPat->fDataSize;
-+ fRXPat->fDataSize += size;
-+ if (fRXPat->fDataSize >= 0x00fffff0) {
-+ error(U_REGEX_INTERNAL_ERROR);
-+ }
-+ return dataIndex;
-+}
-+
-+
-+//------------------------------------------------------------------------------
-+//
-+// allocateStackData() Allocate space in the back-tracking stack frame.
-+// Return the index for the newly allocated data.
-+// The frame indexes are inserted into various
-+// opcodes while compiling the pattern, meaning that frame
-+// size must be restricted to the size that will fit
-+// as an operand (24 bits).
-+//
-+//------------------------------------------------------------------------------
-+int32_t RegexCompile::allocateStackData(int32_t size) {
-+ if (U_FAILURE(*fStatus)) {
-+ return 0;
-+ }
-+ if (size <= 0 || size > 0x100 || fRXPat->fFrameSize < 0) {
-+ error(U_REGEX_INTERNAL_ERROR);
-+ return 0;
-+ }
-+ int32_t dataIndex = fRXPat->fFrameSize;
-+ fRXPat->fFrameSize += size;
-+ if (fRXPat->fFrameSize >= 0x00fffff0) {
-+ error(U_REGEX_PATTERN_TOO_BIG);
-+ }
-+ return dataIndex;
-+}
-
-
-@@ -1996,5 +2027,5 @@
- }
- if (reserveLoc) {
-- int32_t nop = URX_BUILD(URX_NOP, 0);
-+ int32_t nop = buildOp(URX_NOP, 0);
- fRXPat->fCompiledPat->insertElementAt(nop, theLoc, *fStatus);
- }
-@@ -2071,6 +2102,5 @@
-
- int32_t frameVarLocation = URX_VAL(captureOp);
-- int32_t endCaptureOp = URX_BUILD(URX_END_CAPTURE, frameVarLocation);
-- fRXPat->fCompiledPat->addElement(endCaptureOp, *fStatus);
-+ appendOp(URX_END_CAPTURE, frameVarLocation);
- }
- break;
-@@ -2083,6 +2113,5 @@
- U_ASSERT(URX_TYPE(stoOp) == URX_STO_SP);
- int32_t stoLoc = URX_VAL(stoOp);
-- int32_t ldOp = URX_BUILD(URX_LD_SP, stoLoc);
-- fRXPat->fCompiledPat->addElement(ldOp, *fStatus);
-+ appendOp(URX_LD_SP, stoLoc);
- }
- break;
-@@ -2093,6 +2122,5 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LA_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LA_END, dataLoc);
- }
- break;
-@@ -2104,10 +2132,7 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LA_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_BACKTRACK, 0);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LA_END, dataLoc);
-+ appendOp(URX_BACKTRACK, 0);
-+ appendOp(URX_LA_END, dataLoc);
-
- // Patch the URX_SAVE near the top of the block.
-@@ -2116,5 +2141,5 @@
- U_ASSERT(URX_TYPE(saveOp) == URX_STATE_SAVE);
- int32_t dest = fRXPat->fCompiledPat->size()-1;
-- saveOp = URX_BUILD(URX_STATE_SAVE, dest);
-+ saveOp = buildOp(URX_STATE_SAVE, dest);
- fRXPat->fCompiledPat->setElementAt(saveOp, fMatchOpenParen);
- }
-@@ -2129,8 +2154,6 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LB_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LB_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-- op = URX_BUILD(URX_LA_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LB_END, dataLoc);
-+ appendOp(URX_LA_END, dataLoc);
-
- // Determine the min and max bounds for the length of the
-@@ -2168,6 +2191,5 @@
- U_ASSERT(URX_TYPE(startOp) == URX_LB_START);
- int32_t dataLoc = URX_VAL(startOp);
-- int32_t op = URX_BUILD(URX_LBN_END, dataLoc);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(URX_LBN_END, dataLoc);
-
- // Determine the min and max bounds for the length of the
-@@ -2194,5 +2216,5 @@
- // Insert the pattern location to continue at after a successful match
- // as the last operand of the URX_LBN_CONT
-- op = URX_BUILD(URX_RELOC_OPRND, fRXPat->fCompiledPat->size());
-+ int32_t op = buildOp(URX_RELOC_OPRND, fRXPat->fCompiledPat->size());
- fRXPat->fCompiledPat->setElementAt(op, fMatchOpenParen-1);
- }
-@@ -2235,5 +2257,5 @@
- {
- // Set of no elements. Always fails to match.
-- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_BACKTRACK, 0), *fStatus);
-+ appendOp(URX_BACKTRACK, 0);
- delete theSet;
- }
-@@ -2256,6 +2278,5 @@
- int32_t setNumber = fRXPat->fSets->size();
- fRXPat->fSets->addElement(theSet, *fStatus);
-- int32_t setOp = URX_BUILD(URX_SETREF, setNumber);
-- fRXPat->fCompiledPat->addElement(setOp, *fStatus);
-+ appendOp(URX_SETREF, setNumber);
- }
- }
-@@ -2296,11 +2317,8 @@
- // +1 --> Input index (for breaking non-progressing loops)
- // (Only present if unbounded upper limit on loop)
-- int32_t counterLoc = fRXPat->fFrameSize;
-- fRXPat->fFrameSize++;
-- if (fIntervalUpper < 0) {
-- fRXPat->fFrameSize++;
-- }
--
-- int32_t op = URX_BUILD(InitOp, counterLoc);
-+ int32_t dataSize = fIntervalUpper < 0 ? 2 : 1;
-+ int32_t counterLoc = allocateStackData(dataSize);
-+
-+ int32_t op = buildOp(InitOp, counterLoc);
- fRXPat->fCompiledPat->setElementAt(op, topOfBlock);
-
-@@ -2310,5 +2328,5 @@
- // position to move.
- int32_t loopEnd = fRXPat->fCompiledPat->size();
-- op = URX_BUILD(URX_RELOC_OPRND, loopEnd);
-+ op = buildOp(URX_RELOC_OPRND, loopEnd);
- fRXPat->fCompiledPat->setElementAt(op, topOfBlock+1);
-
-@@ -2319,6 +2337,5 @@
- // Apend the CTR_LOOP op. The operand is the location of the CTR_INIT op.
- // Goes at end of the block being looped over, so just append to the code so far.
-- op = URX_BUILD(LoopOp, topOfBlock);
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ appendOp(LoopOp, topOfBlock);
-
- if ((fIntervalLow & 0xff000000) != 0 ||
-@@ -2373,5 +2390,5 @@
- int32_t endOfSequenceLoc = fRXPat->fCompiledPat->size()-1
- + fIntervalUpper + (fIntervalUpper-fIntervalLow);
-- int32_t saveOp = URX_BUILD(URX_STATE_SAVE, endOfSequenceLoc);
-+ int32_t saveOp = buildOp(URX_STATE_SAVE, endOfSequenceLoc);
- if (fIntervalLow == 0) {
- insertOp(topOfBlock);
-@@ -2386,11 +2403,8 @@
- int32_t i;
- for (i=1; i<fIntervalUpper; i++ ) {
-- if (i == fIntervalLow) {
-- fRXPat->fCompiledPat->addElement(saveOp, *fStatus);
-- }
-- if (i > fIntervalLow) {
-- fRXPat->fCompiledPat->addElement(saveOp, *fStatus);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ if (i >= fIntervalLow) {
-+ appendOp(saveOp);
-+ }
-+ appendOp(op);
- }
- return TRUE;
-@@ -3612,5 +3626,5 @@
- U_ASSERT(operandAddress>=0 && operandAddress<deltas.size());
- int32_t fixedOperandAddress = operandAddress - deltas.elementAti(operandAddress);
-- op = URX_BUILD(opType, fixedOperandAddress);
-+ op = buildOp(opType, fixedOperandAddress);
- fRXPat->fCompiledPat->setElementAt(op, dst);
- dst++;
-@@ -3627,5 +3641,5 @@
- }
- where = fRXPat->fGroupMap->elementAti(where-1);
-- op = URX_BUILD(opType, where);
-+ op = buildOp(opType, where);
- fRXPat->fCompiledPat->setElementAt(op, dst);
- dst++;
-@@ -3979,5 +3993,5 @@
- //
- // scanNamedChar
-- // Get a UChar32 from a \N{UNICODE CHARACTER NAME} in the pattern.
-+// Get a UChar32 from a \N{UNICODE CHARACTER NAME} in the pattern.
- //
- // The scan position will be at the 'N'. On return
-Index: /icu/trunk/source/i18n/regexcmp.h
-===================================================================
---- /icu/trunk/source/i18n/regexcmp.h (revision 36800)
-+++ /icu/trunk/source/i18n/regexcmp.h (revision 36801)
-@@ -105,4 +105,11 @@
- void insertOp(int32_t where); // Open up a slot for a new op in the
- // generated code at the specified location.
-+ void appendOp(int32_t op); // Append a new op to the compiled pattern.
-+ void appendOp(int32_t type, int32_t val); // Build & append a new op to the compiled pattern.
-+ int32_t buildOp(int32_t type, int32_t val); // Construct a new pcode instruction.
-+ int32_t allocateData(int32_t size); // Allocate space in the matcher data area.
-+ // Return index of the newly allocated data.
-+ int32_t allocateStackData(int32_t size); // Allocate space in the match back-track stack frame.
-+ // Return offset index in the frame.
- int32_t minMatchLength(int32_t start,
- int32_t end);
-Index: /icu/trunk/source/i18n/regeximp.h
-===================================================================
---- /icu/trunk/source/i18n/regeximp.h (revision 36800)
-+++ /icu/trunk/source/i18n/regeximp.h (revision 36801)
-@@ -1,4 +1,4 @@
- //
--// Copyright (C) 2002-2013 International Business Machines Corporation
-+// Copyright (C) 2002-2014 International Business Machines Corporation
- // and others. All rights reserved.
- //
-@@ -242,5 +242,4 @@
- // Convenience macros for assembling and disassembling a compiled operation.
- //
--#define URX_BUILD(type, val) (int32_t)((type << 24) | (val))
- #define URX_TYPE(x) ((uint32_t)(x) >> 24)
- #define URX_VAL(x) ((x) & 0xffffff)
-Index: /icu/trunk/source/test/intltest/regextst.cpp
-===================================================================
---- /icu/trunk/source/test/intltest/regextst.cpp (revision 36800)
-+++ /icu/trunk/source/test/intltest/regextst.cpp (revision 36801)
-@@ -145,4 +145,7 @@
- if (exec) TestBug11049();
- break;
-+ case 25: name = "TestBug11371";
-+ if (exec) TestBug11371();
-+ break;
- default: name = "";
- break; //needed to end loop
-@@ -5368,4 +5371,47 @@
-
-
-+void RegexTest::TestBug11371() {
-+ if (quick) {
-+ logln("Skipping test. Runs in exhuastive mode only.");
-+ return;
-+ }
-+ UErrorCode status = U_ZERO_ERROR;
-+ UnicodeString patternString;
-+
-+ for (int i=0; i<8000000; i++) {
-+ patternString.append(UnicodeString("()"));
-+ }
-+ LocalPointer<RegexPattern> compiledPat(RegexPattern::compile(patternString, 0, status));
-+ if (status != U_REGEX_PATTERN_TOO_BIG) {
-+ errln("File %s, line %d expected status=U_REGEX_PATTERN_TOO_BIG; got %s.",
-+ __FILE__, __LINE__, u_errorName(status));
-+ }
-+
-+ status = U_ZERO_ERROR;
-+ patternString = "(";
-+ for (int i=0; i<20000000; i++) {
-+ patternString.append(UnicodeString("A++"));
-+ }
-+ patternString.append(UnicodeString("){0}B++"));
-+ LocalPointer<RegexPattern> compiledPat2(RegexPattern::compile(patternString, 0, status));
-+ if (status != U_REGEX_PATTERN_TOO_BIG) {
-+ errln("File %s, line %d expected status=U_REGEX_PATTERN_TOO_BIG; got %s.",
-+ __FILE__, __LINE__, u_errorName(status));
-+ }
-+
-+ // Pattern with too much string data, such that string indexes overflow operand data field size
-+ // in compiled instruction.
-+ status = U_ZERO_ERROR;
-+ patternString = "";
-+ while (patternString.length() < 0x00ffffff) {
-+ patternString.append(UnicodeString("stuff and things dont you know, these are a few of my favorite strings\n"));
-+ }
-+ patternString.append(UnicodeString("X? trailing string"));
-+ LocalPointer<RegexPattern> compiledPat3(RegexPattern::compile(patternString, 0, status));
-+ if (status != U_REGEX_PATTERN_TOO_BIG) {
-+ errln("File %s, line %d expected status=U_REGEX_PATTERN_TOO_BIG; got %s.",
-+ __FILE__, __LINE__, u_errorName(status));
-+ }
-+}
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-Index: /icu/trunk/source/test/intltest/regextst.h
-===================================================================
---- /icu/trunk/source/test/intltest/regextst.h (revision 36800)
-+++ /icu/trunk/source/test/intltest/regextst.h (revision 36801)
-@@ -51,4 +51,5 @@
- virtual void TestCaseInsensitiveStarters();
- virtual void TestBug11049();
-+ virtual void TestBug11371();
-
- // The following functions are internal to the regexp tests.
diff --git a/dev-libs/icu/files/icu-fix-tests-depending-on-date.patch b/dev-libs/icu/files/icu-fix-tests-depending-on-date.patch
deleted file mode 100644
index 61c286a54c..0000000000
--- a/dev-libs/icu/files/icu-fix-tests-depending-on-date.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-See icu-fix-tests-depending-on-date.patch
-
-Index: icu/source/test/intltest/dtfmttst.cpp
-===================================================================
---- icu.orig/source/test/intltest/dtfmttst.cpp
-+++ icu/source/test/intltest/dtfmttst.cpp
-@@ -1132,7 +1132,7 @@ DateFormatTest::TestTwoDigitYear()
- return;
- }
- parse2DigitYear(fmt, "5/6/17", date(117, UCAL_JUNE, 5));
-- parse2DigitYear(fmt, "4/6/34", date(34, UCAL_JUNE, 4));
-+ parse2DigitYear(fmt, "4/6/34", date(134, UCAL_JUNE, 4));
- }
-
- // -------------------------------------
diff --git a/dev-libs/icu/files/icu-remove-bashisms.patch b/dev-libs/icu/files/icu-remove-bashisms.patch
deleted file mode 100644
index 980d84b77d..0000000000
--- a/dev-libs/icu/files/icu-remove-bashisms.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-Index: config/Makefile.inc.in
-===================================================================
---- config/Makefile.inc.in (revision 36912)
-+++ config/Makefile.inc.in (working copy)
-@@ -125,12 +125,6 @@
- # with usually. Many applications will want to add $(ICULIBS_I18N) as well.
- ICULIBS = $(ICULIBS_BASE) $(ICULIBS_I18N) $(ICULIBS_COMMON) $(ICULIBS_DATA)
-
--# Proper echo newline handling is needed in icu-config
--ECHO_N=@ICU_ECHO_N@
--ECHO_C=@ICU_ECHO_C@
--# Not currently being used but good to have for proper tab handling
--ECHO_T=@ICU_ECHO_T@
--
- ##################################################################
- ##################################################################
- #
-Index: config/icu-config-bottom
-===================================================================
---- config/icu-config-bottom (revision 36912)
-+++ config/icu-config-bottom (working copy)
-@@ -217,73 +217,73 @@
- ;;
-
- --cflags)
-- echo $ECHO_N "${CFLAGS} ${ECHO_C}"
-+ printf "%s" "${CFLAGS} "
- ;;
-
- --cc)
-- echo $ECHO_N "${CC} ${ECHO_C}"
-+ printf "%s" "${CC} "
- ;;
-
- --cxx)
-- echo $ECHO_N "${CXX} ${ECHO_C}"
-+ printf "%s" "${CXX} "
- ;;
-
- --cxxflags)
-- echo $ECHO_N "${CXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${CXXFLAGS} "
- ;;
-
- --cppflags)
- # Don't echo the -I. - it's unneeded.
-- echo $ECHO_N "${CPPFLAGS} ${ECHO_C}" | sed -e 's/-I. //'
-+ printf "%s" "${CPPFLAGS} " | sed -e 's/-I. //'
- ;;
-
- --cppflags-searchpath)
-- echo $ECHO_N "-I${prefix}/include ${ECHO_C}"
-+ printf "%s" "-I${prefix}/include "
- ;;
-
- --cppflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCPPFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCPPFLAGS} "
- ;;
-
- --cxxflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCXXFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCXXFLAGS} "
- ;;
-
- --cflags-dynamic)
-- echo $ECHO_N "${SHAREDLIBCFLAGS} ${ECHO_C}"
-+ printf "%s" "${SHAREDLIBCFLAGS} "
- ;;
-
- --ldflags-system)
-- echo $ECHO_N "${LIBS} ${ECHO_C}"
-+ printf "%s" "${LIBS} "
- ;;
-
- --ldflags)
-- echo $ECHO_N "${LDFLAGS} ${ICULIBS} ${ECHO_C}"
-+ printf "%s" "${LDFLAGS} ${ICULIBS} "
- # $RPATH_LDFLAGS
- ;;
-
- --ldflags-libsonly)
-- echo $ECHO_N "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} "
- ;;
-
- --ldflags-icuio)
-- echo $ECHO_N " ${ICULIBS_ICUIO} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_ICUIO} "
- ;;
-
- --ldflags-obsolete)
-- echo $ECHO_N "${ICULIBS_OBSOLETE} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_OBSOLETE} "
- ;;
-
- --ldflags-toolutil)
-- echo $ECHO_N " ${ICULIBS_TOOLUTIL} ${ECHO_C}"
-+ printf "%s" " ${ICULIBS_TOOLUTIL} "
- ;;
-
- --ldflags-layout)
-- echo $ECHO_N "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} ${ECHO_C}"
-+ printf "%s" "${ICULIBS_LAYOUT} ${ICULIBS_LAYOUTEX} "
- ;;
-
- --ldflags-searchpath)
-- echo $ECHO_N "-L${libdir} ${ECHO_C}"
-+ printf "%s" "-L${libdir} "
- ;;
-
- --detect-prefix)
-@@ -319,47 +319,47 @@
- ;;
-
- --shared-datadir)
-- echo $ECHO_N "${datadir} ${ECHO_C}"
-+ printf "%s" "${datadir} "
- ;;
-
- --incfile)
-- echo $ECHO_N "${pkglibdir}/Makefile.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/Makefile.inc "
- ;;
-
- --incpkgdatafile)
-- echo $ECHO_N "${pkglibdir}/pkgdata.inc ${ECHO_C}"
-+ printf "%s" "${pkglibdir}/pkgdata.inc "
- ;;
-
- --icudata)
-- echo $ECHO_N "${ICUDATA_NAME} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_NAME} "
- ;;
-
- --icudata-mode)
-- echo $ECHO_N "${PKGDATA_MODE} ${ECHO_C}"
-+ printf "%s" "${PKGDATA_MODE} "
- ;;
-
- --icudata-install-dir)
-- echo $ECHO_N "${ICUPKGDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUPKGDATA_DIR} "
- ;;
-
- --icudatadir)
-- echo $ECHO_N "${ICUDATA_DIR} ${ECHO_C}"
-+ printf "%s" "${ICUDATA_DIR} "
- ;;
-
- --shlib-c)
-- echo $ECHO_N "${SHLIB_c} ${ECHO_C}"
-+ printf "%s" "${SHLIB_c} "
- ;;
-
- --shlib-cc)
-- echo $ECHO_N "${SHLIB_cc} ${ECHO_C}"
-+ printf "%s" "${SHLIB_cc} "
- ;;
-
- --version)
-- echo $ECHO_N $VERSION
-+ printf "%s" "$VERSION"
- ;;
-
- --unicode-version)
-- echo $ECHO_N $UNICODE_VERSION
-+ printf "%s" "$UNICODE_VERSION"
- ;;
-
- --host)
-Index: configure.ac
-===================================================================
---- configure.ac (revision 36912)
-+++ configure.ac (working copy)
-@@ -19,24 +19,6 @@
- PACKAGE="icu"
- AC_SUBST(PACKAGE)
-
--# Use custom echo test for newline option
--# Current autoconf (2.65) gives incorrect echo newline option
--# for icu-config
--# This may be removed later - mow (June 17, 2010)
--ICU_ECHO_C= ICU_ECHO_N= ICU_ECHO_T=
--case `/bin/sh -c "echo -n x"` in
---n*)
-- case `/bin/sh -c "echo 'x\c'"` in
-- *c*) ICU_ECHO_T=' ';; # ECHO_T is single tab character.
-- *) ICU_ECHO_C='\c';;
-- esac;;
--*)
-- ICU_ECHO_N='-n';;
--esac
--AC_SUBST(ICU_ECHO_N)
--AC_SUBST(ICU_ECHO_C)
--AC_SUBST(ICU_ECHO_T)
--
- AC_MSG_CHECKING(for ICU version numbers)
-
- # Get the ICU version from uversion.h or other headers
-Index: icudefs.mk.in
-===================================================================
---- icudefs.mk.in (revision 36912)
-+++ icudefs.mk.in (working copy)
-@@ -155,11 +155,6 @@
- ENABLE_STATIC = @ENABLE_STATIC@
- ENABLE_SHARED = @ENABLE_SHARED@
-
--# Echo w/o newline
--
--#ECHO_N = @ICU_ECHO_N@
--#ECHO_C = @ICU_ECHO_C@
--
- # Commands to compile
- COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
- COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
-Index: test/hdrtst/Makefile.in
-===================================================================
---- test/hdrtst/Makefile.in (revision 36912)
-+++ test/hdrtst/Makefile.in (working copy)
-@@ -33,9 +33,6 @@
- include $(shell icu-config --incfile)
- DIRS=$(prefix)/include/unicode
- LDIRS=$(prefix)/include/layout
--ECHO_T=@ECHO_T@
--ECHO_C=@ECHO_C@
--ECHO_N=@ECHO_N@
-
- all:
- @echo Please read this Makefile for more information.
diff --git a/dev-libs/icu/icu-54.1-r1.ebuild b/dev-libs/icu/icu-54.1-r1.ebuild
deleted file mode 100644
index 02564d11b1..0000000000
--- a/dev-libs/icu/icu-54.1-r1.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/icu-54.1-r1.ebuild,v 1.11 2015/05/29 05:05:12 vapier Exp $
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/54a"
-
-KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="debug doc examples static-libs"
-
-DEPEND="
- doc? (
- app-doc/doxygen[dot]
- )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-src_prepare() {
- local variable
-
- epatch "${FILESDIR}/${PN}-remove-bashisms.patch"
- epatch "${FILESDIR}/${P}-CVE-2014-9654.patch"
- epatch_user
-
- # fix compilation on Solaris due to enabling of conflicting standards
- sed -i -e '/define _XOPEN_SOURCE_EXTENDED/s/_XOPEN/no_XOPEN/' \
- common/uposixdefs.h || die
- # for correct install_names
- epatch "${FILESDIR}"/${PN}-4.8.1-darwin.patch
-
- # Disable renaming as it is stupind thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- $(use_enable debug)
- $(use_enable static-libs static)
- )
-
- multilib_is_native_abi && myeconfargs+=(
- $(use_enable examples samples)
- )
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- # make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL=${EPREFIX}/bin/sh
-
- ECONF_SOURCE=${S} \
- econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- dohtml -p api -r doc/html/
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- dohtml ../readme.html
-}
diff --git a/dev-libs/icu/icu-55.1.ebuild b/dev-libs/icu/icu-55.1.ebuild
deleted file mode 100644
index 421e74d9fc..0000000000
--- a/dev-libs/icu/icu-55.1.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/icu-55.1.ebuild,v 1.11 2015/06/24 07:55:22 ago Exp $
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/"
-SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
-
-LICENSE="BSD"
-
-SLOT="0/55"
-
-KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="debug doc examples static-libs"
-
-DEPEND="
- doc? (
- app-doc/doxygen[dot]
- )
-"
-
-S="${WORKDIR}/${PN}/source"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/icu-config
-)
-
-src_prepare() {
- local variable
-
- epatch "${FILESDIR}/${PN}-remove-bashisms.patch"
- epatch_user
-
- # fix compilation on Solaris due to enabling of conflicting standards
- sed -i -e '/define _XOPEN_SOURCE_EXTENDED/s/_XOPEN/no_XOPEN/' \
- common/uposixdefs.h || die
- # for correct install_names
- epatch "${FILESDIR}"/${PN}-4.8.1-darwin.patch
-
- # Disable renaming as it is stupind thing to do
- sed -i \
- -e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
- common/unicode/uconfig.h || die
-
- # Fix linking of icudata
- sed -i \
- -e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
- config/mh-linux || die
-
- # Append doxygen configuration to configure
- sed -i \
- -e 's:icudefs.mk:icudefs.mk Doxyfile:' \
- configure.ac || die
-
- eautoreconf
-}
-
-src_configure() {
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- if tc-is-cross-compiler; then
- mkdir "${WORKDIR}"/host || die
- pushd "${WORKDIR}"/host >/dev/null || die
-
- CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
- CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
- RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
- "${S}"/configure --disable-renaming --disable-debug \
- --disable-samples --enable-static || die
- emake
-
- popd >/dev/null || die
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --disable-renaming
- --disable-samples
- $(use_enable debug)
- $(use_enable static-libs static)
- )
-
- multilib_is_native_abi && myeconfargs+=(
- $(use_enable examples samples)
- )
- tc-is-cross-compiler && myeconfargs+=(
- --with-cross-build="${WORKDIR}"/host
- )
-
- # icu tries to use clang by default
- tc-export CC CXX
-
- # make sure we configure with the same shell as we run icu-config
- # with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
- export CONFIG_SHELL=${EPREFIX}/bin/sh
-
- ECONF_SOURCE=${S} \
- econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
-
- if multilib_is_native_abi && use doc; then
- doxygen -u Doxyfile || die
- doxygen Doxyfile || die
- fi
-}
-
-multilib_src_test() {
- # INTLTEST_OPTS: intltest options
- # -e: Exhaustive testing
- # -l: Reporting of memory leaks
- # -v: Increased verbosity
- # IOTEST_OPTS: iotest options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- # CINTLTST_OPTS: cintltst options
- # -e: Exhaustive testing
- # -v: Increased verbosity
- emake -j1 VERBOSE="1" check
-}
-
-multilib_src_install() {
- default
-
- if multilib_is_native_abi && use doc; then
- dohtml -p api -r doc/html/
- fi
-}
-
-multilib_src_install_all() {
- einstalldocs
- dohtml ../readme.html
-}