diff options
Diffstat (limited to 'Build/source/libs/icu/icu-49.1-PATCHES')
18 files changed, 0 insertions, 1925 deletions
diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/ChangeLog b/Build/source/libs/icu/icu-49.1-PATCHES/ChangeLog deleted file mode 100644 index bd944f81e78..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/ChangeLog +++ /dev/null @@ -1,308 +0,0 @@ -2012-06-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-82-Indic-bugfix (new): Revert ICU SVN commit 26090. - -2012-04-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-02-FreeBSD (new): Build fix for FreeBSD. - Reported by Nikola Lecic <nikola.lecic@anthesphoria.net> - -2012-04-01 Peter Breitenlohner <peb@mppmu.mpg.de> - - Reduced size of data/in/icudt49l.dat, removing - curr/* - lang/* - region/* - rfc*.spp - zone/* - -2012-03-23 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-01-Cygwin (new): Build fix for Cygwin. - Reported by Ken Brown <kbrow1i@gmail.com>. - -2012-03-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - Updated icu-49.1 source tree (icu4c-49_1-src.tgz) from: - http://download.icu-project.org/files/icu4c/49.1/ - - * patch-{01,02,03,04}-*: Removed, now in icu-49.1. - - * patch-{05,07,08,09,11,12,13,14,40,50,60,70}-*: Adapted. - -2012-03-21 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-05-m4-quoting (new): Correct m4 quoting in configure.in. - -2012-03-17 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-04-FreeBSD (new): From ICU. - -2012-03-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-40-auxParam: Fix a typo (auxillary => auxiliary). - * patch-70-Arabic: Remove useless changes of original code. - -2012-03-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-03-U_PF_UNKNOWN (new): Bug fix for the case that - U_PLATFORM == U_PF_UNKNOWN as, e.g., for FreeBSD (why?). - Reported by Hilmar Preusse <hille42@web.de>. - -2012-03-03 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-49.1 source tree (icu4c-49_rc-src.tgz) from: - http://download.icu-project.org/files/icu4c/49rc/ - - * patch-40-LESwaps, patch-81-Indic: Removed, now in icu-49.1. - - * patch-01-UVoidFunction (new): Bug fix for '--disable-dyload'. - * patch-02-AC_CHECK_TOOL (new): Bug fix for cross compilation. - - * TL-Changes, patch-07-configure-utf16-string, - patch-08-avoid-rebuild, patch-09-generated, - patch-11-CURR_FULL_DIR, patch-12-mingw, patch-13-STATIC_PREFIX, - patch-14-GENCCODE_ASSEMBLY, patch-50-Vertical, patch-60-KernPair, - patch-70-Arabic: Adapted. - * patch-05-auxParam (removed): Renamed ... - * patch-40-auxParam (new): ... to this and adapted. - -2011-08-31 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-40-LESwaps: See ICU Ticket #8657, comment 11. - -2011-08-09 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-4.8.1 source tree (icu4c-4_8_1-src.tgz) from: - http://download.icu-project.org/files/icu4c/4.8.1/ - - * patch-06-mingw: Removed, included in icu-4.8.1. - - * TL-Changes, patch-05-auxParam, - patch-07-configure-utf16-string, patch-08-avoid-rebuild, - patch-09-generated, patch-11-CURR_FULL_DIR, patch-12-mingw, - patch-13-STATIC_PREFIX, patch-14-GENCCODE_ASSEMBLY, - patch-50-Vertical, patch-60-KernPair, patch-70-Arabic, - patch-81-Indic: Adapted. - - * patch-40-LESwaps: Rewritten, see ICU Ticket #8657, comment 7. - -2011-06-19 Karl Berry <karl@tug.org> - - * patch-40-LESwaps: revert to ICU 4.4, as 4.6 and 4.8 code - is broken on BigEndian machines. - http://bugs.icu-project.org/trac/ticket/8657 - tlbuild mail, 17 Jun 2011 17:10:38 - -2011-05-26 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-4.8 source tree (icu4c-4_8-src.tgz) from: - http://download.icu-project.org/files/icu4c/4.8/ - - * patch-80-Indic: Removed (not needed). - - * TL-Changes, patch-05-auxParam, patch-06-mingw, - patch-07-configure-utf16-string, patch-08-avoid-rebuild, - patch-09-generated, patch-11-CURR_FULL_DIR, patch-12-mingw, - patch-13-STATIC_PREFIX, patch-14-GENCCODE_ASSEMBLY, - patch-50-Vertical, patch-60-KernPair, patch-70-Arabic, - patch-81-Indic: Adapted. - -2011-05-11 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-14-GENCCODE_ASSEMBLY (new): For amd64-kfreebsd. - -2011-05-09 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-13-STATIC_PREFIX (new): Never use libsicuxxx.a. - -2011-02-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-81-Indic (new): IndicReordering.*: Respect array bounds. - - * patch-05-auxParam: Fix a bug introduced when importing icu-4.6. - -2010-12-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-11-CURR_FULL_DIR: Correctly handle CURR_FULL_DIR when - cross compiling. - -2010-12-02 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-4.6 source tree (icu4c-4_6-src.tgz) from: - http://download.icu-project.org/files/icu4c/4.6/ - - * patch-10-cross-TOOLEXEEXT, patch-13-remove-extra-token: - All removed, included in icu-4.6. - - * TL-Changes, patch-05-auxParam, patch-07-configure-utf16-string, - patch-08-avoid-rebuild, patch-11-CURR_FULL_DIR, patch-12-mingw, - patch-50-Vertical, patch-60-KernPair, patch-70-Arabic, - patch-80-Indic: Adapted. - - * patch-06-mingw (new): MinGW32 is Windows, not Cygwin. - * patch-09-generated (new): Regenerate configure. - -2010-04-08 Karl Berry <karl@tug.org> - - * patch-07-configure-utf16-string: new patch so we can disable the - check for UTF16 string literals. See comments in our - libs/icu/configure.ac. - -2010-03-31 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-4.4 source tree (icu4c-4_4-src.tgz) from: - http://download.icu-project.org/files/icu4c/4.4/ - - * fix-case-insensitive, patch-07-cygwin, patch-09-cross, - patch-20-fix-gt_ge, patch-21-fix-not_aligned, - patch-22-fix-JK-adjust_for_marks, patch-23-fix-JK-GlyphPos: - All removed, included in icu-4.4. - - * TL-Changes, patch-05-auxParam, patch-08-avoid-rebuild, - patch-10-cross-TOOLEXEEXT, patch-11-CURR_FULL_DIR, - patch-12-mingw, patch-50-Vertical, patch-60-KernPair, - patch-70-Arabic, patch-80-Indic: Adapted. - - * patch-13-remove-extra-token (new): Avoid compiler warning. - -2010-02-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - Fixes for Linux => MinGW32 cross compilation. - * patch-10-cross-TOOLEXEEXT (new): Fix a cross compilation typo. - * patch-11-CURR_FULL_DIR (new): Fix for cross compilation on - a Unix like system. Does MinGW32 have pwd? - * patch-12-mingw (new): Changes in config/mh-mingw (libraries - named as for everyone else). - -2009-10-28 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-09-cross (new): Modify AC_CHECK_64BIT_LIBS in aclocal.m4 - to allow cross compilation. - -2009-10-26 Peter Breitenlohner <peb@mppmu.mpg.de> - - * patch-08-avoid-rebuild (new): Modify data/Makefile.in such - that libsicudata.a is not rebuilt again and again. - -2009-10-25 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-4.2.1 source tree (icu4c-4_2_1-src.tgz) from: - http://download.icu-project.org/files/icu4c/4.2.1/ - - * patch-02-syntax, patch-40-Shaping (both removed): Obsolete. - - * TL-Changes, patch-80-Indic: Adapted. - -2009-10-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-4.0.1 source tree (icu4c-4_0_1-src.tgz) from: - http://download.icu-project.org/files/icu4c/4.0.1/ - - * patch-01-backport-4.0.1, patch-01-too_much-4.0.1, - patch-06-build-fix, patch-06-partial-4.0.1, - patch-10-backport-4.0.1, patch-11-partial-4.0.1, - patch-99-test (all removed): Obsolete. - - * TL-Changes, patch-40-Shaping, patch-80-Indic: Adapted. - -2009-10-23 Peter Breitenlohner <peb@mppmu.mpg.de> - - Imported icu-3.8.1 source tree (icu4c-3_8_1-src.tgz) from: - http://download.icu-project.org/files/icu4c/3.8.1/ - - * TL-Changes (new): Description of modifications of source tree. - - * fix-case-insensitive (new): Shell script used to rename - source/layout/Features.h => ICUFeatures.h (required for Cygwin) - and modify references to that file accordingly. - - * patch-01-backport-4.0.1 (new): Replace layout/CanonData.cpp, - layout/GlyphPositionAdjustments.cpp, - layout/IndicReordering.{cpp,h}, layout/LELanguages.h, - layout/LESwaps.h, layout/OpenTypeLayoutEngine.cpp, - layout/ScriptAndLanguage.cpp, layout/ThaiLayoutEngine.{cpp,h}, - layoutex/ParagraphLayout.cpp, and test/letest/sfnt.h by their - 4.0.1 versions. - * patch-01-too_much-4.0.1 (new): Undo one change in - layoutex/ParagraphLayout.cpp. - - * patch-02-syntax (new): Fix some dubious syntax in - layoutex/ParagraphLayout.cpp. - - * patch-05-auxParam (new): Handling of extension for XeTeX in - layout/AlternateSubstSubtables.cpp, - layout/GlyphIterator.{cpp,h}, - layout/LEGlyphStorage.{cpp,h}, - and layout/OpenTypeLayoutEngine.{cpp,h}. - - * patch-06-build-fix (new): Build fix in common/ubidi.c. - * patch-06-partial-4.0.1 (new): Partial backport of common/putil.c - from 4.0.1. - * patch-07-cygwin (new): Changes in config/mh-cygwin (libraries - named as for everyone else). - - * patch-10-backport-4.0.1 (new): Replace - layout/ScriptAndLanguageTags.{cpp,h} by their 4.0.1 versions. - * patch-11-partial-4.0.1 (new): Backport of some changes in - layout/LayoutEngine.cpp from 4.0.1. - - Bug fixes originally by: Jonathan Kew <jfkthame@googlemail.com> - * patch-20-fix-gt_ge (new): In layout/ClassDefinitionTables.cpp. - * patch-21-fix-not_aligned (new): In layout/ExtensionSubtables.cpp. - * patch-22-fix-JK-adjust_for_marks (new): In - layout/MarkToBasePosnSubtables.cpp. - * patch-23-fix-JK-GlyphPos (new): In - layout/OpenTypeLayoutEngine.cpp. - - * patch-40-Shaping (new): Update shaping type data in - layout/ShapingTypeData.cpp to Unicode 5.1. - - * patch-50-Vertical (new): Handling vertical writing in - layout/LEFontInstance.h and layout/ValueRecords.cpp. - - * patch-60-KernPair (new): Modified handling of kerns in - layout/LEFontInstance.{cpp,h} and layout/LayoutEngine.cpp. - - * patch-70-Arabic (new): Add Draft Mongolian shaping classes - in layout/ArabicShaping.{cpp,h} and LayoutEngine.cpp. - - * patch-80-Indic (new): Backport of some changes in - layout/IndicClassTables.cpp from 4.0.1 and in - layout/IndicReordering.cpp from 4.2.1. - - * patch-99-test (new): Changes from TeX Live icu-xetex in - test/letest/PortableFontInstance.{cpp,h}, - test/letest/gendata.{cpp,xml}, test/letest/letest.{cpp,xml}. - - These modifications and patches of icu-3.8.1/ reproduce the - previous icu-xetex/ source tree (except for test data). - -2009-10-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - Slightly rearranged the icu-xetex/ source tree. - - * layout/LELanguages.h: Changed some comments, from 4.0.1. - - * layout/LEGlyphStorage.{cpp,h}, - layout/OpenTypeLayoutEngine.cpp: Renamed adoptAuxDataArrays - back to adoptAuxDataArray as it was in 3.8.1. - - * layout/LEGlyphStorage.h: The XeTeX modifications have added - an additional parameter for setAuxData, however, in most cases - the corresponding argument is NULL. Added an inline definition - of the original method. - layout/ArabicShaping.cpp, layout/HanLayoutEngine.cpp, - layout/HangulLayoutEngine.cpp, layout/IndicReordering.cpp, - layout/KhmerReordering.cpp, layout/LayoutEngine.cpp, - layout/TibetanReordering.cpp: Restored the original 3.8.1 use of - setAuxData without the additional argument NULL. - - * data/Makefile.in: Restored 3.8.1 version, Autoconf >=2.61 ensures - a posix shell making, these changes obsolete. - - * layout/ScriptAndLanguageTags.{cpp,h}: Backport from 4.0.1, - additional tags and changed comments. - - * layout/OpenTypeLayoutEngine.cpp: Removed some obsolete code, - surrounded by #if 0...#endif. diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/MakeShapingTypeData.pl b/Build/source/libs/icu/icu-49.1-PATCHES/MakeShapingTypeData.pl deleted file mode 100644 index e8e5a105082..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/MakeShapingTypeData.pl +++ /dev/null @@ -1,90 +0,0 @@ -#! /usr/bin/perl - -# script to create ShapingTypeData.cpp from UCD file DerivedJoiningType.txt -# written by JK, 2007-01-16 -# This script may be distributed and used freely - -%types = ( - 'C' => 1, - 'D' => 2, - 'R' => 4, - 'T' => 5 -); - -@ranges = (); - -sub addRange -{ - my ($s, $e, $t) = @_; - - if ((scalar @ranges > 0) - && ($ranges[$#ranges]->[2] == $t) - && ($ranges[$#ranges]->[1] == $s - 1)) { - $ranges[$#ranges]->[1] = $e; - return; - } - - push @ranges, [ $s, $e, $t ]; -} - -# read the DerivedJoiningType.txt file and remember all the ranges -while (<>) { - if (m/^([0-9A-F]{4})\s+; ([CDRT]) \#/) { - # single codepoint - $start = hex $1; - $end = $start; - $type = $types{$2}; - addRange($start, $end, $type); - next; - } - if (m/^([0-9A-F]{4})\.\.([0-9A-F]{4})\s+; ([CDRT]) \#/) { - # range of codes - $start = hex $1; - $end = hex $2; - $type = $types{$3}; - addRange($start, $end, $type); - next; - } -} - -# write the ShapingTypeData.cpp file - -$date = `date +"%F %T %Z"`; -print <<__EOT__; -/* - * - * (C) Copyright SIL International. 2007-2008. - * (C) Copyright IBM Corp. 1998-2005. - * Based on code distributed with ICU 3.6 - * and the Unicode Character Database, version 5.1.0d10 - * - * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS - * YOU REALLY KNOW WHAT YOU'RE DOING. - * - * Generated on: $date - */ - -#include "LETypes.h" -#include "ArabicShaping.h" - -U_NAMESPACE_BEGIN - -const le_uint8 ArabicShaping::shapingTypeTable[] = { -__EOT__ - -printf " 0x%02X, 0x%02X, /* classFormat */\n", 0, 2; -printf " 0x%02X, 0x%02X, /* classRangeCount */\n", - (scalar @ranges) / 256, (scalar @ranges) % 256; -print join(",\n", map { - sprintf " 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X", - $_->[0] / 256, $_->[0] % 256, - $_->[1] / 256, $_->[1] % 256, - $_->[2] / 256, $_->[2] % 256, - } sort { $a->[0] <=> $b->[0] } @ranges); - -print <<__EOT__; - -}; - -U_NAMESPACE_END -__EOT__ diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/TL-Changes b/Build/source/libs/icu/icu-49.1-PATCHES/TL-Changes deleted file mode 100644 index 105c53e00d9..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/TL-Changes +++ /dev/null @@ -1,22 +0,0 @@ -Changes applied to the icu-49.1/ tree as obtained from: - http://download.icu-project.org/files/icu4c/49rc/icu4c-49_1-src.tgz - -Regenerated: - configure -- should use autoconf 2.68. - -Updated: - source/config.guess - source/config.sub - source/install-sh - -Removed empty dirs: - layout/unicode - test/perf/results - -Reduced size of data/in/icudt49l.dat - icupkg -r 'curr/*' IN OUT - icupkg -r 'lang/*' IN OUT - icupkg -r 'region/*' IN OUT - icupkg -r 'rfc*.spp' IN OUT - icupkg -r 'zone/*' IN OUT - diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-01-Cygwin b/Build/source/libs/icu/icu-49.1-PATCHES/patch-01-Cygwin deleted file mode 100644 index d7c27e905f7..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-01-Cygwin +++ /dev/null @@ -1,30 +0,0 @@ - Build fix for Cygwin. - - Since <windows.h> is not included for Cygwin, we - can't use the WIN32 API. - - With U_ENABLE_DYLOAD=1: enable plugins for Cygwin. - - With U_ENABLE_DYLOAD=0: can't use WIN32 API (HMODULE undeclared). - -diff -ur icu-49.1.orig/source/common/putil.cpp icu-49.1/source/common/putil.cpp ---- icu-49.1.orig/source/common/putil.cpp 2012-03-21 18:35:10.000000000 +0100 -+++ icu-49.1/source/common/putil.cpp 2012-03-23 18:37:30.000000000 +0100 -@@ -2100,7 +2100,7 @@ - - #if U_ENABLE_DYLOAD - --#if HAVE_DLOPEN && !U_PLATFORM_HAS_WIN32_API -+#if HAVE_DLOPEN && !U_PLATFORM_USES_ONLY_WIN32_API - - #if HAVE_DLFCN_H - -@@ -2181,7 +2181,7 @@ - - #endif - --#elif U_PLATFORM_HAS_WIN32_API -+#elif U_PLATFORM_USES_ONLY_WIN32_API - - U_INTERNAL void * U_EXPORT2 - uprv_dl_open(const char *libName, UErrorCode *status) { diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-02-FreeBSD b/Build/source/libs/icu/icu-49.1-PATCHES/patch-02-FreeBSD deleted file mode 100644 index f6232e31374..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-02-FreeBSD +++ /dev/null @@ -1,14 +0,0 @@ - The FreeBSD declaration of timezone conflicts with Posix. - -diff -ur icu-49.1.orig/source/common/putilimp.h icu-49.1/source/common/putilimp.h ---- icu-49.1.orig/source/common/putilimp.h 2012-03-21 18:35:16.000000000 +0100 -+++ icu-49.1/source/common/putilimp.h 2012-04-24 11:38:09.000000000 +0200 -@@ -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(__FreeBSD_kernel__) -+ /* not defined */ - #elif U_PLATFORM == U_PF_OS400 - /* not defined */ - #else diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-05-m4-quoting b/Build/source/libs/icu/icu-49.1-PATCHES/patch-05-m4-quoting deleted file mode 100644 index b9ab520b25d..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-05-m4-quoting +++ /dev/null @@ -1,19 +0,0 @@ - Correct m4 quoting. - Use AC_LANG_PROGRAM to create a linkable program. - - Without this we get an error msg - sed: can't read conftest.c: No such file or directory - - -diff -ur icu-49.1.orig/source/configure.in icu-49.1/source/configure.in ---- icu-49.1.orig/source/configure.in 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/configure.in 2012-03-22 09:54:23.000000000 +0100 -@@ -285,7 +285,7 @@ - ;; - esac - -- AC_LINK_IFELSE(AC_LANG_SOURCE, CHECK_STATIC_OPT_FLAG=yes, CHECK_STATIC_OPT_FLAG=no, ) -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [CHECK_STATIC_OPT_FLAG=yes], [CHECK_STATIC_OPT_FLAG=no]) - AC_MSG_RESULT($CHECK_STATIC_OPT_FLAG) - if test "$CHECK_STATIC_OPT_FLAG" = no; then - CPPFLAGS="${OLD_CPPFLAGS}" diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-07-configure-utf16-string b/Build/source/libs/icu/icu-49.1-PATCHES/patch-07-configure-utf16-string deleted file mode 100644 index b53fcf80547..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-07-configure-utf16-string +++ /dev/null @@ -1,39 +0,0 @@ -diff -ur icu-49.1.orig/source/configure.in icu-49.1/source/configure.in ---- icu-49.1.orig/source/configure.in 2012-03-22 09:54:23.000000000 +0100 -+++ icu-49.1/source/configure.in 2012-03-22 09:57:38.000000000 +0100 -@@ -912,7 +912,27 @@ - fi - fi - -+AC_MSG_CHECKING([whether to check for UTF-16 string literal support]) -+enabled=yes -+U_ENABLE_UTF16_STRING_CHECK=1 -+AC_ARG_ENABLE(utf16-string-check, -+ [ --enable-utf16-string-check enable testing for UTF-16 string literal support [default=yes]], -+ [ case "${enableval}" in -+ yes|"") enabled=yes; U_ENABLE_UTF16_STRING_CHECK=1 ;; -+ no) enabled=no; U_ENABLE_UTF16_STRING_CHECK=0 ;; -+ *) ;; -+ esac], -+) -+AC_MSG_RESULT($enabled) -+AC_SUBST(U_ENABLE_UTF16_STRING_CHECK) -+ - AC_MSG_CHECKING([for UTF-16 string literal support]) -+if test $U_ENABLE_UTF16_STRING_CHECK = 0; then -+U_CHECK_UTF16_STRING=0 -+U_CHECK_GNUC_UTF16_STRING=0 -+CHECK_UTF16_STRING_RESULT="check disabled" -+ -+else # do the UTF16 literal checks - U_CHECK_UTF16_STRING=1 - CHECK_UTF16_STRING_RESULT="unknown" - -@@ -997,6 +1017,7 @@ - fi - fi - fi -+fi - AC_SUBST(U_CHECK_GNUC_UTF16_STRING) - - AC_MSG_RESULT($CHECK_UTF16_STRING_RESULT) diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-08-avoid-rebuild b/Build/source/libs/icu/icu-49.1-PATCHES/patch-08-avoid-rebuild deleted file mode 100644 index 183fd38d162..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-08-avoid-rebuild +++ /dev/null @@ -1,79 +0,0 @@ - Avoid to run pkgdata again and again. - -diff -ur icu-49.1.orig/source/data/Makefile.in icu-49.1/source/data/Makefile.in ---- icu-49.1.orig/source/data/Makefile.in 2012-03-21 18:38:02.000000000 +0100 -+++ icu-49.1/source/data/Makefile.in 2012-03-22 10:00:52.000000000 +0100 -@@ -105,7 +105,7 @@ - .PHONY : all all-local all-recursive install install-local install-files \ - install-recursive clean clean-local clean-recursive distclean \ - distclean-local distclean-recursive dist dist-local dist-recursive \ --check check-local check-recursive build-local clean-resindex build-dir icudata.jar \ -+check check-local check-recursive clean-resindex icudata.jar \ - check-exhaustive - - ## Clear suffix list -@@ -135,6 +135,7 @@ - -test -z *.map || $(RMV) *.map - - clean-local: cleanpackage cleanfiles clean-map -+ $(RMV) build-dir* build-local packagedata uni-core-data - - cleanfiles: - test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) -@@ -182,6 +183,7 @@ - else - $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR) - endif -+ echo timestamp > $@ - - ## Install ICU data. - install-local: $(PKGDATA_LIST) ./icupkg.inc packagedata $(OS390INSTALL) -@@ -426,6 +428,7 @@ - ifneq ($(INCLUDE_UNI_CORE_DATA),) - MISC_FILES_LIST+=$(UNI_CORE_DATA) - build-local: uni-core-data -+ echo timestamp > $@ - endif - - ##################################################### -@@ -436,6 +439,7 @@ - - ifeq ($(ICUDATA_SOURCE_ARCHIVE),) - build-local: build-dir $(SO_VERSION_DATA) $(ALL_FILES) $(PKGDATA_LIST) $(OS390LIST) -+ echo timestamp > $@ - $(PKGDATA_LIST): $(SRCLISTDEPS) - @echo "generating $@ (list of data files)" - @-$(RMV) $@ -@@ -453,6 +457,7 @@ - done; - else - build-local: build-dir $(SO_VERSION_DATA) $(PKGDATA_LIST) $(OS390LIST) -+ echo timestamp > $@ - $(PKGDATA_LIST): $(SRCLISTDEPS) $(ICUDATA_SOURCE_ARCHIVE) - ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES) - @echo "Unpacking $(ICUDATA_SOURCE_ARCHIVE) and generating $@ (list of data files)" -@@ -467,6 +472,8 @@ - $(BUILD_DIRS): build-dir - - build-dir: -+ @-$(RMV) $@ -+ echo timestamp > $@.tmp - @list='$(BUILD_DIRS)'; \ - for dir in $$list; do \ - if ! test -d $$dir; then \ -@@ -474,6 +481,7 @@ - $(MKINSTALLDIRS) $(BUILD_DIRS); \ - fi; \ - done -+ mv $@.tmp $@ - - # The | is an order-only prerequisite. This helps when the -j option is used, - # and we don't want the files to be built before the directories are built. -@@ -771,6 +779,7 @@ - # when updating the Unicode data. - uni-core-data: build-dir $(UNI_CORE_TARGET_DATA) - @echo Unicode .icu files built to $(BUILDDIR) -+ echo timestamp > $@ - - # Build the ICU4J icudata.jar. - # Command line: diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-09-generated b/Build/source/libs/icu/icu-49.1-PATCHES/patch-09-generated deleted file mode 100644 index c2ed94ab4f6..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-09-generated +++ /dev/null @@ -1,94 +0,0 @@ -diff -ur icu-49.1.orig/source/configure icu-49.1/source/configure ---- icu-49.1.orig/source/configure 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/configure 2012-03-22 09:59:10.000000000 +0100 -@@ -623,6 +623,7 @@ - EXTRAS_TRUE - U_CHECK_UTF16_STRING - U_CHECK_GNUC_UTF16_STRING -+U_ENABLE_UTF16_STRING_CHECK - U_HAVE_WCSCPY - U_HAVE_WCHAR_H - U_TIMEZONE -@@ -754,6 +755,7 @@ - enable_rpath - enable_threads - enable_weak_threads -+enable_utf16_string_check - enable_extras - enable_icuio - enable_layout -@@ -1401,6 +1403,7 @@ - --enable-rpath use rpath when linking default is only if necessary - --enable-threads build ICU with thread safety default=yes - --enable-weak-threads weakly reference the threading library default=no -+ --enable-utf16-string-check enable testing for UTF-16 string literal support default=yes - --enable-extras build ICU extras default=yes - --enable-icuio build ICU's icuio library default=yes - --enable-layout build ICU's layout library default=yes -@@ -5266,13 +5269,24 @@ - ;; - esac - -- if ac_fn_c_try_link "$LINENO"; then : -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : - CHECK_STATIC_OPT_FLAG=yes - else - CHECK_STATIC_OPT_FLAG=no - fi - rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext -+ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_STATIC_OPT_FLAG" >&5 - $as_echo "$CHECK_STATIC_OPT_FLAG" >&6; } - if test "$CHECK_STATIC_OPT_FLAG" = no; then -@@ -7103,8 +7117,31 @@ - fi - fi - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to check for UTF-16 string literal support" >&5 -+$as_echo_n "checking whether to check for UTF-16 string literal support... " >&6; } -+enabled=yes -+U_ENABLE_UTF16_STRING_CHECK=1 -+# Check whether --enable-utf16-string-check was given. -+if test "${enable_utf16_string_check+set}" = set; then : -+ enableval=$enable_utf16_string_check; case "${enableval}" in -+ yes|"") enabled=yes; U_ENABLE_UTF16_STRING_CHECK=1 ;; -+ no) enabled=no; U_ENABLE_UTF16_STRING_CHECK=0 ;; -+ *) ;; -+ esac -+fi -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enabled" >&5 -+$as_echo "$enabled" >&6; } -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UTF-16 string literal support" >&5 - $as_echo_n "checking for UTF-16 string literal support... " >&6; } -+if test $U_ENABLE_UTF16_STRING_CHECK = 0; then -+U_CHECK_UTF16_STRING=0 -+U_CHECK_GNUC_UTF16_STRING=0 -+CHECK_UTF16_STRING_RESULT="check disabled" -+ -+else # do the UTF16 literal checks - U_CHECK_UTF16_STRING=1 - CHECK_UTF16_STRING_RESULT="unknown" - -@@ -7237,6 +7274,7 @@ - fi - fi - fi -+fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_UTF16_STRING_RESULT" >&5 diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-11-CURR_FULL_DIR b/Build/source/libs/icu/icu-49.1-PATCHES/patch-11-CURR_FULL_DIR deleted file mode 100644 index c3b62ac44f1..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-11-CURR_FULL_DIR +++ /dev/null @@ -1,27 +0,0 @@ - When cross compiling, e.g., Unix => mingw CURR_FULL_DIR must - certainly be that for the native (Unix) system and not that for - the build (mingw) system. - -diff -ur icu-49.1.orig/source/Makefile.in icu-49.1/source/Makefile.in ---- icu-49.1.orig/source/Makefile.in 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/Makefile.in 2012-03-22 10:11:21.000000000 +0100 -@@ -221,6 +221,8 @@ - config/icucross.mk: $(top_builddir)/icudefs.mk $(top_builddir)/Makefile - @echo rebuilding $@ - @(echo "CROSS_ICU_VERSION=$(VERSION)" ;\ -+ grep '^CURR_FULL_DIR' $(top_builddir)/icudefs.mk ;\ -+ grep '^CURR_FULL_DIR' @platform_make_fragment@ ;\ - echo "TOOLEXEEXT=$(EXEEXT)" \ - ) > $@ - @(echo 'TOOLBINDIR=$$(cross_buildroot)/bin' ;\ -diff -ur icu-49.1.orig/source/icudefs.mk.in icu-49.1/source/icudefs.mk.in ---- icu-49.1.orig/source/icudefs.mk.in 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/icudefs.mk.in 2012-03-22 10:11:21.000000000 +0100 -@@ -221,6 +221,7 @@ - TOOLBINDIR=$(BINDIR) - TOOLLIBDIR=$(LIBDIR) - -+# overridden by icucross.mk and maybe by config/mh-*. - # Current full path directory. - CURR_FULL_DIR=$(shell pwd | sed 's/ /\\ /g') - # Current full path directory for use in source code in a -D compiler option. diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-12-mingw b/Build/source/libs/icu/icu-49.1-PATCHES/patch-12-mingw deleted file mode 100644 index 7672c33276a..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-12-mingw +++ /dev/null @@ -1,27 +0,0 @@ - We don't want this for TeX Live cross compilation. - -diff -ur icu-49.1.orig/source/config/mh-mingw icu-49.1/source/config/mh-mingw ---- icu-49.1.orig/source/config/mh-mingw 2012-03-21 18:35:32.000000000 +0100 -+++ icu-49.1/source/config/mh-mingw 2012-03-22 10:13:01.000000000 +0100 -@@ -55,21 +55,10 @@ - SO = dll - ## Non-shared intermediate object suffix - STATIC_O = ao --SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR) -- --# Static library prefix and file extension --LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX) --A = a - - ## An import library is needed for z/OS and MSVC - IMPORT_LIB_EXT = .lib - --LIBPREFIX= -- --# Change the stubnames so that poorly working FAT disks and installation programs can work. --# This is also for backwards compatibility. --DATA_STUBNAME = dt --I18N_STUBNAME = in - LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) - - # The #M# is used to delete lines for icu-config diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-13-STATIC_PREFIX b/Build/source/libs/icu/icu-49.1-PATCHES/patch-13-STATIC_PREFIX deleted file mode 100644 index c80388367ba..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-13-STATIC_PREFIX +++ /dev/null @@ -1,31 +0,0 @@ -diff -ur icu-49.1.orig/source/config/Makefile.inc.in icu-49.1/source/config/Makefile.inc.in ---- icu-49.1.orig/source/config/Makefile.inc.in 2012-03-21 18:35:32.000000000 +0100 -+++ icu-49.1/source/config/Makefile.inc.in 2012-03-22 10:14:29.460517925 +0100 -@@ -44,7 +44,7 @@ - LIBICU = lib$(ICUPREFIX) - - # Static library prefix and file extension --STATIC_PREFIX = s -+STATIC_PREFIX = - LIBSICU = lib$(STATIC_PREFIX)$(ICUPREFIX) - A = a - -diff -ur icu-49.1.orig/source/icudefs.mk.in icu-49.1/source/icudefs.mk.in ---- icu-49.1.orig/source/icudefs.mk.in 2012-03-22 10:11:21.000000000 +0100 -+++ icu-49.1/source/icudefs.mk.in 2012-03-22 10:14:29.000000000 +0100 -@@ -190,13 +190,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/Build/source/libs/icu/icu-49.1-PATCHES/patch-14-GENCCODE_ASSEMBLY b/Build/source/libs/icu/icu-49.1-PATCHES/patch-14-GENCCODE_ASSEMBLY deleted file mode 100644 index 73b63c83e93..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-14-GENCCODE_ASSEMBLY +++ /dev/null @@ -1,13 +0,0 @@ -diff -ur icu-49.1.orig/source/config/mh-linux icu-49.1/source/config/mh-linux ---- icu-49.1.orig/source/config/mh-linux 2012-03-21 18:35:32.000000000 +0100 -+++ icu-49.1/source/config/mh-linux 2012-03-22 10:15:47.000000000 +0100 -@@ -37,6 +37,9 @@ - ## Non-shared intermediate object suffix - STATIC_O = ao - -+## The type of assembly needed when pkgdata is used for generating shared libraries. -+GENCCODE_ASSEMBLY=-a gcc -+ - ## Compilation rules - %.$(STATIC_O): $(srcdir)/%.c - $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-40-auxParam b/Build/source/libs/icu/icu-49.1-PATCHES/patch-40-auxParam deleted file mode 100644 index 33ef42dcdf7..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-40-auxParam +++ /dev/null @@ -1,398 +0,0 @@ -diff -ur icu-49.1.orig/source/layout/AlternateSubstSubtables.cpp icu-49.1/source/layout/AlternateSubstSubtables.cpp ---- icu-49.1.orig/source/layout/AlternateSubstSubtables.cpp 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/AlternateSubstSubtables.cpp 2012-03-22 10:16:50.000000000 +0100 -@@ -27,13 +27,19 @@ - Offset alternateSetTableOffset = SWAPW(alternateSetTableOffsetArray[coverageIndex]); - const AlternateSetTable *alternateSetTable = - (const AlternateSetTable *) ((char *) this + alternateSetTableOffset); -- TTGlyphID alternate = SWAPW(alternateSetTable->alternateArray[0]); -+ le_int32 altIndex = glyphIterator->getFeatureParam(); - -- if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, alternate))) { -- glyphIterator->setCurrGlyphID(SWAPW(alternateSetTable->alternateArray[0])); -+ if (altIndex < SWAPW(alternateSetTable->glyphCount)) { -+ TTGlyphID alternate = SWAPW(alternateSetTable->alternateArray[altIndex]); -+ -+ if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, alternate))) { -+ glyphIterator->setCurrGlyphID(alternate); -+ } -+ -+ return 1; - } - -- return 1; -+ // feature param was out of range for the glyph - } - - // XXXX If we get here, the table's mal-formed... -diff -ur icu-49.1.orig/source/layout/GlyphIterator.cpp icu-49.1/source/layout/GlyphIterator.cpp ---- icu-49.1.orig/source/layout/GlyphIterator.cpp 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/GlyphIterator.cpp 2012-03-22 10:16:50.000000000 +0100 -@@ -19,7 +19,7 @@ - FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader) - : direction(1), position(-1), nextLimit(-1), prevLimit(-1), - glyphStorage(theGlyphStorage), glyphPositionAdjustments(theGlyphPositionAdjustments), -- srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureMask(theFeatureMask), glyphGroup(0), -+ srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureMask(theFeatureMask), featureParam(0), glyphGroup(0), - glyphClassDefinitionTable(NULL), markAttachClassDefinitionTable(NULL) - - { -@@ -53,12 +53,13 @@ - destIndex = that.destIndex; - lookupFlags = that.lookupFlags; - featureMask = that.featureMask; -+ featureParam = that.featureParam; - glyphGroup = that.glyphGroup; - glyphClassDefinitionTable = that.glyphClassDefinitionTable; - markAttachClassDefinitionTable = that.markAttachClassDefinitionTable; - } - --GlyphIterator::GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask) -+GlyphIterator::GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask, le_int32 newFeatureParam) - : glyphStorage(that.glyphStorage) - { - direction = that.direction; -@@ -71,6 +72,7 @@ - destIndex = that.destIndex; - lookupFlags = that.lookupFlags; - featureMask = newFeatureMask; -+ featureParam = newFeatureParam; - glyphGroup = 0; - glyphClassDefinitionTable = that.glyphClassDefinitionTable; - markAttachClassDefinitionTable = that.markAttachClassDefinitionTable; -@@ -89,6 +91,7 @@ - destIndex = that.destIndex; - lookupFlags = newLookupFlags; - featureMask = that.featureMask; -+ featureParam = that.featureParam; - glyphGroup = that.glyphGroup; - glyphClassDefinitionTable = that.glyphClassDefinitionTable; - markAttachClassDefinitionTable = that.markAttachClassDefinitionTable; -@@ -103,6 +106,7 @@ - { - position = prevLimit; - featureMask = newFeatureMask; -+ featureParam = 0; - glyphGroup = 0; - lookupFlags = newLookupFlags; - } -@@ -130,6 +134,11 @@ - return position; - } - -+le_int32 GlyphIterator::getFeatureParam() const -+{ -+ return featureParam; -+} -+ - le_bool GlyphIterator::isRightToLeft() const - { - return direction < 0; -@@ -400,8 +409,10 @@ - } - } - --le_bool GlyphIterator::hasFeatureTag(le_bool matchGroup) const -+le_bool GlyphIterator::hasFeatureTag(le_bool matchGroup) - { -+ featureParam = 0; -+ - if (featureMask == 0) { - return TRUE; - } -@@ -409,7 +420,20 @@ - LEErrorCode success = LE_NO_ERROR; - FeatureMask fm = glyphStorage.getAuxData(position, success); - -- return ((fm & featureMask) == featureMask) && (!matchGroup || (le_int32)(fm & LE_GLYPH_GROUP_MASK) == glyphGroup); -+ if (((fm & featureMask) == featureMask) && (!matchGroup || (le_int32)(fm & LE_GLYPH_GROUP_MASK) == glyphGroup)) { -+ const le_int32 *paramList = (const le_int32 *) glyphStorage.getAuxParam(position, success); -+ if (paramList != NULL) { -+ fm = featureMask; -+ while ((fm & 0x80000000UL) == 0) { -+ ++paramList; -+ fm <<= 1; -+ } -+ featureParam = *paramList; -+ } -+ return TRUE; -+ } -+ -+ return FALSE; - } - - le_bool GlyphIterator::findFeatureTag() -diff -ur icu-49.1.orig/source/layout/GlyphIterator.h icu-49.1/source/layout/GlyphIterator.h ---- icu-49.1.orig/source/layout/GlyphIterator.h 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/GlyphIterator.h 2012-03-22 10:16:50.000000000 +0100 -@@ -28,7 +28,7 @@ - - GlyphIterator(GlyphIterator &that); - -- GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask); -+ GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask, le_int32 featureParam = 0); - - GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags); - -@@ -51,6 +51,8 @@ - le_int32 getMarkComponent(le_int32 markPosition) const; - le_bool findMark2Glyph(); - -+ le_int32 getFeatureParam() const; -+ - void getCursiveEntryPoint(LEPoint &entryPoint) const; - void getCursiveExitPoint(LEPoint &exitPoint) const; - -@@ -74,7 +76,7 @@ - - private: - le_bool filterGlyph(le_uint32 index) const; -- le_bool hasFeatureTag(le_bool matchGroup) const; -+ le_bool hasFeatureTag(le_bool matchGroup); /* not const because it updates the featureParam field */ - le_bool nextInternal(le_uint32 delta = 1); - le_bool prevInternal(le_uint32 delta = 1); - -@@ -90,6 +92,7 @@ - le_int32 destIndex; - le_uint16 lookupFlags; - FeatureMask featureMask; -+ le_int32 featureParam; - le_int32 glyphGroup; - - const GlyphClassDefinitionTable *glyphClassDefinitionTable; -diff -ur icu-49.1.orig/source/layout/LEGlyphStorage.cpp icu-49.1/source/layout/LEGlyphStorage.cpp ---- icu-49.1.orig/source/layout/LEGlyphStorage.cpp 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/LEGlyphStorage.cpp 2012-03-22 10:16:50.000000000 +0100 -@@ -20,7 +20,7 @@ - - LEGlyphStorage::LEGlyphStorage() - : fGlyphCount(0), fGlyphs(NULL), fCharIndices(NULL), fPositions(NULL), -- fAuxData(NULL), fInsertionList(NULL), fSrcIndex(0), fDestIndex(0) -+ fAuxData(NULL), fAuxParam(NULL), fInsertionList(NULL), fSrcIndex(0), fDestIndex(0) - { - // nothing else to do! - } -@@ -44,6 +44,11 @@ - fAuxData = NULL; - } - -+ if (fAuxParam != NULL) { -+ LE_DELETE_ARRAY(fAuxParam); -+ fAuxParam = NULL; -+ } -+ - if (fInsertionList != NULL) { - delete fInsertionList; - fInsertionList = NULL; -@@ -151,14 +156,15 @@ - return -1; - } - -- if (fAuxData != NULL) { -+ if (fAuxData != NULL || fAuxParam != NULL) { - success = LE_INTERNAL_ERROR; - return -1; - } - - fAuxData = LE_NEW_ARRAY(le_uint32, fGlyphCount); -+ fAuxParam = LE_NEW_ARRAY(void *, fGlyphCount); - -- if (fAuxData == NULL) { -+ if (fAuxData == NULL || fAuxParam == NULL) { - success = LE_MEMORY_ALLOCATION_ERROR; - return -1; - } -@@ -365,13 +371,32 @@ - return fAuxData[glyphIndex]; - } - --void LEGlyphStorage::setAuxData(le_int32 glyphIndex, le_uint32 auxData, LEErrorCode &success) -+void *LEGlyphStorage::getAuxParam(le_int32 glyphIndex, LEErrorCode &success) const -+{ -+ if (LE_FAILURE(success)) { -+ return NULL; -+ } -+ -+ if (fAuxParam == NULL) { -+ success = LE_NO_LAYOUT_ERROR; -+ return NULL; -+ } -+ -+ if (glyphIndex < 0 || glyphIndex >= fGlyphCount) { -+ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; -+ return NULL; -+ } -+ -+ return fAuxParam[glyphIndex]; -+} -+ -+void LEGlyphStorage::setAuxData(le_int32 glyphIndex, le_uint32 auxData, void *auxParam, LEErrorCode &success) - { - if (LE_FAILURE(success)) { - return; - } - -- if (fAuxData == NULL) { -+ if (fAuxData == NULL || fAuxParam == NULL) { - success = LE_NO_LAYOUT_ERROR; - return; - } -@@ -382,6 +407,7 @@ - } - - fAuxData[glyphIndex] = auxData; -+ fAuxParam[glyphIndex] = auxParam; - } - - void LEGlyphStorage::getGlyphPositions(float positions[], LEErrorCode &success) const -@@ -496,8 +522,14 @@ - LE_DELETE_ARRAY(fAuxData); - } - -+ if (fAuxParam != NULL) { -+ LE_DELETE_ARRAY(fAuxParam); -+ } -+ - fAuxData = from.fAuxData; - from.fAuxData = NULL; -+ fAuxParam = from.fAuxParam; -+ from.fAuxParam = NULL; - } - - void LEGlyphStorage::adoptGlyphCount(LEGlyphStorage &from) -@@ -588,6 +620,15 @@ - fAuxData = (le_uint32 *)newAuxData; - } - -+ if (fAuxParam != NULL) { -+ void **newAuxParam = (void **) LE_GROW_ARRAY(fAuxParam, newGlyphCount); -+ if (newAuxParam == NULL) { -+ // could not grow the aux param array -+ return fGlyphCount; -+ } -+ fAuxParam = (void **)newAuxParam; -+ } -+ - fSrcIndex = fGlyphCount - 1; - fDestIndex = newGlyphCount - 1; - -@@ -640,6 +681,18 @@ - } - } - -+ if (fAuxParam != NULL) { -+ le_int32 src = fSrcIndex, dest = fDestIndex; -+ -+ while (src > atPosition) { -+ fAuxParam[dest--] = fAuxParam[src--]; -+ } -+ -+ for (le_int32 i = count - 1; i >= 0; i -= 1) { -+ fAuxParam[dest--] = fAuxParam[atPosition]; -+ } -+ } -+ - while (fSrcIndex > atPosition) { - fGlyphs[fDestIndex] = fGlyphs[fSrcIndex]; - fCharIndices[fDestIndex] = fCharIndices[fSrcIndex]; -diff -ur icu-49.1.orig/source/layout/LEGlyphStorage.h icu-49.1/source/layout/LEGlyphStorage.h ---- icu-49.1.orig/source/layout/LEGlyphStorage.h 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/LEGlyphStorage.h 2012-03-22 10:16:50.000000000 +0100 -@@ -63,12 +63,12 @@ - float *fPositions; - - /** -- * The auxillary data array. -+ * The auxiliary data arrays. - * - * @internal - */ - le_uint32 *fAuxData; -- -+ void **fAuxParam; - - /** - * The insertion list, used to grow the above arrays. -@@ -299,6 +299,7 @@ - * @stable ICU 3.6 - */ - le_uint32 getAuxData(le_int32 glyphIndex, LEErrorCode &success) const; -+ void *getAuxParam(le_int32 glyphIndex, LEErrorCode &success) const; - - /** - * This operator allows direct access to the glyph array -@@ -427,15 +428,20 @@ - void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust, LEErrorCode &success); - - /** -- * Set the auxillary data for a particular glyph. -+ * Set the auxiliary data for a particular glyph. - * - * @param glyphIndex the index of the glyph -- * @param auxData the new auxillary data -- * @param success will be set to an error code if the auxillary data cannot be set. -+ * @param auxData the new auxiliary data -+ * @param auxParam the new secondary auxiliary data (parameter) -+ * @param success will be set to an error code if the auxiliary data cannot be set. - * -- * @stable ICU 3.6 -+ * @stable ICU 3.6 - mod for XeTeX -+ */ -+ void setAuxData(le_int32 glyphIndex, le_uint32 auxData, void *auxParam, LEErrorCode &success); -+ /** -+ * The common case when @param auxParam is <code>NULL</code>. - */ -- void setAuxData(le_int32 glyphIndex, le_uint32 auxData, LEErrorCode &success); -+ inline void setAuxData(le_int32 glyphIndex, le_uint32 auxData, LEErrorCode &success); - - /** - * Delete the glyph array and replace it with the one -@@ -540,6 +546,10 @@ - return fGlyphs[glyphIndex]; - } - -+inline void LEGlyphStorage::setAuxData(le_int32 glyphIndex, le_uint32 auxData, LEErrorCode &success) -+{ -+ setAuxData(glyphIndex, auxData, NULL, success); -+} - - U_NAMESPACE_END - #endif -diff -ur icu-49.1.orig/source/layout/OpenTypeLayoutEngine.cpp icu-49.1/source/layout/OpenTypeLayoutEngine.cpp ---- icu-49.1.orig/source/layout/OpenTypeLayoutEngine.cpp 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/OpenTypeLayoutEngine.cpp 2012-03-22 10:16:50.000000000 +0100 -@@ -78,7 +78,7 @@ - OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, - le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable, LEErrorCode &success) - : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, success), fFeatureMask(minimalFeatures), -- fFeatureMap(featureMap), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE), -+ fFeatureMap(featureMap), fFeatureParamList(NULL), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE), - fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL) - { - static const le_uint32 gdefTableTag = LE_GDEF_TABLE_TAG; -@@ -216,7 +216,7 @@ - glyphStorage.allocateAuxData(success); - - for (le_int32 i = 0; i < count; i += 1) { -- glyphStorage.setAuxData(i, fFeatureMask, success); -+ glyphStorage.setAuxData(i, fFeatureMask, (void *) fFeatureParamList, success); - } - - return count; -diff -ur icu-49.1.orig/source/layout/OpenTypeLayoutEngine.h icu-49.1/source/layout/OpenTypeLayoutEngine.h ---- icu-49.1.orig/source/layout/OpenTypeLayoutEngine.h 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/OpenTypeLayoutEngine.h 2012-03-22 10:16:50.000000000 +0100 -@@ -194,6 +194,13 @@ - le_bool fFeatureOrder; - - /** -+ * The list of what? FIXME.. -+ * -+ * @internal -+ */ -+ const le_int32 *fFeatureParamList; -+ -+ /** - * The address of the GSUB table. - * - * @internal diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-50-Vertical b/Build/source/libs/icu/icu-49.1-PATCHES/patch-50-Vertical deleted file mode 100644 index 9ad4f1febf7..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-50-Vertical +++ /dev/null @@ -1,245 +0,0 @@ -diff -ur icu-49.1.orig/source/layout/LEFontInstance.h icu-49.1/source/layout/LEFontInstance.h ---- icu-49.1.orig/source/layout/LEFontInstance.h 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/LEFontInstance.h 2012-03-22 10:19:05.000000000 +0100 -@@ -509,6 +509,10 @@ - */ - static UClassID getStaticClassID(); - -+ /** -+ * Returns true if writing direction is vertical. -+ */ -+ virtual inline bool getLayoutDirVertical() const; - }; - - inline float LEFontInstance::fixedToFloat(le_int32 fixed) -@@ -521,6 +525,11 @@ - return (le_int32) (theFloat * 65536.0); - } - -+inline bool LEFontInstance::getLayoutDirVertical() const -+{ -+ return false; -+} -+ - U_NAMESPACE_END - #endif - -diff -ur icu-49.1.orig/source/layout/ValueRecords.cpp icu-49.1/source/layout/ValueRecords.cpp ---- icu-49.1.orig/source/layout/ValueRecords.cpp 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/ValueRecords.cpp 2012-03-22 10:19:05.000000000 +0100 -@@ -48,8 +48,12 @@ - - fontInstance->transformFunits(value, 0, pixels); - -- xPlacementAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yPlacementAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - if ((valueFormat & vfbYPlacement) != 0) { -@@ -58,8 +62,12 @@ - - fontInstance->transformFunits(0, value, pixels); - -- xPlacementAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yPlacementAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - if ((valueFormat & vfbXAdvance) != 0) { -@@ -68,8 +76,12 @@ - - fontInstance->transformFunits(value, 0, pixels); - -- xAdvanceAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yAdvanceAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - if ((valueFormat & vfbYAdvance) != 0) { -@@ -78,8 +90,12 @@ - - fontInstance->transformFunits(0, value, pixels); - -- xAdvanceAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yAdvanceAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - // FIXME: The device adjustments should really be transformed, but -@@ -96,7 +112,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 xAdj = dt->getAdjustment(xppem); - -- xPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ yPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj); -+ else -+ xPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj); - } - } - -@@ -107,7 +126,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 yAdj = dt->getAdjustment(yppem); - -- yPlacementAdjustment += fontInstance->yPixelsToUnits(yAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ xPlacementAdjustment -= fontInstance->yPixelsToUnits(yAdj); -+ else -+ yPlacementAdjustment += fontInstance->yPixelsToUnits(yAdj); - } - } - -@@ -118,7 +140,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 xAdj = dt->getAdjustment(xppem); - -- xAdvanceAdjustment += fontInstance->xPixelsToUnits(xAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ yAdvanceAdjustment -= fontInstance->xPixelsToUnits(xAdj); -+ else -+ xAdvanceAdjustment += fontInstance->xPixelsToUnits(xAdj); - } - } - -@@ -129,7 +154,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 yAdj = dt->getAdjustment(yppem); - -- yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ xAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); -+ else -+ yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); - } - } - } -@@ -152,8 +180,12 @@ - - fontInstance->transformFunits(value, 0, pixels); - -- xPlacementAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yPlacementAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - if ((valueFormat & vfbYPlacement) != 0) { -@@ -162,8 +194,12 @@ - - fontInstance->transformFunits(0, value, pixels); - -- xPlacementAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yPlacementAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yPlacementAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - if ((valueFormat & vfbXAdvance) != 0) { -@@ -172,8 +208,12 @@ - - fontInstance->transformFunits(value, 0, pixels); - -- xAdvanceAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yAdvanceAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - if ((valueFormat & vfbYAdvance) != 0) { -@@ -182,8 +222,12 @@ - - fontInstance->transformFunits(0, value, pixels); - -- xAdvanceAdjustment += fontInstance->xPixelsToUnits(pixels.fX); -- yAdvanceAdjustment += fontInstance->yPixelsToUnits(pixels.fY); -+ xAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? fontInstance->yPixelsToUnits(pixels.fY) -+ : fontInstance->xPixelsToUnits(pixels.fX); -+ yAdvanceAdjustment += fontInstance->getLayoutDirVertical() -+ ? -fontInstance->xPixelsToUnits(pixels.fX) -+ : fontInstance->yPixelsToUnits(pixels.fY); - } - - // FIXME: The device adjustments should really be transformed, but -@@ -200,7 +244,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 xAdj = dt->getAdjustment(xppem); - -- xPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ yPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj); -+ else -+ xPlacementAdjustment += fontInstance->xPixelsToUnits(xAdj); - } - } - -@@ -211,7 +258,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 yAdj = dt->getAdjustment(yppem); - -- yPlacementAdjustment += fontInstance->yPixelsToUnits(yAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ xPlacementAdjustment -= fontInstance->yPixelsToUnits(yAdj); -+ else -+ yPlacementAdjustment += fontInstance->yPixelsToUnits(yAdj); - } - } - -@@ -222,7 +272,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 xAdj = dt->getAdjustment(xppem); - -- xAdvanceAdjustment += fontInstance->xPixelsToUnits(xAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ yAdvanceAdjustment -= fontInstance->xPixelsToUnits(xAdj); -+ else -+ xAdvanceAdjustment += fontInstance->xPixelsToUnits(xAdj); - } - } - -@@ -233,7 +286,10 @@ - const DeviceTable *dt = (const DeviceTable *) (base + dtOffset); - le_int16 yAdj = dt->getAdjustment(yppem); - -- yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); -+ if (fontInstance->getLayoutDirVertical()) -+ xAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); -+ else -+ yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); - } - } - } diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-60-KernPair b/Build/source/libs/icu/icu-49.1-PATCHES/patch-60-KernPair deleted file mode 100644 index 55e2fc8fede..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-60-KernPair +++ /dev/null @@ -1,61 +0,0 @@ -diff -ur icu-49.1.orig/source/layout/LEFontInstance.cpp icu-49.1/source/layout/LEFontInstance.cpp ---- icu-49.1.orig/source/layout/LEFontInstance.cpp 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/LEFontInstance.cpp 2012-03-22 10:20:24.000000000 +0100 -@@ -145,5 +145,10 @@ - return getAscent() + getDescent() + getLeading(); - } - -+void LEFontInstance::getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const -+{ -+ kern.fX = kern.fY = 0; -+} -+ - U_NAMESPACE_END - -diff -ur icu-49.1.orig/source/layout/LEFontInstance.h icu-49.1/source/layout/LEFontInstance.h ---- icu-49.1.orig/source/layout/LEFontInstance.h 2012-03-22 10:19:05.000000000 +0100 -+++ icu-49.1/source/layout/LEFontInstance.h 2012-03-22 10:20:24.000000000 +0100 -@@ -510,6 +510,11 @@ - static UClassID getStaticClassID(); - - /** -+ * Returns kern value for a glyph pair, if the font has a kern pair list. -+ */ -+ virtual void getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const; -+ -+ /** - * Returns true if writing direction is vertical. - */ - virtual inline bool getLayoutDirVertical() const; -diff -ur icu-49.1.orig/source/layout/LayoutEngine.cpp icu-49.1/source/layout/LayoutEngine.cpp ---- icu-49.1.orig/source/layout/LayoutEngine.cpp 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/LayoutEngine.cpp 2012-03-22 10:20:24.000000000 +0100 -@@ -369,9 +369,25 @@ - - if (fTypoFlags & 0x1) { /* kerning enabled */ - static const le_uint32 kernTableTag = LE_KERN_TABLE_TAG; -- -- KernTable kt(fFontInstance, getFontTable(kernTableTag)); -- kt.process(glyphStorage); -+ const void* kernTableData = getFontTable(kernTableTag); -+ if (kernTableData != NULL) { -+ KernTable kt(fFontInstance, kernTableData); -+ kt.process(glyphStorage); -+ } -+ else { /* no 'kern' table, but the font might know kern pairs from an AFM file, for instance */ -+ float xAdjust = 0.0, yAdjust = 0.0; -+ LEGlyphID leftGlyph = glyphStorage.getGlyphID(0, success); -+ for (le_int32 i = 1; i < glyphStorage.getGlyphCount(); ++i) { -+ LEGlyphID rightGlyph = glyphStorage.getGlyphID(i, success); -+ LEPoint kern; -+ fFontInstance->getKernPair(leftGlyph, rightGlyph, kern); -+ xAdjust += fFontInstance->xUnitsToPoints(kern.fX); -+ yAdjust += fFontInstance->yUnitsToPoints(kern.fY); -+ glyphStorage.adjustPosition(i, xAdjust, yAdjust, success); -+ leftGlyph = rightGlyph; -+ } -+ glyphStorage.adjustPosition(glyphStorage.getGlyphCount(), xAdjust, yAdjust, success); -+ } - } - - // default is no adjustments diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic b/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic deleted file mode 100644 index 4a65c41e509..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic +++ /dev/null @@ -1,198 +0,0 @@ -diff -ur icu-49.1.orig/source/layout/ArabicShaping.cpp icu-49.1/source/layout/ArabicShaping.cpp ---- icu-49.1.orig/source/layout/ArabicShaping.cpp 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/ArabicShaping.cpp 2012-03-22 10:21:21.000000000 +0100 -@@ -24,6 +24,31 @@ - ArabicShaping::ST_TRANSPARENT // [T] - }; - -+// Draft Mongolian shaping classes, not provided by the Unicode data files at this time -+enum { -+ _c_ = ArabicShaping::ST_NOSHAPE_DUAL, -+ _d_ = ArabicShaping::ST_DUAL, -+ _n_ = ArabicShaping::ST_NONE, -+ _r_ = ArabicShaping::ST_RIGHT, -+ _t_ = ArabicShaping::ST_TRANSPARENT, -+ _x_ = ArabicShaping::ST_NOSHAPE_NONE -+}; -+ -+const ArabicShaping::ShapeType ArabicShaping::mongolianTypes[] = -+{ -+ _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _t_, _t_, _t_, _t_, _n_, // 0x1800 - 0x180f -+ _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, // 0x1810 - 0x181f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1820 - 0x182f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1830 - 0x183f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1840 - 0x184f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1850 - 0x185f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1860 - 0x186f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, // 0x1870 - 0x187f -+ _n_, _n_, _n_, _n_, _n_, _n_, _n_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1880 - 0x188f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x1890 - 0x189f -+ _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _t_, _n_, _n_, _n_, _n_, _n_, _n_ // 0x18a0 - 0x18af -+}; -+ - /* - shaping array holds types for Arabic chars between 0610 and 0700 - other values are either unshaped, or transparent if a mark or format -@@ -36,6 +61,18 @@ - const ClassDefinitionTable *joiningTypes = (const ClassDefinitionTable *) ArabicShaping::shapingTypeTable; - le_int32 joiningType = joiningTypes->getGlyphClass(c); - -+ if (joiningType == ArabicShaping::JT_RIGHT_JOINING) { // check for Syriac exceptions ALAPH, DALATH, RISH -+ if (c == 0x0710) -+ return ArabicShaping::ST_ALAPH; -+ if (c == 0x0715 || c == 0x0716 || c == 0x072A || c == 0x072F) -+ return ArabicShaping::ST_DALATH_RISH; -+ } -+ -+ if (joiningType == 0) { // check for Mongolian range, not supported by ArabicShaping::shapingTypeTable -+ if (c >= 0x1800 && c <= 0x18af) -+ return ArabicShaping::mongolianTypes[c - 0x1800]; -+ } -+ - if (joiningType >= 0 && joiningType < ArabicShaping::JT_COUNT) { - return ArabicShaping::shapeTypes[joiningType]; - } -@@ -46,7 +83,10 @@ - #define isolFeatureTag LE_ISOL_FEATURE_TAG - #define initFeatureTag LE_INIT_FEATURE_TAG - #define mediFeatureTag LE_MEDI_FEATURE_TAG -+#define med2FeatureTag LE_MED2_FEATURE_TAG - #define finaFeatureTag LE_FINA_FEATURE_TAG -+#define fin2FeatureTag LE_FIN2_FEATURE_TAG -+#define fin3FeatureTag LE_FIN3_FEATURE_TAG - #define ligaFeatureTag LE_LIGA_FEATURE_TAG - #define msetFeatureTag LE_MSET_FEATURE_TAG - #define markFeatureTag LE_MARK_FEATURE_TAG -@@ -62,33 +102,40 @@ - // NOTE: - // The isol, fina, init and medi features must be - // defined in the above order, and have masks that --// are all in the same nibble. -+// are all in the same byte. - #define isolFeatureMask 0x80000000UL - #define finaFeatureMask 0x40000000UL - #define initFeatureMask 0x20000000UL - #define mediFeatureMask 0x10000000UL --#define ccmpFeatureMask 0x08000000UL --#define rligFeatureMask 0x04000000UL --#define caltFeatureMask 0x02000000UL --#define ligaFeatureMask 0x01000000UL --#define dligFeatureMask 0x00800000UL --#define cswhFeatureMask 0x00400000UL --#define msetFeatureMask 0x00200000UL --#define cursFeatureMask 0x00100000UL --#define kernFeatureMask 0x00080000UL --#define markFeatureMask 0x00040000UL --#define mkmkFeatureMask 0x00020000UL -+#define fin2FeatureMask 0x08000000UL -+#define fin3FeatureMask 0x04000000UL -+#define med2FeatureMask 0x03000000UL /* two bits, from shifting either fin2 or fin3 */ -+ -+#define ccmpFeatureMask 0x00800000UL -+#define rligFeatureMask 0x00400000UL -+#define caltFeatureMask 0x00200000UL -+#define ligaFeatureMask 0x00100000UL -+#define dligFeatureMask 0x00080000UL -+#define cswhFeatureMask 0x00040000UL -+#define msetFeatureMask 0x00020000UL -+#define cursFeatureMask 0x00010000UL -+#define kernFeatureMask 0x00008000UL -+#define markFeatureMask 0x00004000UL -+#define mkmkFeatureMask 0x00002000UL - - #define NO_FEATURES 0 - #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask) - --#define SHAPE_MASK 0xF0000000UL -+#define SHAPE_MASK 0xFF000000UL - - static const FeatureMap featureMap[] = { - {ccmpFeatureTag, ccmpFeatureMask}, - {isolFeatureTag, isolFeatureMask}, - {finaFeatureTag, finaFeatureMask}, -+ {fin2FeatureTag, fin2FeatureMask}, -+ {fin3FeatureTag, fin3FeatureMask}, - {mediFeatureTag, mediFeatureMask}, -+ {med2FeatureTag, med2FeatureMask}, - {initFeatureTag, initFeatureMask}, - {rligFeatureTag, rligFeatureMask}, - {caltFeatureTag, caltFeatureMask}, -@@ -138,6 +185,14 @@ - // shaper.shape(errout, 2) (isolate to initial, or final to medial) - // shaper.shape(out, 1) (isolate to final) - -+ // special cases for Syriac ALAPH: -+ // final ALAPH is fin2 when effective right char shapes but does not cause left shaping, and is not DALATH/RISH -+ // final ALAPH is fin3 when effective right char is DALATH/RISH -+ // medial ALAPH is med2 when effective right char shapes but does not cause left shaping -+ // using one of: -+ // shaper.shape(out, 4) (isolate to fin2) -+ // shaper.shape(out, 5) (isolate to fin3) -+ - ShapeType rightType = ST_NOSHAPE_NONE, leftType = ST_NOSHAPE_NONE; - LEErrorCode success = LE_NO_ERROR; - le_int32 i; -@@ -195,10 +250,17 @@ - if (curShapes) { - adjustTags(out, 1, glyphStorage); - } -+ } else if (t == ST_ALAPH) { -+ if (rightType == ST_DALATH_RISH) { -+ adjustTags(out, 5, glyphStorage); -+ } else if (rightShapes && !rightCauses) { -+ adjustTags(out, 4, glyphStorage); -+ } - } - - rightShapes = curShapes; - rightCauses = (t & MASK_SHAPE_LEFT) != 0; -+ rightType = t; // remember this; might need to know if it was DALATH/RISH - erout = out; - } - -diff -ur icu-49.1.orig/source/layout/ArabicShaping.h icu-49.1/source/layout/ArabicShaping.h ---- icu-49.1.orig/source/layout/ArabicShaping.h 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/ArabicShaping.h 2012-03-22 10:21:21.000000000 +0100 -@@ -39,7 +39,10 @@ - MASK_SHAPE_RIGHT = 1, // if this bit set, shapes to right - MASK_SHAPE_LEFT = 2, // if this bit set, shapes to left - MASK_TRANSPARENT = 4, // if this bit set, is transparent (ignore other bits) -- MASK_NOSHAPE = 8 // if this bit set, don't shape this char, i.e. tatweel -+ MASK_NOSHAPE = 8, // if this bit set, don't shape this char, i.e. tatweel -+ -+ MASK_ALAPH = 16, // if this bit set, char is Syriac ALAPH -+ MASK_DALATH_RISH = 32 // if this bit set, char is Syriac DALATH/RISH - }; - - // shaping values -@@ -51,7 +54,9 @@ - ST_DUAL = MASK_SHAPE_RIGHT | MASK_SHAPE_LEFT, - ST_TRANSPARENT = MASK_TRANSPARENT, - ST_NOSHAPE_DUAL = MASK_NOSHAPE | ST_DUAL, -- ST_NOSHAPE_NONE = MASK_NOSHAPE -+ ST_NOSHAPE_NONE = MASK_NOSHAPE, -+ ST_ALAPH = MASK_ALAPH | MASK_SHAPE_RIGHT, -+ ST_DALATH_RISH = MASK_DALATH_RISH | MASK_SHAPE_RIGHT - }; - - typedef le_int32 ShapeType; -@@ -69,6 +74,7 @@ - - static const le_uint8 shapingTypeTable[]; - static const ShapeType shapeTypes[]; -+ static const ShapeType mongolianTypes[]; - - static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage); - }; -diff -ur icu-49.1.orig/source/layout/LayoutEngine.cpp icu-49.1/source/layout/LayoutEngine.cpp ---- icu-49.1.orig/source/layout/LayoutEngine.cpp 2012-03-22 10:20:24.000000000 +0100 -+++ icu-49.1/source/layout/LayoutEngine.cpp 2012-03-22 10:21:21.000000000 +0100 -@@ -567,6 +567,8 @@ - break; - - case arabScriptCode: -+ case syrcScriptCode: -+ case mongScriptCode: - result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable, success); - break; - diff --git a/Build/source/libs/icu/icu-49.1-PATCHES/patch-82-Indic-bugfix b/Build/source/libs/icu/icu-49.1-PATCHES/patch-82-Indic-bugfix deleted file mode 100644 index 0a8a6ee871f..00000000000 --- a/Build/source/libs/icu/icu-49.1-PATCHES/patch-82-Indic-bugfix +++ /dev/null @@ -1,230 +0,0 @@ -diff -ur icu-49.1.orig/source/layout/IndicClassTables.cpp icu-49.1/source/layout/IndicClassTables.cpp ---- icu-49.1.orig/source/layout/IndicClassTables.cpp 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/IndicClassTables.cpp 2012-06-18 14:23:38.000000000 +0200 -@@ -66,7 +66,6 @@ - // special forms... (Bengali RA?) - #define _bb (_ct | CF_BELOW_BASE) - #define _pb (_ct | CF_POST_BASE) --#define _fb (_ct | CF_PRE_BASE) - #define _vt (_bb | CF_VATTU) - #define _rv (_vt | CF_REPH) - #define _rp (_pb | CF_REPH) -@@ -198,7 +197,7 @@ - _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 -- _fb, _fb, _bb, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _r2, _dr, // 0D30 - 0D3F -+ _pb, _cn, _bb, _ct, _ct, _pb, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _r2, _dr, // 0D30 - 0D3F - _dr, _dr, _dr, _dr, _xx, _xx, _l1, _l1, _dl, _xx, _s1, _s2, _s3, _vr, _xx, _xx, // 0D40 - 0D4F - _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 -diff -ur icu-49.1.orig/source/layout/IndicReordering.cpp icu-49.1/source/layout/IndicReordering.cpp ---- icu-49.1.orig/source/layout/IndicReordering.cpp 2012-03-21 18:38:10.000000000 +0100 -+++ icu-49.1/source/layout/IndicReordering.cpp 2012-06-18 14:38:25.000000000 +0200 -@@ -129,10 +129,6 @@ - le_int32 fSMIndex; - FeatureMask fSMFeatures; - -- LEUnicode fPreBaseConsonant; -- LEUnicode fPreBaseVirama; -- le_int32 fPBCIndex; -- FeatureMask fPBCFeatures; - - void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass) - { -@@ -179,8 +175,7 @@ - fMpost(0), fMpostIndex(0), fLengthMark(0), fLengthMarkIndex(0), fAlLakuna(0), fAlLakunaIndex(0), - fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups), - fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0), -- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0), -- fPreBaseConsonant(0), fPreBaseVirama(0), fPBCIndex(0), fPBCFeatures(0) -+ fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0) - { - // nothing else to do... - } -@@ -199,8 +194,6 @@ - - fVMabove = fVMpost = 0; - fSMabove = fSMbelow = 0; -- -- fPreBaseConsonant = fPreBaseVirama = 0; - } - - void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask charFeatures) -@@ -396,14 +389,6 @@ - } - } - -- void notePreBaseConsonant(le_uint32 index,LEUnicode PBConsonant, LEUnicode PBVirama, FeatureMask features) -- { -- fPBCIndex = index; -- fPreBaseConsonant = PBConsonant; -- fPreBaseVirama = PBVirama; -- fPBCFeatures = features; -- } -- - void noteBaseConsonant() - { - if (fMPreFixups != NULL && fMPreOutIndex >= 0) { -@@ -483,22 +468,6 @@ - } - } - -- void writePreBaseConsonant() -- { -- // The TDIL spec says that consonant + virama + RRA should produce a rakar in Malayalam. However, -- // it seems that almost none of the fonts for Malayalam are set up to handle this. -- // So, we're going to force the issue here by using the rakar as defined with RA in most fonts. -- -- if (fPreBaseConsonant == 0x0d31) { // RRA -- fPreBaseConsonant = 0x0d30; // RA -- } -- -- if (fPreBaseConsonant != 0) { -- writeChar(fPreBaseConsonant, fPBCIndex, fPBCFeatures); -- writeChar(fPreBaseVirama,fPBCIndex-1,fPBCFeatures); -- } -- } -- - le_int32 getOutputIndex() - { - return fOutIndex; -@@ -765,7 +734,6 @@ - lastConsonant -= 1; - } - -- - IndicClassTable::CharClass charClass = CC_RESERVED; - IndicClassTable::CharClass nextClass = CC_RESERVED; - le_int32 baseConsonant = lastConsonant; -@@ -773,11 +741,9 @@ - le_int32 postBaseLimit = classTable->scriptFlags & SF_POST_BASE_LIMIT_MASK; - le_bool seenVattu = FALSE; - le_bool seenBelowBaseForm = FALSE; -- le_bool seenPreBaseForm = FALSE; - le_bool hasNukta = FALSE; - le_bool hasBelowBaseForm = FALSE; - le_bool hasPostBaseForm = FALSE; -- le_bool hasPreBaseForm = FALSE; - - if (postBase < markStart && classTable->isNukta(chars[postBase])) { - charClass = CC_NUKTA; -@@ -791,22 +757,14 @@ - - hasBelowBaseForm = IndicClassTable::hasBelowBaseForm(charClass) && !hasNukta; - hasPostBaseForm = IndicClassTable::hasPostBaseForm(charClass) && !hasNukta; -- hasPreBaseForm = IndicClassTable::hasPreBaseForm(charClass) && !hasNukta; - - if (IndicClassTable::isConsonant(charClass)) { - if (postBaseLimit == 0 || seenVattu || - (baseConsonant > baseLimit && !classTable->isVirama(chars[baseConsonant - 1])) || -- !(hasBelowBaseForm || hasPostBaseForm || hasPreBaseForm)) { -+ !(hasBelowBaseForm || hasPostBaseForm)) { - break; - } - -- // Note any pre-base consonants -- if ( baseConsonant == lastConsonant && lastConsonant > 0 && -- hasPreBaseForm && classTable->isVirama(chars[baseConsonant - 1])) { -- output.notePreBaseConsonant(lastConsonant,chars[lastConsonant],chars[lastConsonant-1],tagArray2); -- seenPreBaseForm = TRUE; -- -- } - // consonants with nuktas are never vattus - seenVattu = IndicClassTable::isVattu(charClass) && !hasNukta; - -@@ -839,14 +797,12 @@ - } - - // write any pre-base consonants -- output.writePreBaseConsonant(); -- - le_bool supressVattu = TRUE; - - for (i = baseLimit; i < baseConsonant; i += 1) { - LEUnicode ch = chars[i]; -- // Don't put 'pstf' or 'blwf' on anything before the base consonant. -- FeatureMask features = tagArray1 & ~( pstfFeatureMask | blwfFeatureMask ); -+ // Don't put 'blwf' on first consonant. -+ FeatureMask features = (i == baseLimit? tagArray2 : tagArray1); - - charClass = classTable->getCharClass(ch); - nextClass = classTable->getCharClass(chars[i + 1]); -@@ -897,7 +853,7 @@ - } - - // write below-base consonants -- if (baseConsonant != lastConsonant && !seenPreBaseForm) { -+ if (baseConsonant != lastConsonant) { - for (i = bcSpan + 1; i < postBase; i += 1) { - output.writeChar(chars[i], i, tagArray1); - } -@@ -927,7 +883,7 @@ - - // write post-base consonants - // FIXME: does this put the right tags on post-base consonants? -- if (baseConsonant != lastConsonant && !seenPreBaseForm) { -+ if (baseConsonant != lastConsonant) { - if (postBase <= lastConsonant) { - for (i = postBase; i <= lastConsonant; i += 1) { - output.writeChar(chars[i], i, tagArray3); -@@ -1195,7 +1151,7 @@ - } - - --void IndicReordering::getDynamicProperties( DynamicProperties *, const IndicClassTable *classTable ) { -+void IndicReordering::getDynamicProperties( DynamicProperties */*dProps*/, const IndicClassTable *classTable ) { - - - LEUnicode currentChar; -diff -ur icu-49.1.orig/source/layout/IndicReordering.h icu-49.1/source/layout/IndicReordering.h ---- icu-49.1.orig/source/layout/IndicReordering.h 2012-03-21 18:38:08.000000000 +0100 -+++ icu-49.1/source/layout/IndicReordering.h 2012-06-18 14:27:48.000000000 +0200 -@@ -50,7 +50,6 @@ - #define CF_BELOW_BASE 0x10000000U - #define CF_POST_BASE 0x08000000U - #define CF_LENGTH_MARK 0x04000000U --#define CF_PRE_BASE 0x02000000U - - #define CF_POS_BEFORE 0x00300000U - #define CF_POS_BELOW 0x00200000U -@@ -121,7 +120,6 @@ - inline le_bool hasPostBaseForm(LEUnicode ch) const; - inline le_bool hasBelowBaseForm(LEUnicode ch) const; - inline le_bool hasAboveBaseForm(LEUnicode ch) const; -- inline le_bool hasPreBaseForm(LEUnicode ch) const; - - inline static le_bool isVowelModifier(CharClass charClass); - inline static le_bool isStressMark(CharClass charClass); -@@ -138,7 +136,6 @@ - inline static le_bool hasPostBaseForm(CharClass charClass); - inline static le_bool hasBelowBaseForm(CharClass charClass); - inline static le_bool hasAboveBaseForm(CharClass charClass); -- inline static le_bool hasPreBaseForm(CharClass charClass); - - static const IndicClassTable *getScriptClassTable(le_int32 scriptCode); - }; -@@ -260,11 +257,6 @@ - return (charClass & CF_POST_BASE) != 0; - } - --inline le_bool IndicClassTable::hasPreBaseForm(CharClass charClass) --{ -- return (charClass & CF_PRE_BASE) != 0; --} -- - inline le_bool IndicClassTable::hasBelowBaseForm(CharClass charClass) - { - return (charClass & CF_BELOW_BASE) != 0; -@@ -345,11 +337,6 @@ - return hasBelowBaseForm(getCharClass(ch)); - } - --inline le_bool IndicClassTable::hasPreBaseForm(LEUnicode ch) const --{ -- return hasPreBaseForm(getCharClass(ch)); --} -- - inline le_bool IndicClassTable::hasAboveBaseForm(LEUnicode ch) const - { - return hasAboveBaseForm(getCharClass(ch)); |