configure.ac                                                            |    2 
 download.lst                                                            |    8 
+-
 external/icu/UnpackedTarball_icu.mk                                     |    2 
 external/icu/c++20-comparison.patch.1                                   |   30 
++++----
 external/icu/do-not-reset-useful-cache-to-empty-in-populateNear.patch.2 |   37 
----------
 external/icu/strict_ansi.patch                                          |   15 
----
 i18nutil/source/utility/unicode.cxx                                     |    8 
++
 include/svx/strings.hrc                                                 |    7 
+
 svx/source/dialog/charmap.cxx                                           |   24 
++++++
 9 files changed, 58 insertions(+), 75 deletions(-)

New commits:
commit 20ebccd6b349a1d9d3e057de55933c2805ff5d1a
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Tue Oct 25 00:34:34 2022 +0200
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Tue Oct 25 01:39:21 2022 +0200

    Update to ICU 72.1
    
    https://icu.unicode.org/download/72
    
    Unicode 15
    
https://blog.unicode.org/2022/09/announcing-unicode-standard-version-150.html
    
    CLDR 42
    https://blog.unicode.org/2022/10/unicode-cldr-v42-available.html
    
    New scripts:
    USCRIPT_KAWI
    USCRIPT_NAG_MUNDARI
    
    New Unicode blocks:
    UBLOCK_ARABIC_EXTENDED_C
    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H
    UBLOCK_CYRILLIC_EXTENDED_D
    UBLOCK_DEVANAGARI_EXTENDED_A
    UBLOCK_KAKTOVIK_NUMERALS
    UBLOCK_KAWI
    UBLOCK_NAG_MUNDARI
    
    Change-Id: I8822791e914e6700358b817a1af94b7dcd16b26d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141788
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins

diff --git a/configure.ac b/configure.ac
index 064e0683637d..bacc245f9396 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10796,7 +10796,7 @@ fi
 dnl ===================================================================
 dnl Check for system icu
 dnl ===================================================================
-ICU_MAJOR=71
+ICU_MAJOR=72
 ICU_MINOR=1
 ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
 ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
diff --git a/download.lst b/download.lst
index 1b855434d7f9..0db9970fcd5d 100644
--- a/download.lst
+++ b/download.lst
@@ -106,10 +106,10 @@ export HUNSPELL_SHA256SUM := 
b2d9c5369c2cc7f321cb5983fda2dbf007dce3d9e1751974684
 export HUNSPELL_TARBALL := hunspell-1.7.1.tar.gz
 export HYPHEN_SHA256SUM := 
304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
 export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
-export ICU_SHA256SUM := 
67a7e6e51f61faf1306b6935333e13b2c48abd8da6d2f46ce6adca24b1e21ebf
-export ICU_TARBALL := icu4c-71_1-src.tgz
-export ICU_DATA_SHA256SUM := 
e3882b4fece6e5e039f22c3189b7ba224180fd26fdbfa9db284617455b93e804
-export ICU_DATA_TARBALL := icu4c-71_1-data.zip
+export ICU_SHA256SUM := 
a2d2d38217092a7ed56635e34467f92f976b370e20182ad325edea6681a71d68
+export ICU_TARBALL := icu4c-72_1-src.tgz
+export ICU_DATA_SHA256SUM := 
ee19f876507d6c23d9e0a2b631096f6b0eaa6fa61728c33a89efdb55e3385dea
+export ICU_DATA_TARBALL := icu4c-72_1-data.zip
 export JFREEREPORT_FLOW_ENGINE_SHA256SUM := 
233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd
 export JFREEREPORT_FLOW_ENGINE_TARBALL := 
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
 export JFREEREPORT_FLUTE_SHA256SUM := 
1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133
diff --git a/external/icu/UnpackedTarball_icu.mk 
b/external/icu/UnpackedTarball_icu.mk
index ccb1a1a8b9b2..f58223d5bc5f 100644
--- a/external/icu/UnpackedTarball_icu.mk
+++ b/external/icu/UnpackedTarball_icu.mk
@@ -36,11 +36,9 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
        external/icu/c++20-comparison.patch.1 \
        external/icu/ubsan.patch.1 \
        external/icu/Wdeprecated-copy-dtor.patch \
-       external/icu/strict_ansi.patch \
        external/icu/icu4c-windows-cygwin-cross.patch.1 \
        external/icu/icu4c-emscripten-cross.patch.1 \
        external/icu/icu4c-use-pkgdata-single-ccode-file-mode.patch.1 \
-       external/icu/do-not-reset-useful-cache-to-empty-in-populateNear.patch.2 
\
        external/icu/icu4c-khmerbreakengine.patch.1 \
        external/icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch.1 \
        $(if $(filter-out 
ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.patch.1) \
diff --git a/external/icu/c++20-comparison.patch.1 
b/external/icu/c++20-comparison.patch.1
index 3d2d7c042951..fa10b048ce41 100644
--- a/external/icu/c++20-comparison.patch.1
+++ b/external/icu/c++20-comparison.patch.1
@@ -1,6 +1,6 @@
 diff -ur icu.org/source/i18n/unicode/rbtz.h icu/source/i18n/unicode/rbtz.h
---- icu.org/source/i18n/unicode/rbtz.h 2021-10-28 18:04:57.000000000 +0200
-+++ icu/source/i18n/unicode/rbtz.h     2021-11-15 18:56:24.364137609 +0100
+--- icu.org/source/i18n/unicode/rbtz.h 2022-10-19 02:53:21.000000000 +0200
++++ icu/source/i18n/unicode/rbtz.h     2022-10-24 22:20:10.889969185 +0200
 @@ -87,6 +87,7 @@
       * @stable ICU 3.8
       */
@@ -10,8 +10,8 @@ diff -ur icu.org/source/i18n/unicode/rbtz.h 
icu/source/i18n/unicode/rbtz.h
      /**
       * Adds the `TimeZoneRule` which represents time transitions.
 diff -ur icu.org/source/i18n/unicode/simpletz.h 
icu/source/i18n/unicode/simpletz.h
---- icu.org/source/i18n/unicode/simpletz.h     2021-10-28 18:04:57.000000000 
+0200
-+++ icu/source/i18n/unicode/simpletz.h 2021-11-15 19:01:41.774487719 +0100
+--- icu.org/source/i18n/unicode/simpletz.h     2022-10-19 02:53:21.000000000 
+0200
++++ icu/source/i18n/unicode/simpletz.h 2022-10-24 22:20:10.890969183 +0200
 @@ -112,6 +112,7 @@
       * @stable ICU 2.0
       */
@@ -21,8 +21,8 @@ diff -ur icu.org/source/i18n/unicode/simpletz.h 
icu/source/i18n/unicode/simpletz
      /**
       * Constructs a SimpleTimeZone with the given raw GMT offset and time 
zone ID,
 diff -ur icu.org/source/i18n/unicode/smpdtfmt.h 
icu/source/i18n/unicode/smpdtfmt.h
---- icu.org/source/i18n/unicode/smpdtfmt.h     2021-10-28 18:04:57.000000000 
+0200
-+++ icu/source/i18n/unicode/smpdtfmt.h 2021-11-15 19:02:47.382353381 +0100
+--- icu.org/source/i18n/unicode/smpdtfmt.h     2022-10-19 02:53:21.000000000 
+0200
++++ icu/source/i18n/unicode/smpdtfmt.h 2022-10-24 22:20:10.891969181 +0200
 @@ -877,6 +877,7 @@
       * @stable ICU 2.0
       */
@@ -32,8 +32,8 @@ diff -ur icu.org/source/i18n/unicode/smpdtfmt.h 
icu/source/i18n/unicode/smpdtfmt
  
      using DateFormat::format;
 diff -ur icu.org/source/i18n/unicode/stsearch.h 
icu/source/i18n/unicode/stsearch.h
---- icu.org/source/i18n/unicode/stsearch.h     2021-10-28 18:04:57.000000000 
+0200
-+++ icu/source/i18n/unicode/stsearch.h 2021-11-15 19:03:27.014272230 +0100
+--- icu.org/source/i18n/unicode/stsearch.h     2022-10-19 02:53:21.000000000 
+0200
++++ icu/source/i18n/unicode/stsearch.h 2022-10-24 22:20:10.892969178 +0200
 @@ -298,6 +298,7 @@
       * @stable ICU 2.0
       */
@@ -43,8 +43,8 @@ diff -ur icu.org/source/i18n/unicode/stsearch.h 
icu/source/i18n/unicode/stsearch
      // public get and set methods ----------------------------------------
  
 diff -ur icu.org/source/i18n/unicode/tzrule.h icu/source/i18n/unicode/tzrule.h
---- icu.org/source/i18n/unicode/tzrule.h       2021-10-28 18:04:57.000000000 
+0200
-+++ icu/source/i18n/unicode/tzrule.h   2021-11-15 19:14:52.191331967 +0100
+--- icu.org/source/i18n/unicode/tzrule.h       2022-10-19 02:53:21.000000000 
+0200
++++ icu/source/i18n/unicode/tzrule.h   2022-10-24 22:30:23.298744116 +0200
 @@ -257,6 +257,7 @@
       * @stable ICU 3.8
       */
@@ -52,8 +52,8 @@ diff -ur icu.org/source/i18n/unicode/tzrule.h 
icu/source/i18n/unicode/tzrule.h
 +    bool operator!=(const InitialTimeZoneRule& that) const {return 
!operator==(that);}
  
      /**
-      * Gets the time when this rule takes effect in the given year.
-@@ -468,6 +469,7 @@
+      * Returns if this rule represents the same rule and offsets as another.
+@@ -454,6 +455,7 @@
       * @stable ICU 3.8
       */
      virtual bool operator!=(const TimeZoneRule& that) const override;
@@ -61,7 +61,7 @@ diff -ur icu.org/source/i18n/unicode/tzrule.h 
icu/source/i18n/unicode/tzrule.h
  
      /**
       * Gets the start date/time rule used by this rule.
-@@ -684,6 +686,7 @@
+@@ -670,6 +672,7 @@
       * @stable ICU 3.8
       */
      virtual bool operator!=(const TimeZoneRule& that) const override;
@@ -70,8 +70,8 @@ diff -ur icu.org/source/i18n/unicode/tzrule.h 
icu/source/i18n/unicode/tzrule.h
      /**
       * Gets the time type of the start times used by this rule.  The return 
value
 diff -ur icu.org/source/i18n/unicode/vtzone.h icu/source/i18n/unicode/vtzone.h
---- icu.org/source/i18n/unicode/vtzone.h       2021-10-28 18:04:57.000000000 
+0200
-+++ icu/source/i18n/unicode/vtzone.h   2021-11-15 19:16:07.461130004 +0100
+--- icu.org/source/i18n/unicode/vtzone.h       2022-10-19 02:53:21.000000000 
+0200
++++ icu/source/i18n/unicode/vtzone.h   2022-10-24 22:20:10.895969172 +0200
 @@ -83,6 +83,7 @@
       * @stable ICU 3.8
       */
diff --git 
a/external/icu/do-not-reset-useful-cache-to-empty-in-populateNear.patch.2 
b/external/icu/do-not-reset-useful-cache-to-empty-in-populateNear.patch.2
deleted file mode 100644
index bd7fe74fb42a..000000000000
--- a/external/icu/do-not-reset-useful-cache-to-empty-in-populateNear.patch.2
+++ /dev/null
@@ -1,37 +0,0 @@
-From 34b2f7174ba187d99dfb8704b9cf19d369accc13 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lu...@centrum.cz>
-Date: Wed, 16 Mar 2022 10:54:03 +0100
-Subject: [PATCH] do not reset useful cache to empty in populateNear()
-
----
- icu4c/source/common/rbbi_cache.cpp | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/icu4c/source/common/rbbi_cache.cpp 
b/icu4c/source/common/rbbi_cache.cpp
-index 26d82df781..54a77c97c6 100644
---- a/icu/source/common/rbbi_cache.cpp
-+++ b/icu/source/common/rbbi_cache.cpp
-@@ -352,7 +352,7 @@ UBool RuleBasedBreakIterator::BreakCache
-     if ((position < fBoundaries[fStartBufIdx] - 15) || position > 
(fBoundaries[fEndBufIdx] + 15)) {
-         int32_t aBoundary = 0;
-         int32_t ruleStatusIndex = 0;
--        if (position > 20) {
-+        if (position > 20 && false) { // handleSafePrevious() is broken and 
always returns 0
-             int32_t backupPos = fBI->handleSafePrevious(position);
- 
-             if (backupPos > 0) {
-@@ -376,7 +376,10 @@ UBool 
RuleBasedBreakIterator::BreakCache::populateNear(int32_t position, UErrorC
-                 ruleStatusIndex = fBI->fRuleStatusIndex;
-             }
-         }
--        reset(aBoundary, ruleStatusIndex);        // Reset cache to hold 
aBoundary as a single starting point.
-+        // Reset cache to hold aBoundary as a single starting point.
-+        // Do not do so if what's in the cache is still more useful than an 
empty cache.
-+        if (!(aBoundary == 0 && position > fBoundaries[fEndBufIdx]))
-+            reset(aBoundary, ruleStatusIndex);
-     }
- 
-     // Fill in boundaries between existing cache content and the new 
requested position.
--- 
-2.34.1
-
diff --git a/external/icu/strict_ansi.patch b/external/icu/strict_ansi.patch
deleted file mode 100644
index 972f0e65b1f1..000000000000
--- a/external/icu/strict_ansi.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- source/io/ufile.cpp
-+++ source/io/ufile.cpp
-@@ -21,12 +21,6 @@
- */
- 
- #include "unicode/platform.h"
--#if defined(__GNUC__) && !defined(__clang__) && defined(__STRICT_ANSI__)
--// g++, fileno isn't defined                  if     __STRICT_ANSI__ is 
defined.
--// clang fails to compile the <string> header unless __STRICT_ANSI__ is 
defined.
--// __GNUC__ is set by both gcc and clang.
--#undef __STRICT_ANSI__
--#endif
- 
- #include "locmap.h"
- #include "unicode/ustdio.h"
diff --git a/i18nutil/source/utility/unicode.cxx 
b/i18nutil/source/utility/unicode.cxx
index 33f1ca2f190e..6e002aa69f18 100644
--- a/i18nutil/source/utility/unicode.cxx
+++ b/i18nutil/source/utility/unicode.cxx
@@ -828,6 +828,14 @@ OString 
unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
         case USCRIPT_VITHKUQI:
             sRet = "sq-Vith";   // macrolanguage code
             break;
+#endif
+#if (U_ICU_VERSION_MAJOR_NUM >= 72)
+        case USCRIPT_KAWI:
+            sRet = "mis-Kawi";  // Uncoded with script
+            break;
+        case USCRIPT_NAG_MUNDARI:
+            sRet = "unr-Nagm";
+            break;
 #endif
     }
     return sRet;
diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index e6863c3b2228..d0b66a81f135 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -1786,6 +1786,13 @@
 #define RID_SUBSETSTR_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A  
NC_("RID_SUBSETMAP", "Canadian Aboriginal Syllabics Extended-A")
 #define RID_SUBSETSTR_VITHKUQI                              
NC_("RID_SUBSETMAP", "Vithkuqi")
 #define RID_SUBSETSTR_ZNAMENNY_MUSICAL_NOTATION             
NC_("RID_SUBSETMAP", "Znamenny Musical Notation")
+#define RID_SUBSETSTR_ARABIC_EXTENDED_C                     
NC_("RID_SUBSETMAP", "Arabic Extended-C")
+#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H    
NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension H")
+#define RID_SUBSETSTR_CYRILLIC_EXTENDED_D                   
NC_("RID_SUBSETMAP", "Cyrillic Extended-D")
+#define RID_SUBSETSTR_DEVANAGARI_EXTENDED_A                 
NC_("RID_SUBSETMAP", "Devanagari Extended-A")
+#define RID_SUBSETSTR_KAKTOVIK_NUMERALS                     
NC_("RID_SUBSETMAP", "Kaktovik Numerals")
+#define RID_SUBSETSTR_KAWI                                  
NC_("RID_SUBSETMAP", "Kawi")
+#define RID_SUBSETSTR_NAG_MUNDARI                           
NC_("RID_SUBSETMAP", "Nag Mundari")
 
 #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 b268fff518d1..bc3950ad2ca6 100644
--- a/svx/source/dialog/charmap.cxx
+++ b/svx/source/dialog/charmap.cxx
@@ -1894,7 +1894,29 @@ void SubsetMap::InitList()
                     aAllSubsets.emplace_back( 0x1CF00, 0x1CFCF, 
SvxResId(RID_SUBSETSTR_ZNAMENNY_MUSICAL_NOTATION) );
                     break;
 #endif
-
+#if (U_ICU_VERSION_MAJOR_NUM >= 72)
+                case UBLOCK_ARABIC_EXTENDED_C:
+                    aAllSubsets.emplace_back( 0x10EC0, 0x10EFF, 
SvxResId(RID_SUBSETSTR_ARABIC_EXTENDED_C) );
+                    break;
+                case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H:
+                    aAllSubsets.emplace_back( 0x31350, 0x323AF, 
SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H) );
+                    break;
+                case UBLOCK_CYRILLIC_EXTENDED_D:
+                    aAllSubsets.emplace_back( 0x1E030, 0x1E08F, 
SvxResId(RID_SUBSETSTR_CYRILLIC_EXTENDED_D) );
+                    break;
+                case UBLOCK_DEVANAGARI_EXTENDED_A:
+                    aAllSubsets.emplace_back( 0x11B00, 0x11B5F, 
SvxResId(RID_SUBSETSTR_DEVANAGARI_EXTENDED_A) );
+                    break;
+                case UBLOCK_KAKTOVIK_NUMERALS:
+                    aAllSubsets.emplace_back( 0x1D2C0, 0x1D2DF, 
SvxResId(RID_SUBSETSTR_KAKTOVIK_NUMERALS) );
+                    break;
+                case UBLOCK_KAWI:
+                    aAllSubsets.emplace_back( 0x11F00, 0x11F5F, 
SvxResId(RID_SUBSETSTR_KAWI) );
+                    break;
+                case UBLOCK_NAG_MUNDARI:
+                    aAllSubsets.emplace_back( 0x1E4D0, 0x1E4FF, 
SvxResId(RID_SUBSETSTR_NAG_MUNDARI) );
+                    break;
+#endif
             }
 
 #if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG

Reply via email to