FreeBSD Bugzilla – Attachment 101709 Details for
Bug 141324
[UPDATE] devel/icu: update to 4.2.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 32.12 KB, created by
Andrei V. Lavreniyuk
on 2009-12-09 16:30:01 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Andrei V. Lavreniyuk
Created:
2009-12-09 16:30:01 UTC
Size:
32.12 KB
patch
obsolete
>diff -ruN icu.bak/Makefile icu/Makefile >--- icu.bak/Makefile 2009-09-15 17:11:00.000000000 +0300 >+++ icu/Makefile 2009-12-09 14:58:26.000000000 +0200 >@@ -6,8 +6,7 @@ > # > > PORTNAME= icu >-PORTVERSION= 3.8.1 >-PORTREVISION= 2 >+PORTVERSION= 4.2.1 > CATEGORIES= devel > MASTER_SITES= SF/${PORTNAME}/ICU4C/${PORTVERSION} > DISTNAME= icu4c-${PORTVERSION:S/./_/g} >diff -ruN icu.bak/distinfo icu/distinfo >--- icu.bak/distinfo 2008-02-07 00:00:00.000000000 +0200 >+++ icu/distinfo 2009-12-09 10:56:17.000000000 +0200 >@@ -1,3 +1,3 @@ >-MD5 (icu4c-3_8_1-src.tgz) = a827dbc9d909febd4ec39b90386868ba >-SHA256 (icu4c-3_8_1-src.tgz) = 16dda09dff3f770e629313a4c50a82fee88baf87d89a3bb2a28806be07766cee >-SIZE (icu4c-3_8_1-src.tgz) = 10998841 >+MD5 (icu4c-4_2_1-src.tgz) = e3738abd0d3ce1870dc1fd1f22bba5b1 >+SHA256 (icu4c-4_2_1-src.tgz) = 814de31e1413df945cdd34939b424c4cf7a94d1c481f2d44c99c8ca52b288063 >+SIZE (icu4c-4_2_1-src.tgz) = 13161131 >diff -ruN icu.bak/files/patch-CVE-2007-4770 icu/files/patch-CVE-2007-4770 >--- icu.bak/files/patch-CVE-2007-4770 2008-02-18 00:00:00.000000000 +0200 >+++ icu/files/patch-CVE-2007-4770 1970-01-01 03:00:00.000000000 +0300 >@@ -1,304 +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 -ruN icu.bak/files/patch-Makefile.in icu/files/patch-Makefile.in >--- icu.bak/files/patch-Makefile.in 1970-01-01 03:00:00.000000000 +0300 >+++ icu/files/patch-Makefile.in 2009-12-09 14:34:25.000000000 +0200 >@@ -0,0 +1,10 @@ >+--- Makefile.in 2009-07-01 21:51:26.000000000 +0300 >++++ Makefile.in 2009-12-09 13:25:16.000000000 +0200 >+@@ -130,7 +130,6 @@ >+ @$(MKINSTALLDIRS) $(DESTDIR)$(sbindir) >+ $(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@ >+ $(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs >+- $(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh >+ $(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html >+ $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config >+ $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc >diff -ruN icu.bak/files/patch-cc-flags icu/files/patch-cc-flags >--- icu.bak/files/patch-cc-flags 2005-10-20 00:00:00.000000000 +0300 >+++ icu/files/patch-cc-flags 1970-01-01 03:00:00.000000000 +0300 >@@ -1,27 +0,0 @@ >---- runConfigureICU Fri Jan 16 17:26:40 2004 >-+++ runConfigureICU Mon Nov 15 11:05:50 2004 >-@@ -289,7 +289,7 @@ >- *BSD) >-- THE_OS="BSD" >-+ THE_OS="$platform" >-- THE_COMP="the GNU C++" >-- CC=gcc; export CC >-- CXX=g++; export CXX >-+ CC=${CC:=cc}; export CC >-+ CXX=${CXX:=c++}; export CXX >-+ THE_COMP="`$CC -v | fgrep -i ver`" # works with icc and gcc at least >- ;; >- QNX) >-@@ -358,12 +358,4 @@ >- if test $release -eq 1 >- then >-- if test "$RELEASE_CFLAGS" = "" >-- then >-- case $CC in >-- gcc|*/gcc|*-gcc-*|*/*-gcc-*) >-- RELEASE_CFLAGS=-O3 >-- ;; >-- esac >-- fi >- if test "$RELEASE_CFLAGS" != "" >- then >diff -ruN icu.bak/files/patch-format icu/files/patch-format >--- icu.bak/files/patch-format 2009-03-25 00:00:00.000000000 +0200 >+++ icu/files/patch-format 1970-01-01 03:00:00.000000000 +0300 >@@ -1,210 +0,0 @@ >-Fix self-test(s) breaking, when build happens on days with other than >-24-hours (such as when daylight saving time kicks in). See: >- >- http://www.freebsd.org/cgi/query-pr.cgi?pr=128521 >- http://www.icu-project.org/trac/ticket/6018 >- >-Index: /icu/trunk/source/i18n/calendar.cpp >-=================================================================== >---- i18n/calendar.cpp (revision 22978) >-+++ i18n/calendar.cpp (revision 23166) >-@@ -1,5 +1,5 @@ >- /* >- ******************************************************************************* >--* Copyright (C) 1997-2007, International Business Machines Corporation and * >-+* Copyright (C) 1997-2008, International Business Machines Corporation and * >- * others. All Rights Reserved. * >- ******************************************************************************* >-@@ -74,6 +74,12 @@ >- >- #if defined( U_DEBUG_CALSVC ) || defined (U_DEBUG_CAL) >-+ >-+/** >-+ * fldName was removed as a duplicate implementation. >-+ * use udbg_ services instead, >-+ * which depend on include files and library from ../tools/ctestfw >-+ */ >-+#include "unicode/udbgutil.h" >- #include <stdio.h> >-- >- >- /** >-@@ -83,12 +89,8 @@ >- * @internal >- */ >--#error fldName() has been removed. Please use udbg_ucal_fieldName() from libctestfw instead. The following code might work. >-- >--static const char* fldName(UCalendarDateFields f) { >-- const char *udbg_ucal_fieldName(int32_t fld); >-- return udbg_ucal_fieldName((int32_t)f); >--} >-- >-- >-+ >-+const char* fldName(UCalendarDateFields f) { >-+ return udbg_enumName(UDBG_UCalendarDateFields, (int32_t)f); >-+} >- >- #if UCAL_DEBUG_DUMP >-Index: /icu/trunk/source/i18n/reldtfmt.cpp >-=================================================================== >---- i18n/reldtfmt.cpp (revision 22561) >-+++ i18n/reldtfmt.cpp (revision 23166) >-@@ -1,5 +1,5 @@ >- /* >- ******************************************************************************* >--* Copyright (C) 2007, International Business Machines Corporation and * >-+* Copyright (C) 2007-2008, International Business Machines Corporation and * >- * others. All Rights Reserved. * >- ******************************************************************************* >-@@ -304,8 +304,13 @@ >- return 0; >- } >-- // TODO: Cache the nowCal to avoid heap allocs? >-+ // TODO: Cache the nowCal to avoid heap allocs? Would be difficult, don't know the calendar type >- Calendar *nowCal = cal.clone(); >- nowCal->setTime(Calendar::getNow(), status); >-- int32_t dayDiff = nowCal->fieldDifference(cal.getTime(status), Calendar::DATE, status); >-+ >-+ // For the day difference, we are interested in the difference in the (modified) julian day number >-+ // which is midnight to midnight. Using fieldDifference() is NOT correct here, because >-+ // 6pm Jan 4th to 10am Jan 5th should be considered "tomorrow". >-+ int32_t dayDiff = cal.get(UCAL_JULIAN_DAY, status) - nowCal->get(UCAL_JULIAN_DAY, status); >-+ >- delete nowCal; >- return dayDiff; >-Index: /icu/trunk/source/test/intltest/dadrfmt.cpp >-=================================================================== >---- test/intltest/dadrfmt.cpp (revision 22493) >-+++ test/intltest/dadrfmt.cpp (revision 23166) >-@@ -1,5 +1,5 @@ >- /******************************************************************** >- * COPYRIGHT: >-- * Copyright (c) 1997-2007, International Business Machines Corporation and >-+ * Copyright (c) 1997-2008, International Business Machines Corporation and >- * others. All Rights Reserved. >- ********************************************************************/ >-@@ -94,4 +94,5 @@ >- UnicodeString kMILLIS("MILLIS="); // TODO: static >- UnicodeString kRELATIVE_MILLIS("RELATIVE_MILLIS="); // TODO: static >-+ UnicodeString kRELATIVE_ADD("RELATIVE_ADD:"); // TODO: static >- >- UErrorCode status = U_ZERO_ERROR; >-@@ -170,5 +171,10 @@ >- } >- } >-- >-+ >-+ Calendar *cal = Calendar::createInstance(loc, status); >-+ if(U_FAILURE(status)) { >-+ errln("case %d: could not create calendar from %s", n, calLoc); >-+ } >-+ >- // parse 'date' >- if(date.startsWith(kMILLIS)) { >-@@ -180,4 +186,28 @@ >- useDate = TRUE; >- fromDate = udbg_stoi(millis) + now; >-+ } else if(date.startsWith(kRELATIVE_ADD)) { >-+ UnicodeString add = UnicodeString(date, kRELATIVE_ADD.length()); // "add" is a string indicating which fields to add >-+ if(fromSet.parseFrom(add, status)<0 || U_FAILURE(status)) { >-+ errln("case %d: could not parse date as RELATIVE_ADD calendar fields: %s", n, u_errorName(status)); >-+ continue; >-+ } >-+ logln("Parsing ..\n"); >-+ useDate=TRUE; >-+ cal->clear(); >-+ cal->setTime(now, status); >-+ for (int q=0; q<UCAL_FIELD_COUNT; q++) { >-+ if (fromSet.isSet((UCalendarDateFields)q)) { >-+ int32_t oldv = cal->get((UCalendarDateFields)q, status); >-+ cal->add((UCalendarDateFields)q, >-+ fromSet.get((UCalendarDateFields)q), status); >-+ int32_t newv = cal->get((UCalendarDateFields)q, status); >-+ logln("adding %d to %s ..went from %d to %d\n", fromSet.get((UCalendarDateFields)q), udbg_enumName(UDBG_UCalendarDateFields, q), oldv, newv); >-+ } >-+ } >-+ fromDate = cal->getTime(status); >-+ if(U_FAILURE(status)) { >-+ errln("case %d: could not apply date as RELATIVE_ADD calendar fields: %s", n, u_errorName(status)); >-+ continue; >-+ } >- } else if(fromSet.parseFrom(date, status)<0 || U_FAILURE(status)) { >- errln("case %d: could not parse date as calendar fields: %s", n, u_errorName(status)); >-@@ -185,8 +215,4 @@ >- } >- >-- Calendar *cal = Calendar::createInstance(loc, status); >-- if(U_FAILURE(status)) { >-- errln("case %d: could not create calendar from %s", n, calLoc); >-- } >- // now, do it. >- if (fmt) { >-Index: /icu/trunk/source/test/testdata/format.txt >-=================================================================== >---- test/testdata/format.txt (revision 22885) >-+++ test/testdata/format.txt (revision 23166) >-@@ -1,3 +1,3 @@ >--// Copyright (c) 2007 International Business Machines >-+// Copyright (c) 2007-2008 International Business Machines >- // Corporation and others. All Rights Reserved. >- format:table(nofallback) { >-@@ -23,5 +23,8 @@ >- // locale: locale including calendar type >- // spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG' >-- // date: either 'MILLIS=####' where #### is an unsigned long (millis), or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale >-+ // date: either 'MILLIS=####' where #### is millis, >-+ // or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale >-+ // or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis >-+ // or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time >- // str: the expected unicode string >- Cases { >-@@ -61,5 +64,5 @@ >- "en_US@calendar=gregorian", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=86410000", // one day from now >-+ "RELATIVE_ADD:DATE=1", // one day from now >- "Tomorrow" >- }, >-@@ -67,5 +70,5 @@ >- "en_US@calendar=gregorian", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=0", // one day before now >-+ "RELATIVE_MILLIS=0", // today >- "Today" >- }, >-@@ -73,5 +76,5 @@ >- "en_US@calendar=gregorian", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=-86410000", // one day before now >-+ "RELATIVE_ADD:DATE=-1", // one day before now >- "Yesterday" >- }, >-@@ -79,5 +82,5 @@ >- "mt_MT@calendar=gregorian", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=86410000", // one day from now >-+ "RELATIVE_ADD:DATE=1", // one day from now >- "Għada" >- }, >-@@ -85,5 +88,5 @@ >- "mt_MT@calendar=gregorian", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=0", // one day before now >-+ "RELATIVE_MILLIS=0", // today >- "Illum" >- }, >-@@ -91,5 +94,5 @@ >- "mt_MT@calendar=gregorian", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=-86410000", // one day before now >-+ "RELATIVE_ADD:DATE=-1", // one day before now >- "Lbieraħ" >- }, >-@@ -97,5 +100,5 @@ >- "ru", >- "DATE=RELATIVE_SHORT", >-- "RELATIVE_MILLIS=-172810000", // 2 days ago >-+ "RELATIVE_ADD:DATE=-2", // 2 days ago >- "ÐозавÑеÑа" >- }, >diff -ruN icu.bak/files/patch-install icu/files/patch-install >--- icu.bak/files/patch-install 2008-02-07 00:00:00.000000000 +0200 >+++ icu/files/patch-install 1970-01-01 03:00:00.000000000 +0300 >@@ -1,8 +0,0 @@ >---- Makefile.in 2007-12-12 13:58:06.000000000 -0500 >-+++ Makefile.in 2008-01-28 15:20:56.000000000 -0500 >-@@ -126,5 +126,4 @@ >- $(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@ >- $(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs >-- $(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh >- $(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html >- $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config >diff -ruN icu.bak/files/patch-putil icu/files/patch-putil >--- icu.bak/files/patch-putil 2008-02-07 00:00:00.000000000 +0200 >+++ icu/files/patch-putil 1970-01-01 03:00:00.000000000 +0300 >@@ -1,9 +0,0 @@ >---- common/putil.c 2007-12-12 13:57:26.000000000 -0500 >-+++ common/putil.c 2008-01-28 13:04:02.000000000 -0500 >-@@ -577,5 +577,5 @@ >- /* These platforms are likely to use Olson timezone IDs. */ >- #define CHECK_LOCALTIME_LINK 1 >--#if defined(U_LINUX) >-+#if defined(U_LINUX) || defined(U_BSD) >- #define TZDEFAULT "/etc/localtime" >- #define TZZONEINFO "/usr/share/zoneinfo/" >diff -ruN icu.bak/files/patch-regexcmp.cpp icu/files/patch-regexcmp.cpp >--- icu.bak/files/patch-regexcmp.cpp 1970-01-01 03:00:00.000000000 +0300 >+++ icu/files/patch-regexcmp.cpp 2009-12-09 14:33:31.000000000 +0200 >@@ -0,0 +1,32 @@ >+--- i18n/regexcmp.cpp 2009-07-01 21:50:10.000000000 +0300 >++++ i18n/regexcmp.cpp 2009-12-09 13:32:52.000000000 +0200 >+@@ -1264,17 +1264,19 @@ >+ // 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); >++ 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); >+ } >+- fRXPat->fCompiledPat->addElement(op, *fStatus); >+- } >+- break; >+- >++ } >++ break; >+ >+ case doPossessivePlus: >+ // Possessive ++ quantifier. >diff -ruN icu.bak/files/patch-runConfigureICU icu/files/patch-runConfigureICU >--- icu.bak/files/patch-runConfigureICU 1970-01-01 03:00:00.000000000 +0300 >+++ icu/files/patch-runConfigureICU 2009-12-09 14:34:04.000000000 +0200 >@@ -0,0 +1,32 @@ >+--- runConfigureICU 2009-07-01 21:51:26.000000000 +0300 >++++ runConfigureICU 2009-12-09 13:27:11.000000000 +0200 >+@@ -254,10 +254,10 @@ >+ RELEASE_CXXFLAGS='-O2' >+ ;; >+ *BSD) >+- THE_OS="BSD" >+- THE_COMP="the GNU C++" >+- CC=gcc; export CC >+- CXX=g++; export CXX >++ THE_OS="$platform" >++ CC=${CC:=cc}; export CC >++ CXX=${CXX:=c++}; export CXX >++ THE_COMP="`$CC -v | fgrep -i ver`" # works with icc and gcc at least >+ ;; >+ TRU64V5.1/CXX) >+ THE_OS="OSF1" >+@@ -302,14 +302,6 @@ >+ >+ if test $release -eq 1 >+ then >+- if test "$RELEASE_CFLAGS" = "" >+- then >+- case $CC in >+- gcc|*/gcc|*-gcc-*|*/*-gcc-*) >+- RELEASE_CFLAGS=-O3 >+- ;; >+- esac >+- fi >+ if test "$RELEASE_CFLAGS" != "" >+ then >+ CFLAGS="$CFLAGS $RELEASE_CFLAGS" >diff -ruN icu.bak/pkg-plist icu/pkg-plist >--- icu.bak/pkg-plist 2008-02-07 00:00:00.000000000 +0200 >+++ icu/pkg-plist 2009-12-09 14:58:59.000000000 +0200 >@@ -1,5 +1,6 @@ > bin/derb > bin/genbrk >+bin/gencfu > bin/gencnval > bin/genctd > bin/genrb >@@ -7,12 +8,6 @@ > bin/makeconv > bin/pkgdata > bin/uconv >-sbin/genccode >-sbin/gencmn >-sbin/gensprep >-sbin/genuca >-sbin/icupkg >-sbin/icuswap > include/layout/LEFontInstance.h > include/layout/LEGlyphFilter.h > include/layout/LEGlyphStorage.h >@@ -25,16 +20,22 @@ > include/layout/ParagraphLayout.h > include/layout/RunArrays.h > include/layout/loengine.h >-@dirrm include/layout >+include/layout/playout.h >+include/layout/plruns.h > include/unicode/basictz.h >+include/unicode/bms.h >+include/unicode/bmsearch.h > include/unicode/brkiter.h >+include/unicode/bytestream.h > include/unicode/calendar.h > include/unicode/caniter.h > include/unicode/chariter.h > include/unicode/choicfmt.h > include/unicode/coleitr.h > include/unicode/coll.h >+include/unicode/colldata.h > include/unicode/curramt.h >+include/unicode/currpinf.h > include/unicode/currunit.h > include/unicode/datefmt.h > include/unicode/dbbi.h >@@ -42,8 +43,12 @@ > include/unicode/decimfmt.h > include/unicode/docmain.h > include/unicode/dtfmtsym.h >+include/unicode/dtintrv.h >+include/unicode/dtitvfmt.h >+include/unicode/dtitvinf.h > include/unicode/dtptngen.h > include/unicode/dtrule.h >+include/unicode/errorcode.h > include/unicode/fieldpos.h > include/unicode/fmtable.h > include/unicode/format.h >@@ -55,9 +60,12 @@ > include/unicode/msgfmt.h > include/unicode/normlzr.h > include/unicode/numfmt.h >+include/unicode/numsys.h > include/unicode/parseerr.h > include/unicode/parsepos.h > include/unicode/platform.h >+include/unicode/plurfmt.h >+include/unicode/plurrule.h > include/unicode/ppalmos.h > include/unicode/putil.h > include/unicode/pwin32.h >@@ -72,11 +80,16 @@ > include/unicode/simpletz.h > include/unicode/smpdtfmt.h > include/unicode/sortkey.h >+include/unicode/std_string.h > include/unicode/strenum.h >+include/unicode/stringpiece.h > include/unicode/stsearch.h > include/unicode/symtable.h > include/unicode/tblcoll.h > include/unicode/timezone.h >+include/unicode/tmunit.h >+include/unicode/tmutamt.h >+include/unicode/tmutfmt.h > include/unicode/translit.h > include/unicode/tzrule.h > include/unicode/tztrans.h >@@ -91,6 +104,7 @@ > include/unicode/ucnv.h > include/unicode/ucnv_cb.h > include/unicode/ucnv_err.h >+include/unicode/ucnvsel.h > include/unicode/ucol.h > include/unicode/ucoleitr.h > include/unicode/uconfig.h >@@ -129,6 +143,7 @@ > include/unicode/uset.h > include/unicode/usetiter.h > include/unicode/ushape.h >+include/unicode/uspoof.h > include/unicode/usprep.h > include/unicode/ustdio.h > include/unicode/ustream.h >@@ -146,42 +161,51 @@ > include/unicode/utypes.h > include/unicode/uversion.h > include/unicode/vtzone.h >-@dirrm include/unicode >-lib/icu/%%ICUVER%%/Makefile.inc >-lib/icu/current >+lib/icu/%%ICUVER%% /Makefile.inc >+lib/icu/%%ICUVER%% /pkgdata.inc > lib/icu/Makefile.inc >-lib/libsicudata.a >-lib/libicudata.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/icu/current >+lib/icu/pkgdata.inc > lib/libicudata.so > lib/libicudata.so.%%ICUMAJOR%% >-lib/libsicuuc.a >-lib/libicuuc.so.%%ICUMAJOR%%.%%ICUMINOR%% >-lib/libicuuc.so >-lib/libicuuc.so.%%ICUMAJOR%% >-lib/libsicui18n.a >-lib/libicui18n.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/libicudata.so.%%ICUMAJOR%%.%%ICUMINOR%% > lib/libicui18n.so > lib/libicui18n.so.%%ICUMAJOR%% >-lib/libsicule.a >-lib/libicule.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/libicui18n.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/libicuio.so >+lib/libicuio.so.%%ICUMAJOR%% >+lib/libicuio.so.%%ICUMAJOR%%.%%ICUMINOR%% > lib/libicule.so > lib/libicule.so.%%ICUMAJOR%% >-lib/libsiculx.a >-lib/libiculx.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/libicule.so.%%ICUMAJOR%%.%%ICUMINOR%% > lib/libiculx.so > lib/libiculx.so.%%ICUMAJOR%% >-lib/libsicuio.a >-lib/libicuio.so.%%ICUMAJOR%%.%%ICUMINOR%% >-lib/libicuio.so >-lib/libicuio.so.%%ICUMAJOR%% >-lib/libicutu.so.%%ICUMAJOR%%.%%ICUMINOR%% >-lib/libicutu.so.%%ICUMAJOR%% >+lib/libiculx.so.%%ICUMAJOR%%.%%ICUMINOR%% > lib/libicutu.so >-%%DATADIR%%/%%ICUVER%%/config/mh-bsd-gcc >-%%DATADIR%%/%%ICUVER%%/mkinstalldirs >-%%DATADIR%%/%%ICUVER%%/license.html >-@dirrm %%DATADIR%%/%%ICUVER%%/config >-@dirrm %%DATADIR%%/%%ICUVER%% >+lib/libicutu.so.%%ICUMAJOR%% >+lib/libicutu.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/libicuuc.so >+lib/libicuuc.so.%%ICUMAJOR%% >+lib/libicuuc.so.%%ICUMAJOR%%.%%ICUMINOR%% >+lib/libsicudata.a >+lib/libsicui18n.a >+lib/libsicuio.a >+lib/libsicule.a >+lib/libsiculx.a >+lib/libsicutu.a >+lib/libsicuuc.a >+sbin/genccode >+sbin/gencmn >+sbin/gensprep >+sbin/genuca >+sbin/icupkg >+%%DATADIR%%/%%ICUVER%% /config/mh-bsd-gcc >+%%DATADIR%%/%%ICUVER%% /license.html >+%%DATADIR%%/%%ICUVER%% /mkinstalldirs >+@dirrm %%DATADIR%%/%%ICUVER%% /config >+@dirrm %%DATADIR%%/%%ICUVER%% > @dirrm %%DATADIR%% >-@dirrm lib/icu/%%ICUVER%% >+@dirrm lib/icu/%%ICUVER%% > @dirrm lib/icu >+@dirrm include/unicode >+@dirrm include/layout
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 141324
: 101709 |
101710