diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2008-10-28 08:56:37 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2008-10-28 08:56:37 +0000 |
commit | ff8e63e66403129d00fd0864581f08af9532668b (patch) | |
tree | dafe6dc98486eb842a5534e949969f643f67d266 /icu | |
parent | 38c0ddd4c914d046fc2e98cd09449dda84de0fbb (diff) |
CWS-TOOLING: integrate CWS i18n42
Diffstat (limited to 'icu')
-rw-r--r-- | icu/icu-3.6.patch | 1547 | ||||
-rw-r--r-- | icu/icu-4.0.patch | 58 | ||||
-rwxr-xr-x | icu/icuversion.mk | 4 | ||||
-rw-r--r-- | icu/makefile.mk | 12 | ||||
-rw-r--r-- | icu/makefiles.zip | bin | 89997 -> 92150 bytes | |||
-rw-r--r-- | icu/prj/d.lst | 10 |
6 files changed, 72 insertions, 1559 deletions
diff --git a/icu/icu-3.6.patch b/icu/icu-3.6.patch deleted file mode 100644 index 7eac1d9a09cc..000000000000 --- a/icu/icu-3.6.patch +++ /dev/null @@ -1,1547 +0,0 @@ -*** misc/icu/source/common/putil.c Mon Jul 31 20:14:28 2006 ---- misc/build/icu/source/common/putil.c Mon Jan 28 21:31:50 2008 -*************** -*** 48,54 **** - #endif - - /* Make sure things like readlink and such functions work. */ -! #ifndef _XOPEN_SOURCE_EXTENDED - #define _XOPEN_SOURCE_EXTENDED 1 - #endif - ---- 48,55 ---- - #endif - - /* Make sure things like readlink and such functions work. */ -! /* It is invalid to compile an XPG3, XPG4, XPG4v2 or XPG5 application using c99 */ -! #if !defined(_XOPEN_SOURCE_EXTENDED) && __STDC_VERSION__ < 199901L - #define _XOPEN_SOURCE_EXTENDED 1 - #endif - -*** misc/icu/source/common/unicode/pwin32.h Tue Aug 29 23:34:38 2006 ---- misc/build/icu/source/common/unicode/pwin32.h Mon Jan 28 21:31:50 2008 -*************** -*** 266,273 **** ---- 266,278 ---- - #else - #define U_EXPORT __declspec(dllexport) - #endif -+ #ifdef __MINGW32__ -+ #define U_EXPORT2 -+ #define U_IMPORT -+ #else - #define U_EXPORT2 __cdecl - #define U_IMPORT __declspec(dllimport) -+ #endif - - /*===========================================================================*/ - /* Code alignment and C function inlining */ -*** misc/icu/source/common/unicode/umachine.h Tue Feb 7 02:54:16 2006 ---- misc/build/icu/source/common/unicode/umachine.h Mon Jan 28 21:31:50 2008 -*************** -*** 322,328 **** - */ - - /* Define UChar to be compatible with wchar_t if possible. */ -! #if U_SIZEOF_WCHAR_T==2 - typedef wchar_t UChar; - #else - typedef uint16_t UChar; ---- 322,328 ---- - */ - - /* Define UChar to be compatible with wchar_t if possible. */ -! #if U_SIZEOF_WCHAR_T==2 && !defined(__MINGW32__) - typedef wchar_t UChar; - #else - typedef uint16_t UChar; -*** misc/icu/source/common/unicode/unistr.h Tue Aug 29 23:52:50 2006 ---- misc/build/icu/source/common/unicode/unistr.h Mon Jan 28 21:31:50 2008 -*************** -*** 3280,3286 **** - //======================================== - inline int8_t - UnicodeString::doCompare(int32_t start, -! int32_t length, - const UnicodeString& srcText, - int32_t srcStart, - int32_t srcLength) const ---- 3280,3286 ---- - //======================================== - inline int8_t - UnicodeString::doCompare(int32_t start, -! int32_t _length, - const UnicodeString& srcText, - int32_t srcStart, - int32_t srcLength) const -*************** -*** 3289,3295 **** - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise - } else { - srcText.pinIndices(srcStart, srcLength); -! return doCompare(start, length, srcText.fArray, srcStart, srcLength); - } - } - ---- 3289,3295 ---- - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise - } else { - srcText.pinIndices(srcStart, srcLength); -! return doCompare(start, _length, srcText.fArray, srcStart, srcLength); - } - } - -*************** -*** 3374,3380 **** - - inline int8_t - UnicodeString::doCompareCodePointOrder(int32_t start, -! int32_t length, - const UnicodeString& srcText, - int32_t srcStart, - int32_t srcLength) const ---- 3374,3380 ---- - - inline int8_t - UnicodeString::doCompareCodePointOrder(int32_t start, -! int32_t _length, - const UnicodeString& srcText, - int32_t srcStart, - int32_t srcLength) const -*************** -*** 3383,3389 **** - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise - } else { - srcText.pinIndices(srcStart, srcLength); -! return doCompareCodePointOrder(start, length, srcText.fArray, srcStart, srcLength); - } - } - ---- 3383,3389 ---- - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise - } else { - srcText.pinIndices(srcStart, srcLength); -! return doCompareCodePointOrder(start, _length, srcText.fArray, srcStart, srcLength); - } - } - -*************** -*** 3435,3441 **** - - inline int8_t - UnicodeString::doCaseCompare(int32_t start, -! int32_t length, - const UnicodeString &srcText, - int32_t srcStart, - int32_t srcLength, ---- 3435,3441 ---- - - inline int8_t - UnicodeString::doCaseCompare(int32_t start, -! int32_t _length, - const UnicodeString &srcText, - int32_t srcStart, - int32_t srcLength, -*************** -*** 3445,3451 **** - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise - } else { - srcText.pinIndices(srcStart, srcLength); -! return doCaseCompare(start, length, srcText.fArray, srcStart, srcLength, options); - } - } - ---- 3445,3451 ---- - return (int8_t)!isBogus(); // 0 if both are bogus, 1 otherwise - } else { - srcText.pinIndices(srcStart, srcLength); -! return doCaseCompare(start, _length, srcText.fArray, srcStart, srcLength, options); - } - } - -*** misc/icu/source/common/unicode/ustring.h Tue Aug 29 23:52:50 2006 ---- misc/build/icu/source/common/unicode/ustring.h Mon Jan 28 21:31:50 2008 -*************** -*** 918,924 **** - * </pre> - * @stable ICU 2.0 - */ -! #if U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16))) - # define U_STRING_DECL(var, cs, length) static const wchar_t var[(length)+1]={ L ## cs } - /**@stable ICU 2.0 */ - # define U_STRING_INIT(var, cs, length) ---- 918,924 ---- - * </pre> - * @stable ICU 2.0 - */ -! #if U_SIZEOF_WCHAR_T==U_SIZEOF_UCHAR && (U_CHARSET_FAMILY==U_ASCII_FAMILY || (U_SIZEOF_UCHAR == 2 && defined(U_WCHAR_IS_UTF16))) && !defined(__MINGW32__) - # define U_STRING_DECL(var, cs, length) static const wchar_t var[(length)+1]={ L ## cs } - /**@stable ICU 2.0 */ - # define U_STRING_INIT(var, cs, length) -*** misc/icu/source/common/uvectr32.cpp Wed Aug 27 03:01:30 2003 ---- misc/build/icu/source/common/uvectr32.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 1,6 **** - /* - ****************************************************************************** -! * Copyright (C) 1999-2003, International Business Machines Corporation and * - * others. All Rights Reserved. * - ****************************************************************************** - * Date Name Description ---- 1,6 ---- - /* - ****************************************************************************** -! * Copyright (C) 1999-2008, International Business Machines Corporation and * - * others. All Rights Reserved. * - ****************************************************************************** - * Date Name Description -*************** -*** 26,31 **** ---- 26,32 ---- - UVector32::UVector32(UErrorCode &status) : - count(0), - capacity(0), -+ maxCapacity(0), - elements(NULL) - { - _init(DEFUALT_CAPACITY, status); -*************** -*** 34,39 **** ---- 35,41 ---- - UVector32::UVector32(int32_t initialCapacity, UErrorCode &status) : - count(0), - capacity(0), -+ maxCapacity(0), - elements(0) - { - _init(initialCapacity, status); -*************** -*** 46,51 **** ---- 48,56 ---- - 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,209 **** - 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; - } - } - ---- 194,228 ---- - UBool UVector32::expandCapacity(int32_t minimumCapacity, UErrorCode &status) { - if (capacity >= minimumCapacity) { - 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; - } - } - -*** misc/icu/source/common/uvectr32.h Wed Jan 18 04:52:04 2006 ---- misc/build/icu/source/common/uvectr32.h Mon Jan 28 21:31:51 2008 -*************** -*** 1,6 **** - /* - ********************************************************************** -! * Copyright (C) 1999-2006, International Business Machines - * Corporation and others. All Rights Reserved. - ********************************************************************** - */ ---- 1,6 ---- - /* - ********************************************************************** -! * Copyright (C) 1999-2008, International Business Machines - * Corporation and others. All Rights Reserved. - ********************************************************************** - */ -*************** -*** 61,66 **** ---- 61,68 ---- - int32_t count; - - int32_t capacity; -+ -+ int32_t maxCapacity; // Limit beyond which capacity is not permitted to grow. - - int32_t* elements; - -*************** -*** 162,167 **** ---- 164,177 ---- - 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,227 **** - } - - inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) { -! ensureCapacity(count+size, status); - int32_t *rp = elements+count; - count += size; - return rp; ---- 231,239 ---- - } - - inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) { -! if (ensureCapacity(count+size, status) == FALSE) { -! return NULL; -! } - int32_t *rp = elements+count; - count += size; - return rp; -*** misc/icu/source/config/mh-darwin Wed Feb 1 08:52:42 2006 ---- misc/build/icu/source/config/mh-darwin Mon Jan 28 21:31:51 2008 -*************** -*** 25,31 **** - 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)) - - ## Compiler switch to embed a runtime search path - LD_RPATH= ---- 25,31 ---- - 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 @executable_path/$(notdir $(FINAL_SO_TARGET)) - - ## Compiler switch to embed a runtime search path - LD_RPATH= -*** misc/icu/source/config/mh-irix Thu Mar 23 19:51:52 2006 ---- misc/build/icu/source/config/mh-irix Mon Jan 28 21:31:51 2008 -*************** -*** 23,28 **** ---- 23,31 ---- - SHLIB.c= $(CC) -shared $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) - SHLIB.cc= $(CXX) -shared $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) - -+ # Environment variable to set a runtime search path -+ LDLIBRARYPATH_ENVVAR = LD_LIBRARYN32_PATH -+ - ## Additional flags when building libraries with thread safety - THREADSCPPFLAGS = -D_REENTRANT -D_PTHREADS - LIBCPPFLAGS = -*** misc/icu/source/config/mh-linux Thu Mar 23 19:51:52 2006 ---- misc/build/icu/source/config/mh-linux Mon Jan 28 21:31:51 2008 -*************** -*** 20,25 **** ---- 20,33 ---- - LD_RPATH= - LD_RPATH_PRE = -Wl,-rpath, - -+ ## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH -+ ## (incl. the C++ runtime libs potentially found in the URE lib dir): -+ ENABLE_RPATH=YES -+ RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib' -+ -+ #SH# ENABLE_RPATH=YES -+ #SH# RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'" -+ - ## These are the library specific LDFLAGS - LDFLAGSICUDT=-nodefaultlibs -nostdlib - -*** misc/icu/source/config/mh-mingw Tue Aug 15 10:24:14 2006 ---- misc/build/icu/source/config/mh-mingw Mon Jan 28 21:31:51 2008 -*************** -*** 54,59 **** ---- 54,62 ---- - STATIC_O = ao - SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR) - -+ STUB_SUFFIX=l -+ LIBICUDT= -L$(LIBDIR) -L$(top_builddir)/stubdata -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_MAJOR)l -+ - # Static library prefix and file extension - LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX) - A = lib -*************** -*** 71,77 **** - - # The #M# is used to delete lines for icu-config - # Current full path directory. -! CURR_FULL_DIR=$(shell pwd -W)#M# - # Current full path directory for use in source code in a -D compiler option. - CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# - ---- 74,83 ---- - - # The #M# is used to delete lines for icu-config - # Current full path directory. -! CURR_FULL_DIR=$(subst \,/,$(shell cygpath -aw .))#M# -! SRCDIRW:=$(SRCDIR) -! SRCDIR:=$(foreach p,$(SRCDIR),$(shell cygpath -u $(subst \,/,$(p))))#M# -! DATAFILEPATHS:=$(foreach p,$(DATAFILEPATHS),$(shell cygpath -u $(subst \,/,$(p))))#M# - # Current full path directory for use in source code in a -D compiler option. - CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# - -*** misc/icu/source/config/mh-solaris Fri Feb 24 20:31:14 2006 ---- misc/build/icu/source/config/mh-solaris Mon Jan 28 21:31:51 2008 -*************** -*** 18,34 **** - - ## Commands to link - ## For Sun Workshop, use CC to link to bring in C++ runtime -! LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) -! LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) - - ## Commands to make a shared library - SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -G -! SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G - - ## Compiler switch to embed a runtime search path - LD_RPATH= -R - LD_RPATH_PRE= - - #LIBRARY_PATH_PREFIX=/usr/lib/lwp: - - ## Compiler switch to embed a library name ---- 18,42 ---- - - ## Commands to link - ## For Sun Workshop, use CC to link to bring in C++ runtime -! ## For Sun Workshop, -norunpath stops compiler to record a useless RPATH -! LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath -! LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath - - ## Commands to make a shared library - SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -G -! SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath - - ## Compiler switch to embed a runtime search path - LD_RPATH= -R - LD_RPATH_PRE= - -+ ## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH -+ ENABLE_RPATH=YES -+ RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN' -+ -+ #SH# ENABLE_RPATH=YES -+ #SH# RPATHLDFLAGS="${LD_RPATH}'$$ORIGIN'" -+ - #LIBRARY_PATH_PREFIX=/usr/lib/lwp: - - ## Compiler switch to embed a library name -*** misc/icu/source/data/Makefile.in Sat Aug 12 00:22:24 2006 ---- misc/build/icu/source/data/Makefile.in Mon Jan 28 21:31:51 2008 -*************** -*** 344,350 **** - ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES) - @echo "Unpacking $(ICUDATA_SOURCE_ARCHIVE) and generating $@ (list of data files)" - @-$(RMV) $@ -! $(INVOKE) $(BINDIR)/icupkg -d $(BUILDDIR) --list -x \* $(ICUDATA_SOURCE_ARCHIVE) > $@ - else - @echo "$@" > $@ - endif ---- 344,350 ---- - ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES) - @echo "Unpacking $(ICUDATA_SOURCE_ARCHIVE) and generating $@ (list of data files)" - @-$(RMV) $@ -! $(INVOKE) $(BINDIR)/icupkg -d $(BUILDDIR) --list -x \* $(ICUDATA_SOURCE_ARCHIVE) | grep -v ".cnv" > $@ - else - @echo "$@" > $@ - endif -*** misc/icu/source/i18n/regexcmp.cpp Thu Feb 2 05:37:14 2006 ---- misc/build/icu/source/i18n/regexcmp.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 2,8 **** - // - // file: regexcmp.cpp - // -! // Copyright (C) 2002-2006 International Business Machines Corporation and others. - // All Rights Reserved. - // - // This file contains the ICU regular expression compiler, which is responsible ---- 2,8 ---- - // - // file: regexcmp.cpp - // -! // Copyright (C) 2002-2008 International Business Machines Corporation and others. - // All Rights Reserved. - // - // This file contains the ICU regular expression compiler, which is responsible -*************** -*** 1187,1200 **** - // 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); - } else { -! op = URX_BUILD(URX_BACKREF, groupNum); - } -- fRXPat->fCompiledPat->addElement(op, *fStatus); - } - break; - ---- 1187,1203 ---- - // 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. -! if (groupNum < 1) { -! error(U_REGEX_INVALID_BACK_REF); - } else { -! 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; - -*** misc/icu/source/i18n/rematch.cpp Thu Aug 25 20:02:20 2005 ---- misc/build/icu/source/i18n/rematch.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 6,12 **** - // - /* - ************************************************************************** -! * Copyright (C) 2002-2005 International Business Machines Corporation * - * and others. All rights reserved. * - ************************************************************************** - */ ---- 6,12 ---- - // - /* - ************************************************************************** -! * Copyright (C) 2002-2008 International Business Machines Corporation * - * and others. All rights reserved. * - ************************************************************************** - */ -*************** -*** 30,35 **** ---- 30,44 ---- - - 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,60 **** - } - if (fStack == NULL || fData == NULL) { - fDeferredStatus = U_MEMORY_ALLOCATION_ERROR; - } -- - reset(*RegexStaticSets::gStaticSets->fEmptyString); - } - ---- 62,70 ---- - } - if (fStack == NULL || fData == NULL) { - fDeferredStatus = U_MEMORY_ALLOCATION_ERROR; -+ } else { -+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY); - } - reset(*RegexStaticSets::gStaticSets->fEmptyString); - } - -*************** -*** 78,83 **** ---- 88,95 ---- - } - if (fStack == NULL || fData == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -+ } else { -+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY); - } - reset(input); - } -*************** -*** 102,107 **** ---- 114,121 ---- - } - if (fStack == NULL || fData == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; -+ } else { -+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY); - } - reset(*RegexStaticSets::gStaticSets->fEmptyString); - } -*************** -*** 1015,1020 **** ---- 1029,1042 ---- - 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,1037 **** - fp->fPatIdx = savePatIdx; - return (REStackFrame *)newFP; - } -! -! - //-------------------------------------------------------------------------------- - // - // MatchAt This is the actual matching engine. ---- 1052,1059 ---- - fp->fPatIdx = savePatIdx; - return (REStackFrame *)newFP; - } -! -! - //-------------------------------------------------------------------------------- - // - // MatchAt This is the actual matching engine. -*************** -*** 2262,2267 **** ---- 2284,2290 ---- - } - - if (U_FAILURE(status)) { -+ isMatch = FALSE; - break; - } - } -*** misc/icu/source/i18n/windtfmt.cpp Tue Aug 15 08:48:02 2006 ---- misc/build/icu/source/i18n/windtfmt.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 232,249 **** - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; - -! result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, STACK_BUFFER_SIZE); - - if (result == 0) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { - int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0); - - buffer = NEW_ARRAY(UChar, newLength); -! GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, newLength); - } - } - -! appendTo.append(buffer, (int32_t) wcslen(buffer)); - - if (buffer != stackBuffer) { - DELETE_ARRAY(buffer); ---- 232,249 ---- - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; - -! result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE); - - if (result == 0) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { - int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0); - - buffer = NEW_ARRAY(UChar, newLength); -! GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, reinterpret_cast<LPWSTR>(buffer), newLength); - } - } - -! appendTo.append(buffer, (int32_t) u_strlen(buffer)); - - if (buffer != stackBuffer) { - DELETE_ARRAY(buffer); -*************** -*** 258,275 **** - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; - -! result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, STACK_BUFFER_SIZE); - - if (result == 0) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { - int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0); - - buffer = NEW_ARRAY(UChar, newLength); -! GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, newLength); - } - } - -! appendTo.append(buffer, (int32_t) wcslen(buffer)); - - if (buffer != stackBuffer) { - DELETE_ARRAY(buffer); ---- 258,275 ---- - UChar stackBuffer[STACK_BUFFER_SIZE]; - UChar *buffer = stackBuffer; - -! result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE); - - if (result == 0) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { - int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0); - - buffer = NEW_ARRAY(UChar, newLength); -! GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, reinterpret_cast<LPWSTR>(buffer), newLength); - } - } - -! appendTo.append(buffer, (int32_t) u_strlen(buffer)); - - if (buffer != stackBuffer) { - DELETE_ARRAY(buffer); -*** misc/icu/source/i18n/winnmfmt.cpp Thu Aug 17 07:21:06 2006 ---- misc/build/icu/source/i18n/winnmfmt.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 86,95 **** - GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10); - fmt->Grouping = getGrouping(buf); - -! fmt->lpDecimalSep = NEW_ARRAY(UChar, 6); - GetLocaleInfoW(lcid, LOCALE_SDECIMAL, fmt->lpDecimalSep, 6); - -! fmt->lpThousandSep = NEW_ARRAY(UChar, 6); - GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6); - - GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); ---- 86,95 ---- - GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10); - fmt->Grouping = getGrouping(buf); - -! fmt->lpDecimalSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6)); - GetLocaleInfoW(lcid, LOCALE_SDECIMAL, fmt->lpDecimalSep, 6); - -! fmt->lpThousandSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6)); - GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6); - - GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); -*************** -*** 111,126 **** - GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf)); - fmt->Grouping = getGrouping(buf); - -! fmt->lpDecimalSep = NEW_ARRAY(UChar, 6); - GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP, fmt->lpDecimalSep, 6); - -! fmt->lpThousandSep = NEW_ARRAY(UChar, 6); - GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6); - - GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); - GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT)); - -! fmt->lpCurrencySymbol = NEW_ARRAY(UChar, 8); - GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8); - } - ---- 111,126 ---- - GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf)); - fmt->Grouping = getGrouping(buf); - -! fmt->lpDecimalSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6)); - GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP, fmt->lpDecimalSep, 6); - -! fmt->lpThousandSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6)); - GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6); - - GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT)); - GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT)); - -! fmt->lpCurrencySymbol = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 8)); - GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8); - } - -*************** -*** 290,296 **** - formatInfo.currency.Grouping = 0; - } - -! result = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, STACK_BUFFER_SIZE); - - if (result == 0) { - DWORD lastError = GetLastError(); ---- 290,296 ---- - formatInfo.currency.Grouping = 0; - } - -! result = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE); - - if (result == 0) { - DWORD lastError = GetLastError(); -*************** -*** 300,306 **** - - buffer = NEW_ARRAY(UChar, newLength); - buffer[0] = 0x0000; -! GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, newLength); - } - } - } else { ---- 300,306 ---- - - buffer = NEW_ARRAY(UChar, newLength); - buffer[0] = 0x0000; -! GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, reinterpret_cast<LPWSTR>(buffer), newLength); - } - } - } else { -*************** -*** 312,318 **** - formatInfo.number.Grouping = 0; - } - -! result = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, STACK_BUFFER_SIZE); - - if (result == 0) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { ---- 312,318 ---- - formatInfo.number.Grouping = 0; - } - -! result = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE); - - if (result == 0) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { -*************** -*** 320,331 **** - - buffer = NEW_ARRAY(UChar, newLength); - buffer[0] = 0x0000; -! GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, newLength); - } - } - } - -! appendTo.append(buffer, (int32_t) wcslen(buffer)); - - if (buffer != stackBuffer) { - DELETE_ARRAY(buffer); ---- 320,331 ---- - - buffer = NEW_ARRAY(UChar, newLength); - buffer[0] = 0x0000; -! GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, reinterpret_cast<LPWSTR>(buffer), newLength); - } - } - } - -! appendTo.append(buffer, (int32_t) u_strlen(buffer)); - - if (buffer != stackBuffer) { - DELETE_ARRAY(buffer); -*** misc/icu/source/layout/CoverageTables.cpp Sat May 8 01:28:42 2004 ---- misc/build/icu/source/layout/CoverageTables.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 44,49 **** ---- 44,53 ---- - le_uint16 count = SWAPW(glyphCount); - le_uint8 bit = OpenTypeUtilities::highBit(count); - le_uint16 power = 1 << bit; -+ -+ if (count == 0) -+ return -1; -+ - le_uint16 extra = count - power; - le_uint16 probe = power; - le_uint16 index = 0; -*** misc/icu/source/layout/DeviceTables.cpp Fri Jan 14 18:25:12 2005 ---- misc/build/icu/source/layout/DeviceTables.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 22,28 **** - le_uint16 format = SWAPW(deltaFormat) - 1; - le_int16 result = 0; - -! if (ppem >= start && ppem <= SWAPW(endSize)) { - le_uint16 sizeIndex = ppem - start; - le_uint16 bits = fieldBits[format]; - le_uint16 count = 16 / bits; ---- 22,29 ---- - le_uint16 format = SWAPW(deltaFormat) - 1; - le_int16 result = 0; - -! if (ppem >= start && ppem <= SWAPW(endSize) -! && format < sizeof(fieldBits)/sizeof(fieldBits[0])) { - le_uint16 sizeIndex = ppem - start; - le_uint16 bits = fieldBits[format]; - le_uint16 count = 16 / bits; -*** misc/icu/source/layout/GXLayoutEngine.cpp Fri Sep 2 20:22:10 2005 ---- misc/build/icu/source/layout/GXLayoutEngine.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 39,45 **** - return 0; - } - -! mapCharsToGlyphs(chars, offset, count, FALSE, rightToLeft, TRUE, glyphStorage, success); - - if (LE_FAILURE(success)) { - return 0; ---- 39,45 ---- - return 0; - } - -! mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, TRUE, glyphStorage, success); - - if (LE_FAILURE(success)) { - return 0; -*** misc/icu/source/layout/IndicClassTables.cpp Wed Aug 23 02:12:40 2006 ---- misc/build/icu/source/layout/IndicClassTables.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 94,100 **** - _dr, _db, _db, _db, _db, _xx, _xx, _l1, _dl, _xx, _xx, _s1, _s2, _vr, _xx, _xx, // 09C0 - 09CF - _xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _cn, _cn, _xx, _cn, // 09D0 - 09DF - _iv, _iv, _dv, _dv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 09E0 - 09EF -! _ct, _ct, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 09F0 - 09FA - }; - - static const IndicClassTable::CharClass punjCharClasses[] = ---- 94,100 ---- - _dr, _db, _db, _db, _db, _xx, _xx, _l1, _dl, _xx, _xx, _s1, _s2, _vr, _xx, _xx, // 09C0 - 09CF - _xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _cn, _cn, _xx, _cn, // 09D0 - 09DF - _iv, _iv, _dv, _dv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 09E0 - 09EF -! _rv, _ct, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx /* 09F0 - 09FA */ - }; - - static const IndicClassTable::CharClass punjCharClasses[] = -*************** -*** 120,125 **** ---- 120,138 ---- - _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0AE0 - 0AEF - }; - -+ #if 1 -+ static const IndicClassTable::CharClass oryaCharClasses[] = -+ { -+ _xx, _ma, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _iv, /* 0B00 - 0B0F */ -+ _iv, _xx, _xx, _iv, _iv, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _ct, _bb, /* 0B10 - 0B1F */ -+ _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _pb, /* 0B20 - 0B2F */ -+ _rb, _xx, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _xx, _xx, _nu, _xx, _dr, _da, /* 0B30 - 0B3F */ -+ _dr, _db, _db, _db, _xx, _xx, _xx, _dl, _s1, _xx, _xx, _s2, _s3, _vr, _xx, _xx, /* 0B40 - 0B4F */ -+ _xx, _xx, _xx, _xx, _xx, _xx, _da, _dr, _xx, _xx, _xx, _xx, _cn, _cn, _xx, _pb, /* 0B50 - 0B5F */ -+ _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, /* 0B60 - 0B6F */ -+ _xx, _bb /* 0B70 - 0B71 */ -+ }; -+ #else - static const IndicClassTable::CharClass oryaCharClasses[] = - { - _xx, _ma, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _iv, // 0B00 - 0B0F -*************** -*** 131,136 **** ---- 144,150 ---- - _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0B60 - 0B6F - _xx, _ct // 0B70 - 0B71 - }; -+ #endif - - static const IndicClassTable::CharClass tamlCharClasses[] = - { -*************** -*** 150,156 **** - _xx, _mp, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, // 0C00 - 0C0F - _iv, _xx, _iv, _iv, _iv, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, // 0C10 - 0C1F - _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _bb, // 0C20 - 0C2F -! _bb, _ct, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _xx, _xx, _xx, _xx, _da, _da, // 0C30 - 0C3F - _da, _dr, _dr, _dr, _dr, _xx, _a1, _da, _s1, _xx, _da, _da, _da, _vr, _xx, _xx, // 0C40 - 0C4F - _xx, _xx, _xx, _xx, _xx, _da, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0C50 - 0C5F - _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0C60 - 0C6F ---- 164,170 ---- - _xx, _mp, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, // 0C00 - 0C0F - _iv, _xx, _iv, _iv, _iv, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, // 0C10 - 0C1F - _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _bb, // 0C20 - 0C2F -! _bb, _bb, _bb, _bb, _xx, _bb, _bb, _bb, _bb, _bb, _xx, _xx, _xx, _xx, _da, _da, // 0C30 - 0C3F - _da, _dr, _dr, _dr, _dr, _xx, _a1, _da, _s1, _xx, _da, _da, _da, _vr, _xx, _xx, // 0C40 - 0C4F - _xx, _xx, _xx, _xx, _xx, _da, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0C50 - 0C5F - _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0C60 - 0C6F -*************** -*** 173,178 **** ---- 187,205 ---- - _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0CE0 - 0CEF - }; - -+ #if 1 -+ //use the pango char class table here -+ static const IndicClassTable::CharClass mlymCharClasses[] = -+ { -+ _xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _iv, _iv, /* 0D00 - 0D0F */ -+ _iv, _xx, _iv, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, /* 0D10 - 0D1F */ -+ _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _pb, /* 0D20 - 0D2F */ -+ _pb, _cn, _ct, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _dr, _dr, /* 0D30 - 0D3F */ -+ _dr, _dr, _dr, _dr, _xx, _xx, _dl, _dl, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, /* 0D40 - 0D4F */ -+ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _dr, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, /* 0D50 - 0D5F */ -+ _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx /* 0D60 - 0D6F */ -+ }; -+ #else - // FIXME: this is correct for old-style Malayalam (MAL) but not for reformed Malayalam (MLR) - // FIXME: should there be a REPH for old-style Malayalam? - static const IndicClassTable::CharClass mlymCharClasses[] = -*************** -*** 185,190 **** ---- 212,218 ---- - _xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0D50 - 0D5F - _iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0D60 - 0D6F - }; -+ #endif - - static const IndicClassTable::CharClass sinhCharClasses[] = - { -*************** -*** 232,238 **** - #define TAML_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH) - #define TELU_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3) - #define KNDA_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3) -! #define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH) - #define SINH_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT) - - // ---- 260,266 ---- - #define TAML_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH) - #define TELU_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3) - #define KNDA_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3) -! #define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT) - #define SINH_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT) - - // -*************** -*** 256,262 **** - - static const IndicClassTable mlymClassTable = {0x0D00, 0x0D6F, 3, MLYM_SCRIPT_FLAGS, mlymCharClasses, mlymSplitTable}; - -! static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 3, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable}; - - // - // IndicClassTable addresses ---- 284,290 ---- - - static const IndicClassTable mlymClassTable = {0x0D00, 0x0D6F, 3, MLYM_SCRIPT_FLAGS, mlymCharClasses, mlymSplitTable}; - -! static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 4, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable}; - - // - // IndicClassTable addresses -*** misc/icu/source/layout/IndicReordering.cpp Tue Apr 25 21:08:12 2006 ---- misc/build/icu/source/layout/IndicReordering.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 50,55 **** ---- 50,63 ---- - #define distFeatureMask 0x00010000UL - #define initFeatureMask 0x00008000UL - -+ // TODO: Find better names for these! -+ #define tagArray4 (loclFeatureMask | nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | blwmFeatureMask | abvmFeatureMask | distFeatureMask) -+ #define tagArray3 (pstfFeatureMask | tagArray4) -+ #define tagArray2 (halfFeatureMask | tagArray3) -+ #define tagArray1 (blwfFeatureMask | tagArray2) -+ #define tagArray0 (rphfFeatureMask | tagArray1) -+ -+ - class IndicReorderingOutput : public UMemory { - private: - le_int32 fOutIndex; -*************** -*** 154,159 **** ---- 162,188 ---- - fSMabove = fSMbelow = 0; - } - -+ void swapChars(int a, int b) -+ { -+ LEErrorCode success = LE_NO_ERROR; -+ LEUnicode temp_char; -+ le_uint32 temp_index; -+ FeatureMask temp_tag; -+ -+ temp_char = fOutChars[fOutIndex + b]; -+ temp_index = fGlyphStorage.getCharIndex(fOutIndex + b, success); -+ temp_tag = fGlyphStorage.getAuxData(fOutIndex + b, success); -+ -+ fOutChars[fOutIndex + b] = fOutChars[fOutIndex + a]; -+ le_uint32 toswap = fGlyphStorage.getCharIndex(fOutIndex + a, success); -+ fGlyphStorage.setCharIndex(fOutIndex + b, toswap, success); -+ fGlyphStorage.setAuxData(fOutIndex + b, tagArray3, success); -+ -+ fOutChars[fOutIndex + a] = temp_char; -+ fGlyphStorage.setCharIndex(fOutIndex + a, temp_index, success); -+ fGlyphStorage.setAuxData(fOutIndex + a, temp_tag, success); -+ } -+ - void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask charFeatures) - { - LEErrorCode success = LE_NO_ERROR; -*************** -*** 335,347 **** - C_DOTTED_CIRCLE = 0x25CC - }; - -- // TODO: Find better names for these! -- #define tagArray4 (loclFeatureMask | nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | blwmFeatureMask | abvmFeatureMask | distFeatureMask) -- #define tagArray3 (pstfFeatureMask | tagArray4) -- #define tagArray2 (halfFeatureMask | tagArray3) -- #define tagArray1 (blwfFeatureMask | tagArray2) -- #define tagArray0 (rphfFeatureMask | tagArray1) -- - static const FeatureMap featureMap[] = - { - {loclFeatureTag, loclFeatureMask}, ---- 364,369 ---- -*************** -*** 373,379 **** - {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, 12}, // 2 - consonant with nukta - {-1, 6, 1, -1, -1, -1, -1, -1, 2, 5, 9, 5, 5, 4, 12}, // 3 - consonant - {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, 7}, // 4 - consonant virama -! {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 5 - dependent vowels - {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 6 - vowel mark - {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, -1}, // 7 - consonant virama ZWJ, consonant ZWJ virama - {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1}, // 8 - independent vowels that can take a virama ---- 395,401 ---- - {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, 12}, // 2 - consonant with nukta - {-1, 6, 1, -1, -1, -1, -1, -1, 2, 5, 9, 5, 5, 4, 12}, // 3 - consonant - {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, 7}, // 4 - consonant virama -! {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1}, // 5 - dependent vowels - {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 6 - vowel mark - {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, -1}, // 7 - consonant virama ZWJ, consonant ZWJ virama - {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1}, // 8 - independent vowels that can take a virama -*************** -*** 629,634 **** ---- 651,670 ---- - output.writeChar(chars[i], i, tagArray4); - } - -+ /* for the special conjuction of Cons+0x0d4d+0x0d31 or Cons+0x0d4d+0x0d30 of Malayalam */ -+ if ((baseConsonant - 2 >= 0) && -+ (chars[baseConsonant - 1] == 0x0d4d) && -+ ((chars[baseConsonant] == 0x0d31) || -+ (chars[baseConsonant] == 0x0d30)) && -+ ((chars[baseConsonant - 2] >= 0x0d15) && -+ (chars[baseConsonant - 2] <= 0x0d39))) { -+ -+ output.swapChars(-1, -3); -+ -+ if (mpreFixups) -+ mpreFixups->reduce(); -+ } -+ - if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) != 0) { - output.writeMbelow(); - output.writeSMbelow(); // FIXME: there are no SMs in these scripts... -*** misc/icu/source/layout/LESwaps.h Thu Jun 23 00:39:36 2005 ---- misc/build/icu/source/layout/LESwaps.h Mon Jan 28 21:31:51 2008 -*************** -*** 2,7 **** ---- 2,8 ---- - /* - * - * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved -+ * with additions by Sun Microsystems 2002-2006 - * - */ - -*************** -*** 17,28 **** - - U_NAMESPACE_BEGIN - - /** -! * A convenience macro which invokes the swapWord member function - * from a concise call. - * - * @stable ICU 2.8 - */ - #if defined(U_IS_BIG_ENDIAN) - #if U_IS_BIG_ENDIAN - #define SWAPW(value) (value) ---- 18,38 ---- - - U_NAMESPACE_BEGIN - -+ // There exist popular font files which contain unaligned tables -+ // (e.g. "Watanabe Gothic"'s "mort" table) -+ // On some platforms unaligned memory accesses cause a crash. -+ // The ALLOW_UNALIGNED hack prevents these crashes by assuming that -+ // every use of the SWAPx macros in ICU's layout engine is intended -+ // for loading a big endian value and replaces them appropriately. -+ #define ALLOW_UNALIGNED_HACK -+ - /** -! * A convenience macro which invokes the swapLong member function - * from a concise call. - * - * @stable ICU 2.8 - */ -+ #ifndef ALLOW_UNALIGNED_HACK - #if defined(U_IS_BIG_ENDIAN) - #if U_IS_BIG_ENDIAN - #define SWAPW(value) (value) -*************** -*** 49,54 **** ---- 59,83 ---- - #define SWAPL(value) (LESwaps::isBigEndian() ? (value) : LESwaps::swapLong(value)) - #endif - -+ #else // ALLOW_UNALIGNED_HACK -+ -+ #define SWAPW(rValue) loadBigEndianWord(reinterpret_cast<const le_uint16&>(rValue)) -+ #define SWAPL(rValue) loadBigEndianLong(reinterpret_cast<const le_uint32&>(rValue)) -+ -+ inline le_uint16 loadBigEndianWord( const le_uint16& rValue ) -+ { -+ const le_uint8* p = reinterpret_cast<const le_uint8*>(&rValue); -+ return ((p[0] << 8) + p[1]); -+ } -+ -+ inline le_uint32 loadBigEndianLong( const le_uint32& rValue ) -+ { -+ const le_uint8* p = reinterpret_cast<const le_uint8*>(&rValue); -+ return ((p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]); -+ } -+ -+ #endif // ALLOW_UNALIGNED_HACK -+ - /** - * This class is used to access data which stored in big endian order - * regardless of the conventions of the platform. It has been designed -*** misc/icu/source/layout/MPreFixups.cpp Sat May 8 01:28:44 2004 ---- misc/build/icu/source/layout/MPreFixups.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 40,45 **** ---- 40,51 ---- - } - } - -+ void MPreFixups::reduce() -+ { -+ if (fFixupCount > 0) -+ fFixupCount--; -+ } -+ - void MPreFixups::apply(LEGlyphStorage &glyphStorage) - { - for (le_int32 fixup = 0; fixup < fFixupCount; fixup += 1) { -*** misc/icu/source/layout/MPreFixups.h Mon Apr 12 20:51:32 2004 ---- misc/build/icu/source/layout/MPreFixups.h Mon Jan 28 21:31:51 2008 -*************** -*** 31,36 **** ---- 31,38 ---- - - void apply(LEGlyphStorage &glyphStorage); - -+ void reduce(); -+ - private: - FixupData *fFixupData; - le_int32 fFixupCount; -*** misc/icu/source/stubdata/Makefile.in Fri Dec 2 11:21:34 2005 ---- misc/build/icu/source/stubdata/Makefile.in Mon Jan 28 21:31:51 2008 -*************** -*** 25,30 **** ---- 25,36 ---- - ## Target information - - TARGET_STUBNAME=$(DATA_STUBNAME) -+ ifeq (@platform_make_fragment_name@,mh-mingw) -+ FINAL_SO_TARGET=$(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_MAJOR)$(STUB_SUFFIX).$(SO) -+ %$(STUB_SUFFIX).$(SO): %$(SO_TARGET_VERSION_MAJOR)$(STUB_SUFFIX).$(SO) -+ $(RM) $@ && ln $< $@ -+ -+ endif - - ifneq ($(ENABLE_STATIC),) - TARGET = $(STUBDATA_LIBDIR)$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A) -*** misc/icu/source/test/intltest/loctest.cpp Thu Jul 6 03:50:04 2006 ---- misc/build/icu/source/test/intltest/loctest.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 4,9 **** ---- 4,10 ---- - * others. All Rights Reserved. - ********************************************************************/ - -+ #include "unicode/utypes.h" - #include "loctest.h" - #include "unicode/decimfmt.h" - #include "unicode/ucurr.h" -*** misc/icu/source/test/intltest/regextst.cpp Tue Jul 5 20:39:00 2005 ---- misc/build/icu/source/test/intltest/regextst.cpp Mon Jan 28 23:18:47 2008 -*************** -*** 1,6 **** - /******************************************************************** - * COPYRIGHT: -! * Copyright (c) 2002-2005, International Business Machines Corporation and - * others. All Rights Reserved. - ********************************************************************/ - ---- 1,6 ---- - /******************************************************************** - * COPYRIGHT: -! * Copyright (c) 2002-2008, International Business Machines Corporation and - * others. All Rights Reserved. - ********************************************************************/ - -*************** -*** 66,71 **** ---- 66,75 ---- - case 6: name = "PerlTests"; - if (exec) PerlTests(); - break; -+ case 7: name = "Bug 6149"; -+ if (exec) Bug6149(); -+ break; -+ - - - default: name = ""; -*************** -*** 1639,1644 **** ---- 1643,1661 ---- - - } - -+ -+ // Invalid Back Reference \0 -+ // For ICU 3.8 and earlier -+ // For ICU versions newer than 3.8, \0 introduces an octal escape. -+ // -+ #ifndef _MSC_VER -+ // erAck: 2008-01-28T23:16+0100 MSVC doesn't digest the escaped backslash and -+ // mumbles something about -+ // error C2501: 'regex_err' : missing storage-class or type specifiers -+ // error C2078: too many initializers -+ // We're not interested in fixing that deficiency just for a testcase. -+ REGEX_ERR("(ab)\\0", 1, 6, U_REGEX_INVALID_BACK_REF); -+ #endif - - //------------------------------------------------------------------------------- - // -*************** -*** 2119,2124 **** ---- 2136,2161 ---- - } - - -+ //-------------------------------------------------------------- -+ // -+ // 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 */ - -*** misc/icu/source/test/intltest/regextst.h Wed Dec 3 07:58:28 2003 ---- misc/build/icu/source/test/intltest/regextst.h Mon Jan 28 21:31:51 2008 -*************** -*** 1,6 **** - /******************************************************************** - * COPYRIGHT: -! * Copyright (c) 2002-2003, International Business Machines Corporation and - * others. All Rights Reserved. - ********************************************************************/ - ---- 1,6 ---- - /******************************************************************** - * COPYRIGHT: -! * Copyright (c) 2002-2008, International Business Machines Corporation and - * others. All Rights Reserved. - ********************************************************************/ - -*************** -*** 30,35 **** ---- 30,36 ---- - 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); -*** misc/icu/source/test/intltest/tsputil.cpp Wed Jul 19 00:18:10 2006 ---- misc/build/icu/source/test/intltest/tsputil.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 4,9 **** ---- 4,10 ---- - * others. All Rights Reserved. - ********************************************************************/ - -+ #include "unicode/utypes.h" - #include "tsputil.h" - - #include <float.h> // DBL_MAX, DBL_MIN -*** misc/icu/source/test/intltest/uobjtest.cpp Thu Mar 23 01:54:12 2006 ---- misc/build/icu/source/test/intltest/uobjtest.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 4,9 **** ---- 4,10 ---- - * others. All Rights Reserved. - ********************************************************************/ - -+ #include "unicode/utypes.h" - #include "uobjtest.h" - #include "cmemory.h" // UAlignedMemory - #include <string.h> -*** misc/icu/source/test/intltest/ustrtest.cpp Tue Dec 28 22:13:54 2004 ---- misc/build/icu/source/test/intltest/ustrtest.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 4,9 **** ---- 4,10 ---- - * others. All Rights Reserved. - ********************************************************************/ - -+ #include "unicode/utypes.h" - #include "ustrtest.h" - #include "unicode/unistr.h" - #include "unicode/uchar.h" -*** misc/icu/source/tools/icupkg/icupkg.cpp Fri Jul 21 23:17:52 2006 ---- misc/build/icu/source/tools/icupkg/icupkg.cpp Mon Jan 28 21:31:51 2008 -*************** -*** 332,337 **** ---- 332,341 ---- - return (UBool)(len>0 && 0==strcmp(filename+len, ".dat")); - } - -+ #ifdef __MINGW32__ -+ int _CRT_glob=0; -+ #endif -+ - extern int - main(int argc, char *argv[]) { - const char *pname, *sourcePath, *destPath, *inFilename, *outFilename, *outComment; -*** misc/icu/source/tools/pkgdata/make.c Wed Mar 22 09:14:10 2006 ---- misc/build/icu/source/tools/pkgdata/make.c Tue Nov 13 13:03:52 2007 -*************** -*** 172,178 **** ---- 172,180 ---- - "MODE=%s\n" - "MAKEFILE=%s\n" - "ENTRYPOINT=%s\n" -+ #ifndef __MINGW32__ - "include %s\n" -+ #endif - "\n\n\n", - o->shortName, - o->libName, -*************** -*** 182,189 **** ---- 184,195 ---- - o->srcDir, - o->mode, - o->makeFile, -+ #ifdef __MINGW32__ -+ o->entryName); -+ #else - o->entryName, - o->options); -+ #endif - T_FileStream_writeLine(f, linebuf); - - /* TEMP_PATH and TARG_PATH will be empty if the respective dir is . */ -*************** -*** 233,238 **** ---- 239,252 ---- - - pkg_writeCharListWrap(f, o->filePaths, " ", " \\\n",0); - -+ #ifdef __MINGW32__ -+ sprintf(linebuf, "\n" -+ "include %s\n" -+ "\n\n\n", -+ o->options); -+ T_FileStream_writeLine(f, linebuf); -+ #endif -+ - T_FileStream_writeLine(f, "\n\n\n"); - - } -*************** -*** 396,402 **** ---- 410,420 ---- - T_FileStream_writeLine(f, "BASE_OBJECTS=$(NAME)_dat.o\n"); - T_FileStream_writeLine(f, "\n"); - T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS)\n"); -+ #ifdef __MINGW32__ -+ T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCMN) -c -e $(ENTRYPOINT) -n $(NAME) -s $(SRCDIRW) -t dat -d $(TEMP_DIR) 0 $(CMNLIST)\n"); -+ #else - T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCMN) -c -e $(ENTRYPOINT) -n $(NAME) -s $(SRCDIR) -t dat -d $(TEMP_DIR) 0 $(CMNLIST)\n"); -+ #endif - T_FileStream_writeLine(f, "\n"); - T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME)_dat.o : $(TEMP_DIR)/$(NAME).dat\n"); - T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCCODE) $(GENCCODE_ASSEMBLY) -n $(NAME) -e $(ENTRYPOINT) -d $(TEMP_DIR) $<\n"); diff --git a/icu/icu-4.0.patch b/icu/icu-4.0.patch new file mode 100644 index 000000000000..63a0e8395dcd --- /dev/null +++ b/icu/icu-4.0.patch @@ -0,0 +1,58 @@ +--- misc/icu/source/common/putil.c 2008-07-01 03:41:12.000000000 +0200 ++++ misc/build/icu/source/common/putil.c 2008-09-02 07:01:29.335795765 +0200 +@@ -52,7 +52,7 @@ + Poorly upgraded Solaris machines can't have this defined. + Cleanly installed Solaris can use this #define. + */ +-#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L) ++#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) + #define _XOPEN_SOURCE_EXTENDED 1 + #endif + +--- misc/icu/source/config/mh-linux 2007-12-12 19:57:36.000000000 +0100 ++++ misc/build/icu/source/config/mh-linux 2008-05-21 18:59:13.000000000 +0200 +@@ -20,6 +20,14 @@ + LD_RPATH= + LD_RPATH_PRE = -Wl,-rpath, + ++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH ++## (incl. the C++ runtime libs potentially found in the URE lib dir): ++ENABLE_RPATH=YES ++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib' ++ ++#SH# ENABLE_RPATH=YES ++#SH# RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'" ++ + ## These are the library specific LDFLAGS + LDFLAGSICUDT=-nodefaultlibs -nostdlib + +--- misc/icu/source/config/mh-solaris 2007-12-12 19:57:36.000000000 +0100 ++++ misc/build/icu/source/config/mh-solaris 2008-05-21 19:02:45.000000000 +0200 +@@ -18,17 +18,24 @@ + + ## Commands to link + ## For Sun Workshop, use CC to link to bring in C++ runtime +-LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) +-LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) ++LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath ++LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath + + ## Commands to make a shared library + SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -G +-SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G ++SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath + + ## Compiler switch to embed a runtime search path + LD_RPATH= -R + LD_RPATH_PRE= + ++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH ++ENABLE_RPATH=YES ++RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN' ++ ++#SH# ENABLE_RPATH=YES ++#SH# RPATHLDFLAGS="${LD_RPATH}'$$ORIGIN'" ++ + #LIBRARY_PATH_PREFIX=/usr/lib/lwp: + + ## Compiler switch to embed a library name diff --git a/icu/icuversion.mk b/icu/icuversion.mk index 1ddc801a1921..7c0389093fb3 100755 --- a/icu/icuversion.mk +++ b/icu/icuversion.mk @@ -29,9 +29,9 @@ # #************************************************************************* # major -ICU_MAJOR=3 +ICU_MAJOR=4 # minor -ICU_MINOR=6 +ICU_MINOR=0 # micro ICU_MICRO=0 diff --git a/icu/makefile.mk b/icu/makefile.mk index 30becc3eb226..14628c907fec 100644 --- a/icu/makefile.mk +++ b/icu/makefile.mk @@ -85,6 +85,10 @@ icu_LDFLAGS+=-Wl,-z,noexecstack icu_CFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS) icu_CXXFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS) +BUILD_ACTION_SEP=; +# remove conversion and transliteration data to reduce binary size. +CONFIGURE_ACTION=rm data/mappings/ucm*.mk data/translit/trn*.mk $(BUILD_ACTION_SEP) + # until someone introduces SOLARIS 64-bit builds .IF "$(OS)"=="SOLARIS" DISABLE_64BIT=--enable-64bit-libs=no @@ -96,7 +100,7 @@ LDFLAGSADD += -Wl,--hash-style=both CONFIGURE_DIR=source -CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)' +CONFIGURE_ACTION+=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS)" ./configure --enable-layout --enable-static --enable-shared=yes $(DISABLE_64BIT)' #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no CONFIGURE_FLAGS= @@ -138,9 +142,9 @@ OUT2BIN= \ CONFIGURE_DIR=source .IF "$(COM)"=="GCC" .IF "$(USE_MINGW)"=="cygwin" -CONFIGURE_ACTION=sh -c 'CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="-L$(COMPATH)/lib/mingw -L$(COMPATH)/lib/w32api -L$(COMPATH)$/lib" LIBS="-lmingwthrd" ./configure --build=i586-pc-mingw32 --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no' +CONFIGURE_ACTION=+sh -c 'CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="-L$(COMPATH)/lib/mingw -L$(COMPATH)/lib/w32api -L$(COMPATH)$/lib" LIBS="-lmingwthrd" ./configure --build=i586-pc-mingw32 --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no' .ELSE -CONFIGURE_ACTION=sh -c 'CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="-L$(COMPATH)$/lib" LIBS="-lmingwthrd" ./configure --build=i586-pc-mingw32 --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no' +CONFIGURE_ACTION=+sh -c 'CFLAGS="-O -D_MT" CXXFLAGS="-O -D_MT" LDFLAGS="-L$(COMPATH)$/lib" LIBS="-lmingwthrd" ./configure --build=i586-pc-mingw32 --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no' .ENDIF #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no @@ -170,8 +174,6 @@ OUT2BIN= \ .ELSE .IF "$(USE_SHELL)"=="4nt" BUILD_ACTION_SEP=^ -.ELSE # "$(USE_SHELL)"=="4nt" -BUILD_ACTION_SEP=; .ENDIF # "$(USE_SHELL)"=="4nt" BUILD_DIR=source .IF "full_debug" == "" diff --git a/icu/makefiles.zip b/icu/makefiles.zip Binary files differindex 8fc1ed9429a8..86ed8ca6d9a1 100644 --- a/icu/makefiles.zip +++ b/icu/makefiles.zip diff --git a/icu/prj/d.lst b/icu/prj/d.lst index 8d5a9194b07b..c5d777277ead 100644 --- a/icu/prj/d.lst +++ b/icu/prj/d.lst @@ -9,11 +9,11 @@ mkdir: %_DEST%\inc%_EXT%\external\unicode ..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a ..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT%\*.lib -..\%__SRC%\bin\icudt36.dll %_DEST%\bin%_EXT%\icudt36l.dll -..\%__SRC%\bin\icuin36.dll %_DEST%\bin%_EXT%\icuin36.dll -..\%__SRC%\bin\icule36.dll %_DEST%\bin%_EXT%\icule36.dll -..\%__SRC%\bin\icutu36.dll %_DEST%\bin%_EXT%\icutu36.dll -..\%__SRC%\bin\icuuc36.dll %_DEST%\bin%_EXT%\icuuc36.dll +..\%__SRC%\bin\icudt40.dll %_DEST%\bin%_EXT%\icudt40.dll +..\%__SRC%\bin\icuin40.dll %_DEST%\bin%_EXT%\icuin40.dll +..\%__SRC%\bin\icule40.dll %_DEST%\bin%_EXT%\icule40.dll +..\%__SRC%\bin\icutu40.dll %_DEST%\bin%_EXT%\icutu40.dll +..\%__SRC%\bin\icuuc40.dll %_DEST%\bin%_EXT%\icuuc40.dll ..\%__SRC%\bin\genccode %_DEST%\bin%_EXT%\genccode ..\%__SRC%\bin\genccode.exe %_DEST%\bin%_EXT%\genccode.exe |