summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-49.1-PATCHES
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-49.1-PATCHES')
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/ChangeLog308
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/MakeShapingTypeData.pl90
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/TL-Changes22
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-01-Cygwin30
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-02-FreeBSD14
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-05-m4-quoting19
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-07-configure-utf16-string39
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-08-avoid-rebuild79
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-09-generated94
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-11-CURR_FULL_DIR27
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-12-mingw27
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-13-STATIC_PREFIX31
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-14-GENCCODE_ASSEMBLY13
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-40-auxParam398
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-50-Vertical245
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-60-KernPair61
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-70-Arabic198
-rw-r--r--Build/source/libs/icu/icu-49.1-PATCHES/patch-82-Indic-bugfix230
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));