summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhaled Hosny <khaled@libreoffice.org>2023-06-21 11:38:20 +0300
committerخالد حسني <khaled@libreoffice.org>2023-06-21 16:59:20 +0200
commitf0b87e8162511202aa3fe0c2af09c74107a7b3ea (patch)
tree94d39fac8bef8b1356966738b1d89390e961f116
parentc7b2277f57cf72b7dc6e4cbd179ce40951fbae8c (diff)
Require icu-i18n >= 66
We were requiring ICU 4.6 which was released in 2011, and ifdef'ing our way through newer ICU versions. ICU is a core dependency and it makes no sense to build LibreOffice with such ancient versions of it. This change requires ICU 66 (released in 2020), and removes all the ifdefs for older versions. There are more cleanups to do, but these will be done separately. Change-Id: I2e4f7608a08f4d531b0a4c74bbfdf91a451f833f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153387 Tested-by: Jenkins Reviewed-by: خالد حسني <khaled@libreoffice.org>
-rw-r--r--configure.ac28
-rw-r--r--editeng/source/editeng/impedit3.cxx10
-rw-r--r--i18npool/qa/cppunit/test_breakiterator.cxx6
-rw-r--r--i18npool/source/breakiterator/breakiterator_unicode.cxx24
-rw-r--r--i18npool/source/collator/collator_unicode.cxx10
-rw-r--r--i18nutil/source/utility/unicode.cxx22
-rw-r--r--sc/source/core/tool/interpr1.cxx10
-rw-r--r--solenv/clang-format/excludelist1
-rw-r--r--svl/source/misc/urihelper.cxx6
-rw-r--r--svx/source/dialog/charmap.cxx17
-rw-r--r--sw/source/core/text/porlay.cxx10
-rw-r--r--vcl/source/gdi/CommonSalLayout.cxx56
-rw-r--r--vcl/source/gdi/VerticalOrientationData.cxx78
-rwxr-xr-xvcl/source/gdi/genVerticalOrientationData.pl206
-rw-r--r--vcl/unx/generic/fontmanager/fontconfig.cxx4
15 files changed, 15 insertions, 473 deletions
diff --git a/configure.ac b/configure.ac
index 688bdadf5933..0299ad9ef8e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10753,7 +10753,7 @@ ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
ICU_RECLASSIFIED_HEBREW_LETTER="TRUE"
ICU_CFLAGS_internal="-I${WORKDIR}/UnpackedTarball/icu/source/i18n -I${WORKDIR}/UnpackedTarball/icu/source/common"
ICU_LIBS_internal="-L${WORKDIR}/UnpackedTarball/icu/source/lib"
-libo_CHECK_SYSTEM_MODULE([icu],[ICU],[icu-i18n >= 4.6])
+libo_CHECK_SYSTEM_MODULE([icu],[ICU],[icu-i18n >= 66])
if test "$SYSTEM_ICU" = TRUE; then
AC_LANG_PUSH([C++])
AC_MSG_CHECKING([for unicode/rbbi.h])
@@ -10764,11 +10764,6 @@ if test "$SYSTEM_ICU" = TRUE; then
ICU_MAJOR=`echo $ICU_VERSION | cut -d"." -f1`
ICU_MINOR=`echo $ICU_VERSION | cut -d"." -f2`
- if test "$ICU_MAJOR" -ge 50; then
- AC_MSG_NOTICE([Ignore ICU_MINOR as obviously the libraries don't include the minor version in their names any more])
- ICU_MINOR=
- fi
-
if test "$CROSS_COMPILING" != TRUE; then
# using the system icu tools can lead to version confusion, use the
# ones from the build environment when cross-compiling
@@ -10784,22 +10779,15 @@ if test "$SYSTEM_ICU" = TRUE; then
if test -z "$SYSTEM_GENCMN"; then
AC_MSG_ERROR([\'gencmn\' not found in \$PATH, install the icu development tool \'gencmn\'])
fi
- if test "$ICU_MAJOR" -lt 49; then
- ICU_RECLASSIFIED_PREPEND_SET_EMPTY=
- ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER=
- ICU_RECLASSIFIED_HEBREW_LETTER=
- fi
fi
fi
-if test "$ICU_MAJOR" -ge "59"; then
- # As of ICU 59 it defaults to typedef char16_t UChar; which is available
- # with -std=c++11 but not all external libraries can be built with that,
- # for those use a bit-compatible typedef uint16_t UChar; see
- # icu/source/common/unicode/umachine.h
- ICU_UCHAR_TYPE="-DUCHAR_TYPE=uint16_t"
-else
- ICU_UCHAR_TYPE=""
-fi
+
+# As of ICU 59 it defaults to typedef char16_t UChar; which is available
+# with -std=c++11 but not all external libraries can be built with that,
+# for those use a bit-compatible typedef uint16_t UChar; see
+# icu/source/common/unicode/umachine.h
+ICU_UCHAR_TYPE="-DUCHAR_TYPE=uint16_t"
+
AC_SUBST(SYSTEM_GENBRK)
AC_SUBST(SYSTEM_GENCCODE)
AC_SUBST(SYSTEM_GENCMN)
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index e18562d3113f..a521d59ef1c1 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -268,20 +268,12 @@ static Point lcl_ImplCalcRotatedPos( Point rPos, Point rOrigin, double nSin, dou
#define isAinChar(c) IS_JOINING_GROUP((c), AIN)
#define isAlefChar(c) IS_JOINING_GROUP((c), ALEF)
#define isDalChar(c) IS_JOINING_GROUP((c), DAL)
-#if U_ICU_VERSION_MAJOR_NUM >= 58
#define isFehChar(c) (IS_JOINING_GROUP((c), FEH) || IS_JOINING_GROUP((c), AFRICAN_FEH))
-#else
-#define isFehChar(c) IS_JOINING_GROUP((c), FEH)
-#endif
#define isGafChar(c) IS_JOINING_GROUP((c), GAF)
#define isHehChar(c) IS_JOINING_GROUP((c), HEH)
#define isKafChar(c) IS_JOINING_GROUP((c), KAF)
#define isLamChar(c) IS_JOINING_GROUP((c), LAM)
-#if U_ICU_VERSION_MAJOR_NUM >= 58
#define isQafChar(c) (IS_JOINING_GROUP((c), QAF) || IS_JOINING_GROUP((c), AFRICAN_QAF))
-#else
-#define isQafChar(c) IS_JOINING_GROUP((c), QAF)
-#endif
#define isRehChar(c) IS_JOINING_GROUP((c), REH)
#define isTahChar(c) IS_JOINING_GROUP((c), TAH)
#define isTehMarbutaChar(c) IS_JOINING_GROUP((c), TEH_MARBUTA)
@@ -296,9 +288,7 @@ static bool isBehChar(sal_Unicode cCh)
{
case U_JG_BEH:
case U_JG_NOON:
-#if U_ICU_VERSION_MAJOR_NUM >= 58
case U_JG_AFRICAN_NOON:
-#endif
case U_JG_NYA:
case U_JG_YEH:
case U_JG_FARSI_YEH:
diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx
index 6673fb4b8df5..18f4be09c86f 100644
--- a/i18npool/qa/cppunit/test_breakiterator.cxx
+++ b/i18npool/qa/cppunit/test_breakiterator.cxx
@@ -35,13 +35,11 @@ public:
void testWeak();
void testAsian();
void testThai();
-#if (U_ICU_VERSION_MAJOR_NUM > 51)
void testLao();
#ifdef TODO
void testNorthernThai();
void testKhmer();
#endif
-#endif
void testJapanese();
void testChinese();
@@ -52,13 +50,11 @@ public:
CPPUNIT_TEST(testWeak);
CPPUNIT_TEST(testAsian);
CPPUNIT_TEST(testThai);
-#if (U_ICU_VERSION_MAJOR_NUM > 51)
CPPUNIT_TEST(testLao);
#ifdef TODO
CPPUNIT_TEST(testKhmer);
CPPUNIT_TEST(testNorthernThai);
#endif
-#endif
CPPUNIT_TEST(testJapanese);
CPPUNIT_TEST(testChinese);
CPPUNIT_TEST_SUITE_END();
@@ -837,7 +833,6 @@ void TestBreakIterator::testAsian()
}
}
-#if (U_ICU_VERSION_MAJOR_NUM > 51)
//A test to ensure that our Lao word boundary detection is useful
void TestBreakIterator::testLao()
{
@@ -870,7 +865,6 @@ void TestBreakIterator::testLao()
CPPUNIT_ASSERT_EQUAL(sal_Int32(12), aBounds.endPos);
#endif
}
-#endif
//A test to ensure that our thai word boundary detection is useful
void TestBreakIterator::testThai()
diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx
index 267da80894f0..7e19e863bc70 100644
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx
@@ -67,13 +67,6 @@ namespace {
class OOoRuleBasedBreakIterator : public icu::RuleBasedBreakIterator
{
public:
-#if (U_ICU_VERSION_MAJOR_NUM < 58)
- // icu::RuleBasedBreakIterator::setBreakType() is private as of ICU 58.
- void publicSetBreakType(int32_t type)
- {
- setBreakType(type);
- };
-#endif
OOoRuleBasedBreakIterator(UDataMemory* image,
UErrorCode &status)
: icu::RuleBasedBreakIterator(image, status)
@@ -244,23 +237,6 @@ void BreakIterator_Unicode::loadICUBreakIterator(const css::lang::Locale& rLocal
}
}
}
- if (rbi) {
- #if (U_ICU_VERSION_MAJOR_NUM < 58)
- // ICU 58 made RuleBasedBreakIterator::setBreakType() private
- // instead of protected, so the old workaround of
- // https://ssl.icu-project.org/trac/ticket/5498
- // doesn't work anymore. However, they also claim to have fixed
- // the cause that an initial fBreakType==-1 would lead to an
- // endless loop under some circumstances.
- // Let's see ...
- switch (rBreakType) {
- case LOAD_CHARACTER_BREAKITERATOR: rbi->publicSetBreakType(UBRK_CHARACTER); break;
- case LOAD_WORD_BREAKITERATOR: rbi->publicSetBreakType(UBRK_WORD); break;
- case LOAD_SENTENCE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_SENTENCE); break;
- case LOAD_LINE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_LINE); break;
- }
- #endif
- }
} while (false);
if (!icuBI->mpValue || !icuBI->mpValue->mpBreakIterator)
diff --git a/i18npool/source/collator/collator_unicode.cxx b/i18npool/source/collator/collator_unicode.cxx
index 8e54892efab4..7adf0f854488 100644
--- a/i18npool/source/collator/collator_unicode.cxx
+++ b/i18npool/source/collator/collator_unicode.cxx
@@ -252,16 +252,6 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang::
funclen = get_collator_data_ja_phonetic_alphanumeric_last_length;
}
#endif
-#if WITH_LOCALE_ALL || WITH_LOCALE_ko
-#if (U_ICU_VERSION_MAJOR_NUM < 53)
- } else if ( rLocale.Language == "ko" ) {
- if ( rAlgorithm == "charset" )
- {
- func = get_collator_data_ko_charset;
- funclen = get_collator_data_ko_charset_length;
- }
-#endif
-#endif
#if WITH_LOCALE_ALL || WITH_LOCALE_ku
} else if ( rLocale.Language == "ku" ) {
if ( rAlgorithm == "alphanumeric" )
diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx
index e2e4199074ff..19a6bdf0b416 100644
--- a/i18nutil/source/utility/unicode.cxx
+++ b/i18nutil/source/utility/unicode.cxx
@@ -190,12 +190,8 @@ sal_Int16 unicode::getScriptClassFromUScriptCode(UScriptCode eScript)
case USCRIPT_TRADITIONAL_HAN:
case USCRIPT_JAPANESE:
case USCRIPT_KOREAN:
-#if (U_ICU_VERSION_MAJOR_NUM > 4) || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM >= 8)
case USCRIPT_TANGUT:
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 66)
case USCRIPT_KHITAN_SMALL_SCRIPT:
-#endif
nRet = ScriptType::ASIAN;
break;
case USCRIPT_ARABIC:
@@ -775,7 +771,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_WARANG_CITI:
sRet = "hoc";
break;
-#if (U_ICU_VERSION_MAJOR_NUM > 4) || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM >= 8)
case USCRIPT_AFAKA:
sRet = "djk";
break;
@@ -803,8 +798,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_WOLEAI:
sRet = "woe";
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 49)
case USCRIPT_ANATOLIAN_HIEROGLYPHS:
sRet = "hlu";
break;
@@ -814,16 +807,12 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_TIRHUTA:
sRet = "mai";
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 52)
case USCRIPT_CAUCASIAN_ALBANIAN:
sRet = "xag";
break;
case USCRIPT_MAHAJANI:
sRet = "mwr";
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 54)
case USCRIPT_AHOM:
sRet = "aho";
break;
@@ -842,8 +831,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_SIDDHAM:
sRet = "sa-Sidd";
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 58)
case USCRIPT_ADLAM:
sRet = "mis-Adlm"; // Adlam for Fulani, no language code
break;
@@ -868,8 +855,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_SYMBOLS_EMOJI:
sRet = "mis-Zsye"; // Emoji variant
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 60)
case USCRIPT_MASARAM_GONDI:
sRet = "gon-Gonm"; // macro language code, could be wsg,esg,gno
break;
@@ -879,8 +864,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_ZANABAZAR_SQUARE:
sRet = "mn-Zanb"; // abugida to write Mongolian
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 62)
case USCRIPT_DOGRA:
sRet = "dgo"; // Dogri proper
break;
@@ -902,8 +885,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_OLD_SOGDIAN:
sRet = "sog";
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 64)
case USCRIPT_ELYMAIC:
sRet = "arc-Elym";
break;
@@ -916,8 +897,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_WANCHO:
sRet = "nnp-Wcho";
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 66)
case USCRIPT_CHORASMIAN:
sRet = "xco-Chrs";
break;
@@ -930,7 +909,6 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
case USCRIPT_YEZIDI:
sRet = "kmr-Yezi";
break;
-#endif
#if (U_ICU_VERSION_MAJOR_NUM >= 70)
case USCRIPT_CYPRO_MINOAN:
sRet = "mis-Cpmn"; // Uncoded with script
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index bf8c89d0d125..fc7fe021702c 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -9727,12 +9727,7 @@ void ScInterpreter::ScRegex()
{
// Find n-th occurrence.
sal_Int32 nCount = 0;
-#if (U_ICU_VERSION_MAJOR_NUM < 55)
- int32_t nStartPos = 0;
- while (aRegexMatcher.find(nStartPos, status) && U_SUCCESS(status) && ++nCount < nOccurrence)
-#else
while (aRegexMatcher.find(status) && U_SUCCESS(status) && ++nCount < nOccurrence)
-#endif
;
if (U_FAILURE(status))
{
@@ -9772,12 +9767,7 @@ void ScInterpreter::ScRegex()
{
// Replace n-th occurrence of match with replacement.
sal_Int32 nCount = 0;
-#if (U_ICU_VERSION_MAJOR_NUM < 55)
- int32_t nStartPos = 0;
- while (aRegexMatcher.find(nStartPos, status) && U_SUCCESS(status))
-#else
while (aRegexMatcher.find(status) && U_SUCCESS(status))
-#endif
{
// XXX NOTE: After several RegexMatcher::find() the
// RegexMatcher::appendReplacement() still starts at the
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index b28353a15e2a..03a8b79b6416 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -14734,7 +14734,6 @@ vcl/source/fontsubset/ttcr.cxx
vcl/source/fontsubset/ttcr.hxx
vcl/source/fontsubset/xlat.cxx
vcl/source/gdi/CommonSalLayout.cxx
-vcl/source/gdi/VerticalOrientationData.cxx
vcl/source/gdi/configsettings.cxx
vcl/source/gdi/cvtgrf.cxx
vcl/source/gdi/embeddedfontshelper.cxx
diff --git a/svl/source/misc/urihelper.cxx b/svl/source/misc/urihelper.cxx
index 9aa78a584614..6488edb5bb6d 100644
--- a/svl/source/misc/urihelper.cxx
+++ b/svl/source/misc/urihelper.cxx
@@ -850,11 +850,7 @@ OUString URIHelper::resolveIdnaHost(OUString const & url) {
UErrorCode e = U_ZERO_ERROR;
std::unique_ptr<icu::IDNA> idna(
icu::IDNA::createUTS46Instance(
- (UIDNA_USE_STD3_RULES | UIDNA_CHECK_BIDI | UIDNA_CHECK_CONTEXTJ
-#if U_ICU_VERSION_MAJOR_NUM >= 49
- | UIDNA_CHECK_CONTEXTO
-#endif
- ),
+ (UIDNA_USE_STD3_RULES | UIDNA_CHECK_BIDI | UIDNA_CHECK_CONTEXTJ | UIDNA_CHECK_CONTEXTO),
e));
if (U_FAILURE(e)) {
SAL_WARN("vcl.gdi", "icu::IDNA::createUTS46Instance " << e);
diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
index 6d7933fe95cb..18a31b5f7a74 100644
--- a/svx/source/dialog/charmap.cxx
+++ b/svx/source/dialog/charmap.cxx
@@ -1553,8 +1553,6 @@ void SubsetMap::InitList()
case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D:
aAllSubsets.emplace_back( 0x2B740, 0x2B81F, SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D) );
break;
-// Note ICU version 49 (NOT 4.9), so the MAJOR_NUM is two digits.
-#if U_ICU_VERSION_MAJOR_NUM >= 49
case UBLOCK_ARABIC_EXTENDED_A:
aAllSubsets.emplace_back( 0x08A0, 0x08FF, SvxResId(RID_SUBSETSTR_ARABIC_EXTENDED_A) );
break;
@@ -1588,8 +1586,6 @@ void SubsetMap::InitList()
case UBLOCK_TAKRI:
aAllSubsets.emplace_back( 0x11680, 0x116CF, SvxResId(RID_SUBSETSTR_TAKRI) );
break;
-#endif
-#if U_ICU_VERSION_MAJOR_NUM >= 54
case UBLOCK_BASSA_VAH:
aAllSubsets.emplace_back( 0x16AD0, 0x16AFF, SvxResId(RID_SUBSETSTR_BASSA_VAH) );
break;
@@ -1686,8 +1682,6 @@ void SubsetMap::InitList()
case UBLOCK_WARANG_CITI:
aAllSubsets.emplace_back( 0x118A0, 0x118FF, SvxResId(RID_SUBSETSTR_WARANG_CITI) );
break;
-#endif
-#if U_ICU_VERSION_MAJOR_NUM >= 56
case UBLOCK_AHOM:
aAllSubsets.emplace_back( 0x11700, 0x1173F, SvxResId(RID_SUBSETSTR_AHOM) );
break;
@@ -1718,8 +1712,6 @@ void SubsetMap::InitList()
case UBLOCK_SUTTON_SIGNWRITING:
aAllSubsets.emplace_back( 0x1D800, 0x1DAAF, SvxResId(RID_SUBSETSTR_SUTTON_SIGNWRITING) );
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 58)
case UBLOCK_ADLAM:
aAllSubsets.emplace_back( 0x1E900, 0x1E95F, SvxResId(RID_SUBSETSTR_ADLAM) );
break;
@@ -1753,8 +1745,6 @@ void SubsetMap::InitList()
case UBLOCK_TANGUT_COMPONENTS:
aAllSubsets.emplace_back( 0x18800, 0x18AFF, SvxResId(RID_SUBSETSTR_TANGUT_COMPONENTS) );
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 60)
case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F:
aAllSubsets.emplace_back( 0x2CEB0, 0x2EBE0, SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F) );
break;
@@ -1776,8 +1766,6 @@ void SubsetMap::InitList()
case UBLOCK_ZANABAZAR_SQUARE:
aAllSubsets.emplace_back( 0x11A00, 0x11A4F, SvxResId(RID_SUBSETSTR_ZANABAZAR_SQUARE) );
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 62)
case UBLOCK_CHESS_SYMBOLS:
aAllSubsets.emplace_back( 0x1FA00, 0x1FA6F, SvxResId(RID_SUBSETSTR_CHESS_SYMBOLS) );
break;
@@ -1811,8 +1799,6 @@ void SubsetMap::InitList()
case UBLOCK_SOGDIAN:
aAllSubsets.emplace_back( 0x10F30, 0x10F6F, SvxResId(RID_SUBSETSTR_SOGDIAN) );
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 64)
case UBLOCK_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS:
aAllSubsets.emplace_back( 0x13430, 0x1343F, SvxResId(RID_SUBSETSTR_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS) );
break;
@@ -1840,8 +1826,6 @@ void SubsetMap::InitList()
case UBLOCK_WANCHO:
aAllSubsets.emplace_back( 0x1E2C0, 0x1E2FF, SvxResId(RID_SUBSETSTR_WANCHO) );
break;
-#endif
-#if (U_ICU_VERSION_MAJOR_NUM >= 66)
case UBLOCK_CHORASMIAN:
aAllSubsets.emplace_back( 0x10FB0, 0x10FDF, SvxResId(RID_SUBSETSTR_CHORASMIAN) );
break;
@@ -1866,7 +1850,6 @@ void SubsetMap::InitList()
case UBLOCK_YEZIDI:
aAllSubsets.emplace_back( 0x10E80, 0x10EBF, SvxResId(RID_SUBSETSTR_YEZIDI) );
break;
-#endif
#if (U_ICU_VERSION_MAJOR_NUM >= 70)
case UBLOCK_ARABIC_EXTENDED_B:
aAllSubsets.emplace_back( 0x0870, 0x089F, SvxResId(RID_SUBSETSTR_ARABIC_EXTENDED_B) );
diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx
index 37ad6edd9eff..14ac23395dcf 100644
--- a/sw/source/core/text/porlay.cxx
+++ b/sw/source/core/text/porlay.cxx
@@ -113,20 +113,12 @@ using namespace i18n::ScriptType;
#define isAinChar(c) IS_JOINING_GROUP((c), AIN)
#define isAlefChar(c) IS_JOINING_GROUP((c), ALEF)
#define isDalChar(c) IS_JOINING_GROUP((c), DAL)
-#if U_ICU_VERSION_MAJOR_NUM >= 58
#define isFehChar(c) (IS_JOINING_GROUP((c), FEH) || IS_JOINING_GROUP((c), AFRICAN_FEH))
-#else
-#define isFehChar(c) IS_JOINING_GROUP((c), FEH)
-#endif
#define isGafChar(c) IS_JOINING_GROUP((c), GAF)
#define isHehChar(c) IS_JOINING_GROUP((c), HEH)
#define isKafChar(c) IS_JOINING_GROUP((c), KAF)
#define isLamChar(c) IS_JOINING_GROUP((c), LAM)
-#if U_ICU_VERSION_MAJOR_NUM >= 58
#define isQafChar(c) (IS_JOINING_GROUP((c), QAF) || IS_JOINING_GROUP((c), AFRICAN_QAF))
-#else
-#define isQafChar(c) IS_JOINING_GROUP((c), QAF)
-#endif
#define isRehChar(c) IS_JOINING_GROUP((c), REH)
#define isTahChar(c) IS_JOINING_GROUP((c), TAH)
#define isTehMarbutaChar(c) IS_JOINING_GROUP((c), TEH_MARBUTA)
@@ -141,9 +133,7 @@ static bool isBehChar(sal_Unicode cCh)
{
case U_JG_BEH:
case U_JG_NOON:
-#if U_ICU_VERSION_MAJOR_NUM >= 58
case U_JG_AFRICAN_NOON:
-#endif
case U_JG_NYA:
case U_JG_YEH:
case U_JG_FARSI_YEH:
diff --git a/vcl/source/gdi/CommonSalLayout.cxx b/vcl/source/gdi/CommonSalLayout.cxx
index 7ea3ba687485..324b6fb48b07 100644
--- a/vcl/source/gdi/CommonSalLayout.cxx
+++ b/vcl/source/gdi/CommonSalLayout.cxx
@@ -82,60 +82,17 @@ struct SubRun
}
namespace {
-#if U_ICU_VERSION_MAJOR_NUM >= 63
- enum class VerticalOrientation {
- Upright = U_VO_UPRIGHT,
- Rotated = U_VO_ROTATED,
- TransformedUpright = U_VO_TRANSFORMED_UPRIGHT,
- TransformedRotated = U_VO_TRANSFORMED_ROTATED
- };
-#else
- #include "VerticalOrientationData.cxx"
-
- // These must match the values in the file included above.
- enum class VerticalOrientation {
- Upright = 0,
- Rotated = 1,
- TransformedUpright = 2,
- TransformedRotated = 3
- };
-#endif
-
- VerticalOrientation GetVerticalOrientation(sal_UCS4 cCh, const LanguageTag& rTag)
+ int32_t GetVerticalOrientation(sal_UCS4 cCh, const LanguageTag& rTag)
{
// Override orientation of fullwidth colon , semi-colon,
// and Bopomofo tonal marks.
if ((cCh == 0xff1a || cCh == 0xff1b
|| cCh == 0x2ca || cCh == 0x2cb || cCh == 0x2c7 || cCh == 0x2d9)
&& rTag.getLanguage() == "zh")
- return VerticalOrientation::TransformedUpright;
+ return U_VO_TRANSFORMED_UPRIGHT;
-#if U_ICU_VERSION_MAJOR_NUM >= 63
- int32_t nRet = u_getIntPropertyValue(cCh, UCHAR_VERTICAL_ORIENTATION);
-#else
- uint8_t nRet = 1;
-
- if (cCh < 0x10000)
- {
- nRet = sVerticalOrientationValues[sVerticalOrientationPages[0][cCh >> kVerticalOrientationCharBits]]
- [cCh & ((1 << kVerticalOrientationCharBits) - 1)];
- }
- else if (cCh < (kVerticalOrientationMaxPlane + 1) * 0x10000)
- {
- nRet = sVerticalOrientationValues[sVerticalOrientationPages[sVerticalOrientationPlanes[(cCh >> 16) - 1]]
- [(cCh & 0xffff) >> kVerticalOrientationCharBits]]
- [cCh & ((1 << kVerticalOrientationCharBits) - 1)];
- }
- else
- {
- // Default value for unassigned
- SAL_WARN("vcl.gdi", "Getting VerticalOrientation for codepoint outside Unicode range");
- }
-#endif
-
- return VerticalOrientation(nRet);
+ return u_getIntPropertyValue(cCh, UCHAR_VERTICAL_ORIENTATION);
}
-
} // namespace
SalLayoutGlyphs GenericSalLayout::GetGlyphs() const
@@ -358,7 +315,7 @@ bool GenericSalLayout::LayoutText(vcl::text::ImplLayoutArgs& rArgs, const SalLay
{
sal_Int32 nPrevIdx = nIdx;
sal_UCS4 aChar = rArgs.mrStr.iterateCodePoints(&nIdx);
- VerticalOrientation aVo = GetVerticalOrientation(aChar, rArgs.maLanguageTag);
+ int32_t aVo = GetVerticalOrientation(aChar, rArgs.maLanguageTag);
sal_UCS4 aVariationSelector = 0;
if (nIdx < nEndRunPos)
@@ -379,9 +336,8 @@ bool GenericSalLayout::LayoutText(vcl::text::ImplLayoutArgs& rArgs, const SalLay
// they should be shaped in horizontal direction
// and then rotated.
// See http://unicode.org/reports/tr50/#vo
- if (aVo == VerticalOrientation::Upright ||
- aVo == VerticalOrientation::TransformedUpright ||
- (aVo == VerticalOrientation::TransformedRotated &&
+ if (aVo == U_VO_UPRIGHT || aVo == U_VO_TRANSFORMED_UPRIGHT ||
+ (aVo == U_VO_TRANSFORMED_ROTATED &&
HasVerticalAlternate(aChar, aVariationSelector)))
{
aDirection = HB_DIRECTION_TTB;
diff --git a/vcl/source/gdi/VerticalOrientationData.cxx b/vcl/source/gdi/VerticalOrientationData.cxx
deleted file mode 100644
index 1016b36564a9..000000000000
--- a/vcl/source/gdi/VerticalOrientationData.cxx
+++ /dev/null
@@ -1,78 +0,0 @@
-
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-/*
- * Derived from the Unicode Character Database by genVerticalOrientationData.pl
- *
- * For Unicode terms of use, see http://www.unicode.org/terms_of_use.html
- */
-
-/*
- * Created on Wed Nov 9 21:29:02 2016 from UCD data files with version info:
- *
-
-
-# VerticalOrientation-17.txt
-# Date: 2016-10-20, 07:00:00 GMT [EM, KI, LI]
-
- *
- * * * * * This file contains MACHINE-GENERATED DATA, do not edit! * * * * *
- */
-
-#define kVerticalOrientationMaxPlane 16
-#define kVerticalOrientationIndexBits 9
-#define kVerticalOrientationCharBits 7
-static const uint8_t sVerticalOrientationPlanes[16] = {1,2,2,3,3,3,3,3,3,3,3,3,3,3,2,2};
-
-static const uint8_t sVerticalOrientationPages[4][512] = {
- {0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,4,3,3,3,3,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,0,11,12,13,3,0,14,15,3,16,17,0,0,0,0,0,0,18,19,0,0,0,0,0,3,3,3,20,21,22,23,3,3,24,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,25,0,0,0,0,0,0,0,0,26,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,27,0,28,29},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,3,0,0,0,0,0,0,0,0,0,3,3,3,3,3,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,32,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0},
- {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,33},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
-};
-
-static const uint8_t sVerticalOrientationValues[34][128] = {
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,2,2,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,2,0,2,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,3,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,0,0,3,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
- {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,0,0,0,0,0,1,3,3,3,3,3,3,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,2,0,0,0,0,0,0,3,3,0,0,2,1,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,3,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,1},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
- {2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
- {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}
-};
-/*
- * * * * * This file contains MACHINE-GENERATED DATA, do not edit! * * * * *
- */
diff --git a/vcl/source/gdi/genVerticalOrientationData.pl b/vcl/source/gdi/genVerticalOrientationData.pl
deleted file mode 100755
index 328727b269b3..000000000000
--- a/vcl/source/gdi/genVerticalOrientationData.pl
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/usr/bin/env perl
-
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-# This tool is used to prepare lookup tables of Unicode character properties.
-# The properties are read from the Unicode Character Database and compiled into
-# multi-level arrays for efficient lookup.
-#
-# To regenerate the tables in VerticalOrientationData.cxx:
-#
-# (1) Download the current Unicode data files from
-#
-# We require the latest data file for UTR50, currently revision-17:
-# http://www.unicode.org/Public/vertical/revision-17/VerticalOrientation-17.txt
-#
-#
-# (2) Run this tool using a command line of the form
-#
-# perl genVerticalOrientationData.pl \
-# /path/to/VerticalOrientation-17.txt
-#
-# This will generate (or overwrite!) the files
-#
-# VerticalOrientationData.cxx
-#
-# in the current directory.
-
-use strict;
-use List::Util qw(first);
-
-my $DATA_FILE = $ARGV[0];
-
-my %verticalOrientationCode = (
- 'U' => 0, # U - Upright, the same orientation as in the code charts
- 'R' => 1, # R - Rotated 90 degrees clockwise compared to the code charts
- 'Tu' => 2, # Tu - Transformed typographically, with fallback to Upright
- 'Tr' => 3 # Tr - Transformed typographically, with fallback to Rotated
-);
-
-my @verticalOrientation;
-for (my $i = 0; $i < 0x110000; ++$i) {
- $verticalOrientation[$i] = 1; # default for unlisted codepoints is 'R'
-}
-
-# read VerticalOrientation-17.txt
-my @versionInfo;
-open FH, "< $DATA_FILE" or die "can't open UTR50 data file VerticalOrientation-17.txt\n";
-push @versionInfo, "";
-while (<FH>) {
- chomp;
- push @versionInfo, $_;
- last if /Date:/;
-}
-while (<FH>) {
- chomp;
- s/#.*//;
- if (m/([0-9A-F]{4,6})(?:\.\.([0-9A-F]{4,6}))*\s*;\s*([^ ]+)/) {
- my $vo = $3;
- warn "unknown Vertical_Orientation code $vo"
- unless exists $verticalOrientationCode{$vo};
- $vo = $verticalOrientationCode{$vo};
- my $start = hex "0x$1";
- my $end = (defined $2) ? hex "0x$2" : $start;
- for (my $i = $start; $i <= $end; ++$i) {
- $verticalOrientation[$i] = $vo;
- }
- }
-}
-close FH;
-
-my $timestamp = gmtime();
-
-open DATA_TABLES, "> VerticalOrientationData.cxx" or die "unable to open VerticalOrientationData.cxx for output";
-
-my $licenseBlock = q[
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-/*
- * Derived from the Unicode Character Database by genVerticalOrientationData.pl
- *
- * For Unicode terms of use, see http://www.unicode.org/terms_of_use.html
- */
-];
-
-my $versionInfo = join("\n", @versionInfo);
-
-print DATA_TABLES <<__END;
-$licenseBlock
-/*
- * Created on $timestamp from UCD data files with version info:
- *
-
-$versionInfo
-
- *
- * * * * * This file contains MACHINE-GENERATED DATA, do not edit! * * * * *
- */
-
-__END
-
-our $totalData = 0;
-
-sub sprintVerticalOrientation
-{
- my $usv = shift;
- return sprintf("%d,",
- $verticalOrientation[$usv]);
-}
-
-&genTables("VerticalOrientation", "uint8_t", 9, 7, \&sprintVerticalOrientation, 16, 1, 1);
-
-sub genTables
-{
- my ($prefix, $type, $indexBits, $charBits, $func, $maxPlane, $bytesPerEntry, $charsPerEntry) = @_;
-
- print DATA_TABLES "#define k${prefix}MaxPlane $maxPlane\n";
- print DATA_TABLES "#define k${prefix}IndexBits $indexBits\n";
- print DATA_TABLES "#define k${prefix}CharBits $charBits\n";
-
- my $indexLen = 1 << $indexBits;
- my $charsPerPage = 1 << $charBits;
- my %charIndex = ();
- my %pageMapIndex = ();
- my @pageMap = ();
- my @char = ();
-
- my $planeMap = "\x00" x $maxPlane;
- foreach my $plane (0 .. $maxPlane) {
- my $pageMap = "\x00" x $indexLen * 2;
- foreach my $page (0 .. $indexLen - 1) {
- my $charValues = "";
- for (my $ch = 0; $ch < $charsPerPage; $ch += $charsPerEntry) {
- my $usv = $plane * 0x10000 + $page * $charsPerPage + $ch;
- $charValues .= &$func($usv);
- }
- chop $charValues;
-
- unless (exists $charIndex{$charValues}) {
- $charIndex{$charValues} = scalar keys %charIndex;
- $char[$charIndex{$charValues}] = $charValues;
- }
- substr($pageMap, $page * 2, 2) = pack('S', $charIndex{$charValues});
- }
-
- unless (exists $pageMapIndex{$pageMap}) {
- $pageMapIndex{$pageMap} = scalar keys %pageMapIndex;
- $pageMap[$pageMapIndex{$pageMap}] = $pageMap;
- }
- if ($plane > 0) {
- substr($planeMap, $plane - 1, 1) = pack('C', $pageMapIndex{$pageMap});
- }
- }
-
- if ($maxPlane) {
- print DATA_TABLES "static const uint8_t s${prefix}Planes[$maxPlane] = {";
- print DATA_TABLES join(',', map { sprintf("%d", $_) } unpack('C*', $planeMap));
- print DATA_TABLES "};\n\n";
- }
-
- my $chCount = scalar @char;
- my $pmBits = $chCount > 255 ? 16 : 8;
- my $pmCount = scalar @pageMap;
- if ($maxPlane == 0) {
- die "there should only be one pageMap entry!" if $pmCount > 1;
- print DATA_TABLES "static const uint${pmBits}_t s${prefix}Pages[$indexLen] = {\n";
- } else {
- print DATA_TABLES "static const uint${pmBits}_t s${prefix}Pages[$pmCount][$indexLen] = {\n";
- }
- for (my $i = 0; $i < scalar @pageMap; ++$i) {
- print DATA_TABLES $maxPlane > 0 ? " {" : " ";
- print DATA_TABLES join(',', map { sprintf("%d", $_) } unpack('S*', $pageMap[$i]));
- print DATA_TABLES $maxPlane > 0 ? ($i < $#pageMap ? "},\n" : "}\n") : "\n";
- }
- print DATA_TABLES "};\n\n";
-
- my $pageLen = $charsPerPage / $charsPerEntry;
- print DATA_TABLES "static const $type s${prefix}Values[$chCount][$pageLen] = {\n";
- for (my $i = 0; $i < scalar @char; ++$i) {
- print DATA_TABLES " {";
- print DATA_TABLES $char[$i];
- print DATA_TABLES $i < $#char ? "},\n" : "}\n";
- }
- print DATA_TABLES "};\n";
-
- my $dataSize = $pmCount * $indexLen * $pmBits/8 +
- $chCount * $pageLen * $bytesPerEntry +
- $maxPlane;
- $totalData += $dataSize;
-
- print STDERR "Data for $prefix = $dataSize\n";
-}
-print DATA_TABLES <<__END;
-/*
- * * * * * This file contains MACHINE-GENERATED DATA, do not edit! * * * * *
- */
-__END
-
-close DATA_TABLES;
diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx
index a34d0e08b050..1664182e8aed 100644
--- a/vcl/unx/generic/fontmanager/fontconfig.cxx
+++ b/vcl/unx/generic/fontmanager/fontconfig.cxx
@@ -906,11 +906,7 @@ namespace
bool isEmoji(sal_uInt32 nCurrentChar)
{
-#if U_ICU_VERSION_MAJOR_NUM >= 57
return u_hasBinaryProperty(nCurrentChar, UCHAR_EMOJI);
-#else
- return false;
-#endif
}
//returns true if the given code-point couldn't possibly be in rLangTag.