i18nutil/source/utility/unicode.cxx | 28 +++++++ include/svx/strings.hrc | 17 ++++ svx/source/dialog/charmap.cxx | 55 +++++++++++++++ sw/Module_sw.mk | 1 sw/UITest_librelogo.mk | 16 ---- sw/qa/uitest/librelogo/compile.py | 132 ------------------------------------ sw/qa/uitest/librelogo/run.py | 103 ---------------------------- 7 files changed, 100 insertions(+), 252 deletions(-)
New commits: commit 15abb0672d1d9304c2bfcd13b6b918350188e761 Author: Thorsten Behrens <thorsten.behr...@allotropia.de> AuthorDate: Thu Apr 22 00:51:44 2021 +0200 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Sat Nov 6 03:42:25 2021 +0100 Cleanup unused patches & stale uitests LibreLogo got removed from build, no point in testing. Change-Id: I321d7d654c66db65c80aaf39c883e03ff281bdf6 diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk index 8c904c7ce197..1b790026efc8 100644 --- a/sw/Module_sw.mk +++ b/sw/Module_sw.mk @@ -145,7 +145,6 @@ $(eval $(call gb_Module_add_uicheck_targets,sw,\ UITest_table \ UITest_findReplace \ UITest_chapterNumbering \ - UITest_librelogo \ )) endif diff --git a/sw/UITest_librelogo.mk b/sw/UITest_librelogo.mk deleted file mode 100644 index 35e53641e782..000000000000 --- a/sw/UITest_librelogo.mk +++ /dev/null @@ -1,16 +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/. -# - -$(eval $(call gb_UITest_UITest,librelogo)) - -$(eval $(call gb_UITest_add_modules,librelogo,$(SRCDIR)/sw/qa/uitest,\ - librelogo/ \ -)) - -$(eval $(call gb_UITest_set_defs,librelogo, \ - TDOC="$(SRCDIR)/sw/qa/uitest/writer_tests/data" \ -)) diff --git a/sw/qa/uitest/librelogo/compile.py b/sw/qa/uitest/librelogo/compile.py deleted file mode 100644 index 89e538b8c926..000000000000 --- a/sw/qa/uitest/librelogo/compile.py +++ /dev/null @@ -1,132 +0,0 @@ -# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- -# -# 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/. - -from uitest.framework import UITestCase -from libreoffice.uno.propertyvalue import mkPropertyValues -from uitest.uihelper.common import get_state_as_dict, type_text - -import time, re -from uitest.debug import sleep -from libreoffice.uno.propertyvalue import mkPropertyValues -from uitest.uihelper.common import select_pos - -class LibreLogoCompileTest(UITestCase): - LIBRELOGO_PATH = "vnd.sun.star.script:LibreLogo|LibreLogo.py$%s?language=Python&location=share" - LS = "#_@L_i_N_e@_#" # LibreLogo line separator for debug feature "jump to the bad LibreLogo program line" - - def createMasterScriptProviderFactory(self): - xServiceManager = self.xContext.ServiceManager - return xServiceManager.createInstanceWithContext( - "com.sun.star.script.provider.MasterScriptProviderFactory", - self.xContext) - - def getScript(self, command): - xMasterScriptProviderFactory = self.createMasterScriptProviderFactory() - document = self.ui_test.get_component() - xScriptProvider = xMasterScriptProviderFactory.createScriptProvider(document) - xScript = xScriptProvider.getScript(self.LIBRELOGO_PATH %command) - self.assertIsNotNone(xScript, "xScript was not loaded") - return xScript - - def test_compile_librelogo(self): - # XScript interface to LibreLogo Python compiler - xCompile = self.getScript("__compil__") - - for test in ( - # BASE COMMANDS - ("FORWARD 1 forward 1 fd 1", "forward(1)\nforward(1)\nforward(1)"), - ("BACK 1 back 1 bk 1", "backward(1)\nbackward(1)\nbackward(1)"), - ("RIGHT 1 right 1 rt 1", "turnright(1)\nturnright(1)\nturnright(1)"), - ("LEFT 1 left 1 lt 1", "turnleft(1)\nturnleft(1)\nturnleft(1)"), - # COMMENTS - ("fd 1; comment\n; full-line comment", "forward(1)\n" + self.LS), - # MULTI-LINE COMMAND - ("LABEL ~\n10 + 10", "label(10 + 10)\n" + self.LS), - # UNIT SPECIFIERS - # check specifier "pt" (point) - ("fd 1pt", "forward(1)"), - # check specifier "pt" (point) - ("fd 0.5pt", "forward(0.5)"), - # check "in" (inch) - ("fd 1in", "forward(72.0)"), - # check "cm" (centimeter) - ("fd 1cm", "forward(%s)" % (1/(2.54/72))), - # check "mm" (millimeter) - ("fd 10mm", "forward(%s)" % (1/(2.54/72))), - # angle - ("rt 90°", "turnright(90)"), - # clock-position - ("rt 3h", "turnright(90.0)"), - # CONDITION - ("if a = 1 [ ]", "if a == 1 :\n __checkhalt__()"), - # with else - ("if a == 1 [ ] [ ]", "if a == 1 :\n __checkhalt__()\nelse:\n __checkhalt__()"), - # LOOPS - ("repeat 10 [ ]", "for REPCOUNT in range(1, 1+int(10 )):\n __checkhalt__()"), - # endless loop - ("repeat [ ]", "REPCOUNT0 = 1\nwhile True:\n __checkhalt__()\n REPCOUNT = REPCOUNT0\n REPCOUNT0 += 1"), - # loop in loop - ("repeat 10 [ repeat REPCOUNT [ a=1 ] ]", "for REPCOUNT in range(1, 1+int(10 )):\n __checkhalt__()\n for REPCOUNT in range(1, 1+int(REPCOUNT )):\n __checkhalt__()\n a=1"), - # while - ("WHILE REPCOUNT < 10 [ ]", "REPCOUNT2 = 1\nwhile REPCOUNT2 < 10 :\n __checkhalt__()\n REPCOUNT = REPCOUNT2\n REPCOUNT2 += 1"), - # for - ("FOR i in [1, 2, 3] [ ]", "REPCOUNT4 = 1\nfor i in [1, 2, 3] :\n __checkhalt__()\n REPCOUNT = REPCOUNT4\n REPCOUNT4 += 1"), - ("FOR i IN RANGE COUNT 'letters' [ ]", "REPCOUNT6 = 1\nfor i in range(len(u'letters'),) :\n __checkhalt__()\n REPCOUNT = REPCOUNT6\n REPCOUNT6 += 1"), - # PROCEDURE - ("TO x\nLABEL 2\nEND", "global x\ndef x():\n __checkhalt__()\n %s\n label(2)\n %s" % (((self.LS),)*2)), - # FUNCTION - ("TO x\nOUTPUT 3\nEND", "global x\ndef x():\n __checkhalt__()\n %s\n return 3\n %s" % (((self.LS),)*2)), - # PROCEDURE WITH ARGUMENTS - ("TO x y\nLABEL y\nEND\nx 25", "global x\ndef x(y):\n __checkhalt__()\n %s\n label(y)\n %s\n%s\nx(25)" % (((self.LS),)*3)), - ("TO x :y :z\nLABEL :y + :z\nEND\nx 25 26", "global x\ndef x(_y, _z):\n __checkhalt__()\n %s\n label(_y + _z)\n %s\n%s\nx(25, 26)" % (((self.LS),)*3)), - ("TO x :y :z\nLABEL :y + :z\nEND\nx 25 :w", "global x\ndef x(_y, _z):\n __checkhalt__()\n %s\n label(_y + _z)\n %s\n%s\nx(25, _w)" % (((self.LS),)*3)), - # UNICODE VARIABLE NAMES - ("Erdős=1", "Erd__u__0151s=1"), - # STRING CONSTANTS - ("LABEL \"label", "label(u'label')"), - ("LABEL “label”", "label(u'label')"), - ("LABEL 'label'", "label(u'label')"), - ("LABEL ‘label’", "label(u'label')"), - # check apostrophe and quote usage within strings - ("LABEL “label\’s”", "label(u'label’s')"), - ("LABEL ““It\’s quote\’s...\””", "label(u'“It’s quote’s...”')"), - ("LABEL ““It\\'s quote\\'s...\””", "label(u'“It\\'s quote\\'s...”')"), - # CONVERSION OF LOGO EXPRESSIONS - ("a=SIN 100 + COS 100", "a=sin(100 + cos(100))"), - ("a=SIN(101) + COS(101)", "a=sin(101) + cos(101)"), - ("a=(SIN 102) + (COS 102)", "a=(sin(102)) + (cos(102))"), - ("a=SIN 103 + COS 103 - SQRT 103", "a=sin(103 + cos(103 - sqrt(103)))"), - ("a=(SIN 104 + COS 104) - SQRT 104", "a=(sin(104 + cos(104))) - sqrt(104)"), - # SIN(x) is Python-like, SIN (x) is Logo-like syntax - ("a=SIN(105) + COS (105) - SQRT 105", "a=sin(105) + cos((105) - sqrt(105))"), - ("a=COUNT [1, 2, 3]", "a=len([1, 2, 3])"), - ("PRINT COUNT [1, 2, 3]", "Print(len([1, 2, 3]))"), - ("PRINT 'TEXT: ' + 'CHAR'[0] + ' TEXT2: ' + variable[-1]", "Print(u'TEXT: ' + u'CHAR'[0] + u' TEXT2: ' + variable[-1])"), - ("PRINT 'TEXT: ' + 'CHAR'[0][n] + ' TEXT2: ' + varia[len k][i+1]", "Print(u'TEXT: ' + u'CHAR'[0][n] + u' TEXT2: ' + varia[len(k)][i+1])"), - ("a=SQRT COUNT [1, 2, 3]", "a=sqrt(len([1, 2, 3]))"), - ("a=RANGE 1", "a=range(1,)"), - ("a=RANGE 1 10", "a=range(1, 10,)"), - ("a=RANGE 1 10 5", "a=range(1, 10, 5)"), - ("a=RANDOM 40 + 120", "a=Random(40 + 120)"), - ("a=RANDOM(40) + 120", "a=Random(40) + 120"), - ("a=RANDOM [1, 2, 3]", "a=Random([1, 2, 3])"), - ("a=[sin 90 + cos 15, cos 100 * x, sqrt 25 * 25]", "a=[sin(90 + cos(15)), cos(100 * x), sqrt(25 * 25)]"), - ("a=[sin 90 + cos 15, cos 100 * x, sqrt 25 * 25]", "a=[sin(90 + cos(15)), cos(100 * x), sqrt(25 * 25)]"), - ("a=[sin(90) + cos 15, cos(100) * x, sqrt(25) * 25]", "a=[sin(90) + cos(15), cos(100) * x, sqrt(25) * 25]"), - ("TO x y z\nOUTPUT 3\nEND", "global x\ndef x(y, z):\n __checkhalt__()\n %s\n return 3\n %s" % (((self.LS),)*2)), - ("TO x\nOUTPUT 3\nEND", "global x\ndef x():\n __checkhalt__()\n %s\n return 3\n %s" % (((self.LS),)*2)), - ("TO f x y z\nOUTPUT x+y+z\nEND\na = [-sin -len f [-cos 45, 6] -len [1, 2, 3] -sin -90", "global f\ndef f(x, y, z):\n __checkhalt__()\n %s\n return x+y+z\n %s\n%s\na = [-sin(-len(f([-cos(45), 6], -len([1, 2, 3]), -sin(-90))))" % (((self.LS),)*3)), - ("TO f x y z\nOUTPUT x+y+z\nEND\na = [sin len f [cos 45, 6] [1, 2, 3] sin 90", "global f\ndef f(x, y, z):\n __checkhalt__()\n %s\n return x+y+z\n %s\n%s\na = [sin(len(f([cos(45), 6], [1, 2, 3], sin(90))))" % (((self.LS),)*3)), - ("TO f x y z\nLABEL x+y+z\nEND\nf len [1, cos 2, [65]] sqrt len [1, 2, 3, 4] sin 90 * cos 270", "global f\ndef f(x, y, z):\n __checkhalt__()\n %s\n label(x+y+z)\n %s\n%s\nf(len([1, cos(2), [65]]), sqrt(len([1, 2, 3, 4])), sin(90 * cos(270)))" % (((self.LS),)*3)), - ("TO f x y z\nLABEL x+y+z\nEND\nf len([1, cos 2, [65]]) sqrt(len [1, 2, 3, 4]) sin(90) * cos 270", "global f\ndef f(x, y, z):\n __checkhalt__()\n %s\n label(x+y+z)\n %s\n%s\nf(len([1, cos(2), [65]]), sqrt(len([1, 2, 3, 4])), sin(90) * cos(270))" % (((self.LS),)*3)), - ("TO f x y z\nLABEL x+y+z\nEND\nf (len [1, cos 2, [65]]) (sqrt len [1, 2, 3, 4]) (sin 90) * (cos 270)", "global f\ndef f(x, y, z):\n __checkhalt__()\n %s\n label(x+y+z)\n %s\n%s\nf((len([1, cos(2), [65]])), (sqrt(len([1, 2, 3, 4]))), (sin(90)) * (cos(270)))" % (((self.LS),)*3)), - # arbitrary order of function definitions and calls - ("f 1 1 f 2 2\nTO f x y\nPRINT x + y\nEND", "global f\nf(1, 1)\nf(2, 2)\n%s\ndef f(x, y):\n __checkhalt__()\n %s\n Print(x + y)\n %s" % (((self.LS),)*3)), - ): - compiled = xCompile.invoke((test[0],), (), ())[0] - self.assertEqual(test[1], re.sub(r'(\n| +\n)+', '\n', re.sub(r'\( ', '(', compiled)).strip()) - -# vim: set shiftwidth=4 softtabstop=4 expandtab: diff --git a/sw/qa/uitest/librelogo/run.py b/sw/qa/uitest/librelogo/run.py deleted file mode 100644 index 5d64e1bea152..000000000000 --- a/sw/qa/uitest/librelogo/run.py +++ /dev/null @@ -1,103 +0,0 @@ -# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- -# -# 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/. - -from uitest.framework import UITestCase -from libreoffice.uno.propertyvalue import mkPropertyValues -from uitest.uihelper.common import get_state_as_dict, type_text - -import time -from uitest.debug import sleep -from libreoffice.uno.propertyvalue import mkPropertyValues -from uitest.uihelper.common import select_pos - -class LibreLogoTest(UITestCase): - LIBRELOGO_PATH = "vnd.sun.star.script:LibreLogo|LibreLogo.py$%s?language=Python&location=share" - - def createMasterScriptProviderFactory(self): - xServiceManager = self.xContext.ServiceManager - return xServiceManager.createInstanceWithContext( - "com.sun.star.script.provider.MasterScriptProviderFactory", - self.xContext) - - def getScript(self, command): - xMasterScriptProviderFactory = self.createMasterScriptProviderFactory() - document = self.ui_test.get_component() - xScriptProvider = xMasterScriptProviderFactory.createScriptProvider(document) - xScript = xScriptProvider.getScript(self.LIBRELOGO_PATH %command) - self.assertIsNotNone(xScript, "xScript was not loaded") - return xScript - - def logo(self, command): - self.xUITest.executeCommand(self.LIBRELOGO_PATH %command) - - def test_librelogo(self): - self.ui_test.create_doc_in_start_center("writer") - document = self.ui_test.get_component() - xWriterDoc = self.xUITest.getTopFocusWindow() - xWriterEdit = xWriterDoc.getChild("writer_edit") - # to check the state of LibreLogo program execution - xIsAlive = self.getScript("__is_alive__") - - # run a program with basic drawing commands FORWARD and RIGHT - # using their abbreviated names FD and RT - type_text(xWriterEdit, "fd 100 rt 45 fd 100") - self.logo("run") - # wait for LibreLogo program termination - while xIsAlive.invoke((), (), ())[0]: - pass - # check shape count for - # a) program running: - # - turtle shape: result of program start - # - line shape: result of turtle drawing - # b) continuous line drawing (the regression - # related to the fix of tdf#106792 resulted shorter line - # segments than the turtle path and non-continuous line - # drawing, ie. in this example, three line shapes - # instead of a single one. See its fix in - # commit 502e8785085f9e8b54ee383080442c2dcaf95b15) - self.assertEqual(document.DrawPage.getCount(), 2) - - # check formatting by "magic wand" - self.logo("__translate__") - # a) check expansion of abbreviated commands : fd -> FORWARD, rt -> RIGHT, - # b) check line breaking (fix for tdf#100941: new line instead of the text "\" and "n") - self.assertEqual(document.Text.String, "\nFORWARD 100 RIGHT 45 FORWARD 100") - # c) check usage of real paragraphs instead of line break (tdf#120422) - # first paragraph is empty (for working page break) - self.assertEqual(document.Text.createEnumeration().nextElement().String, "") - - # function definitions and calls can be in arbitrary order - document.Text.String = """ -; dragon curve -TO x n -IF n = 0 [ STOP ] -x n-1 -RIGHT 90 -y n-1 ; it worked only as "y(n-1)" -FORWARD 10 -END - -TO y n -IF n = 0 [ STOP ] -FORWARD 10 -x n-1 -LEFT 90 -y n-1 -END - -PICTURE ; start new line draw -x 3 ; draw only a few levels -""" - self.logo("run") - # wait for LibreLogo program termination - while xIsAlive.invoke((), (), ())[0]: - pass - # new shape + previous two ones = 3 - self.assertEqual(document.DrawPage.getCount(), 3) - - self.ui_test.close_doc() - -# vim: set shiftwidth=4 softtabstop=4 expandtab: commit 4b2bd04e09901ebdce616c2be6f2e94184ba0268 Author: Eike Rathke <er...@redhat.com> AuthorDate: Mon May 11 18:07:11 2020 +0200 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Sat Nov 6 03:42:25 2021 +0100 Adapt to be able to build against ICU 66 In case building against system ICU 66 is wanted. Otherwise an interim step on the way to ICU 67. Change-Id: I8c559ee3206afd4f61af4fd3af7dd85911198f3b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93985 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins (cherry picked from commit b4f398db743213e80ecceab97a2dcb01b465b3b9) diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx index 502611e920b6..198585b6c14e 100644 --- a/i18nutil/source/utility/unicode.cxx +++ b/i18nutil/source/utility/unicode.cxx @@ -763,6 +763,20 @@ 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; + case USCRIPT_DIVES_AKURU: + sRet = "dv-Diak"; + break; + case USCRIPT_KHITAN_SMALL_SCRIPT: + sRet = "zkt-Kits"; + break; + case USCRIPT_YEZIDI: + sRet = "kmr-Yezi"; + break; #endif } return sRet; diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc index f84e5eb69140..8b45d32772c3 100644 --- a/include/svx/strings.hrc +++ b/include/svx/strings.hrc @@ -1665,6 +1665,14 @@ #define RID_SUBSETSTR_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A NC_("RID_SUBSETMAP", "Symbols and Pictographs Extended-A") #define RID_SUBSETSTR_TAMIL_SUPPLEMENT NC_("RID_SUBSETMAP", "Tamil Supplement") #define RID_SUBSETSTR_WANCHO NC_("RID_SUBSETMAP", "Wancho") +#define RID_SUBSETSTR_CHORASMIAN NC_("RID_SUBSETMAP", "Chorasmian") +#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension G") +#define RID_SUBSETSTR_DIVES_AKURU NC_("RID_SUBSETMAP", "Dhives Akuru") +#define RID_SUBSETSTR_KHITAN_SMALL_SCRIPT NC_("RID_SUBSETMAP", "Khitan small script") +#define RID_SUBSETSTR_LISU_SUPPLEMENT NC_("RID_SUBSETMAP", "Lisu Supplement") +#define RID_SUBSETSTR_SYMBOLS_FOR_LEGACY_COMPUTING NC_("RID_SUBSETMAP", "Symbols for Legacy Computing") +#define RID_SUBSETSTR_TANGUT_SUPPLEMENT NC_("RID_SUBSETMAP", "Tangut Supplement") +#define RID_SUBSETSTR_YEZIDI NC_("RID_SUBSETMAP", "Yezidi") #define RID_SVXSTR_FRAMEDIR_LTR NC_("RID_SVXSTR_FRAMEDIR_LTR", "Left-to-right (LTR)") #define RID_SVXSTR_FRAMEDIR_RTL NC_("RID_SVXSTR_FRAMEDIR_RTL", "Right-to-left (RTL)") diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx index 535e6c73bc09..2513b35e898d 100644 --- a/svx/source/dialog/charmap.cxx +++ b/svx/source/dialog/charmap.cxx @@ -1808,6 +1808,32 @@ void SubsetMap::InitList() 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; + case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G: + aAllSubsets.emplace_back( 0x30000, 0x3134F, SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G) ); + break; + case UBLOCK_DIVES_AKURU: + aAllSubsets.emplace_back( 0x11900, 0x1195F, SvxResId(RID_SUBSETSTR_DIVES_AKURU) ); + break; + case UBLOCK_KHITAN_SMALL_SCRIPT: + aAllSubsets.emplace_back( 0x18B00, 0x18CFF, SvxResId(RID_SUBSETSTR_KHITAN_SMALL_SCRIPT) ); + break; + case UBLOCK_LISU_SUPPLEMENT: + aAllSubsets.emplace_back( 0x11FB0, 0x11FBF, SvxResId(RID_SUBSETSTR_LISU_SUPPLEMENT) ); + break; + case UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING: + aAllSubsets.emplace_back( 0x1FB00, 0x1FBFF, SvxResId(RID_SUBSETSTR_SYMBOLS_FOR_LEGACY_COMPUTING) ); + break; + case UBLOCK_TANGUT_SUPPLEMENT: + aAllSubsets.emplace_back( 0x18D00, 0x18D8F, SvxResId(RID_SUBSETSTR_TANGUT_SUPPLEMENT) ); + break; + case UBLOCK_YEZIDI: + aAllSubsets.emplace_back( 0x10E80, 0x10EBF, SvxResId(RID_SUBSETSTR_YEZIDI) ); + break; +#endif } commit ecdf318e713a38db3d5c88111d854061261b4691 Author: Eike Rathke <er...@redhat.com> AuthorDate: Mon Oct 28 16:14:18 2019 +0100 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Sat Nov 6 03:42:25 2021 +0100 Upgrade to ICU 64.2 As an interim step to upgrade to ICU 65.1 Adds new scripts and Unicode blocks from Unicode 12. (this picks only the core changes, and leaves external ICU at version 63) Change-Id: Idc4a6b29ffb04bcb424522fcbd29a8db0428c056 Reviewed-on: https://gerrit.libreoffice.org/81611 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins (cherry picked from commit 398e1e6ae83999eea8fb8c845190667695ac115f) diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx index ce363acbc4e2..502611e920b6 100644 --- a/i18nutil/source/utility/unicode.cxx +++ b/i18nutil/source/utility/unicode.cxx @@ -749,6 +749,20 @@ 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; + case USCRIPT_NYIAKENG_PUACHUE_HMONG: + sRet = "hmn-Hmnp"; // macrolanguage code + break; + case USCRIPT_NANDINAGARI: + sRet = "sa-Nand"; + break; + case USCRIPT_WANCHO: + sRet = "nnp-Wcho"; + break; #endif } return sRet; diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc index 2d722447bdc4..f84e5eb69140 100644 --- a/include/svx/strings.hrc +++ b/include/svx/strings.hrc @@ -1656,6 +1656,15 @@ #define RID_SUBSETSTR_MEDEFAIDRIN NC_("RID_SUBSETMAP", "Medefaidrin") #define RID_SUBSETSTR_OLD_SOGDIAN NC_("RID_SUBSETMAP", "Old Sogdian") #define RID_SUBSETSTR_SOGDIAN NC_("RID_SUBSETMAP", "Sogdian") +#define RID_SUBSETSTR_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS NC_("RID_SUBSETMAP", "Egyptian Hieroglyph Format Controls") +#define RID_SUBSETSTR_ELYMAIC NC_("RID_SUBSETMAP", "Elymaic") +#define RID_SUBSETSTR_NANDINAGARI NC_("RID_SUBSETMAP", "Nandinagari") +#define RID_SUBSETSTR_NYIAKENG_PUACHUE_HMONG NC_("RID_SUBSETMAP", "Nyiakeng Puachue Hmong") +#define RID_SUBSETSTR_OTTOMAN_SIYAQ_NUMBERS NC_("RID_SUBSETMAP", "Ottoman Siyaq Numbers") +#define RID_SUBSETSTR_SMALL_KANA_EXTENSION NC_("RID_SUBSETMAP", "Small Kana Extension") +#define RID_SUBSETSTR_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A NC_("RID_SUBSETMAP", "Symbols and Pictographs Extended-A") +#define RID_SUBSETSTR_TAMIL_SUPPLEMENT NC_("RID_SUBSETMAP", "Tamil Supplement") +#define RID_SUBSETSTR_WANCHO NC_("RID_SUBSETMAP", "Wancho") #define RID_SVXSTR_FRAMEDIR_LTR NC_("RID_SVXSTR_FRAMEDIR_LTR", "Left-to-right (LTR)") #define RID_SVXSTR_FRAMEDIR_RTL NC_("RID_SVXSTR_FRAMEDIR_RTL", "Right-to-left (RTL)") diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx index 81ecf1f30320..535e6c73bc09 100644 --- a/svx/source/dialog/charmap.cxx +++ b/svx/source/dialog/charmap.cxx @@ -1779,6 +1779,35 @@ void SubsetMap::InitList() 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; + case UBLOCK_ELYMAIC: + aAllSubsets.emplace_back( 0x10FE0, 0x10FFF, SvxResId(RID_SUBSETSTR_ELYMAIC) ); + break; + case UBLOCK_NANDINAGARI: + aAllSubsets.emplace_back( 0x119A0, 0x119FF, SvxResId(RID_SUBSETSTR_NANDINAGARI) ); + break; + case UBLOCK_NYIAKENG_PUACHUE_HMONG: + aAllSubsets.emplace_back( 0x1E100, 0x1E14F, SvxResId(RID_SUBSETSTR_NYIAKENG_PUACHUE_HMONG) ); + break; + case UBLOCK_OTTOMAN_SIYAQ_NUMBERS: + aAllSubsets.emplace_back( 0x1ED00, 0x1ED4F, SvxResId(RID_SUBSETSTR_OTTOMAN_SIYAQ_NUMBERS) ); + break; + case UBLOCK_SMALL_KANA_EXTENSION: + aAllSubsets.emplace_back( 0x1B130, 0x1B16F, SvxResId(RID_SUBSETSTR_SMALL_KANA_EXTENSION) ); + break; + case UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A: + aAllSubsets.emplace_back( 0x1FA70, 0x1FAFF, SvxResId(RID_SUBSETSTR_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A) ); + break; + case UBLOCK_TAMIL_SUPPLEMENT: + aAllSubsets.emplace_back( 0x11FC0, 0x11FFF, SvxResId(RID_SUBSETSTR_TAMIL_SUPPLEMENT) ); + break; + case UBLOCK_WANCHO: + aAllSubsets.emplace_back( 0x1E2C0, 0x1E2FF, SvxResId(RID_SUBSETSTR_WANCHO) ); + break; +#endif }