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
 
             }
 

Reply via email to