4f67638
From 9206a08ada00e8762c4a634f242bd566028964bb Mon Sep 17 00:00:00 2001
4f67638
Message-Id: <9206a08ada00e8762c4a634f242bd566028964bb.1511376335.git.erack@redhat.com>
4f67638
From: Eike Rathke <erack@redhat.com>
4f67638
Date: Fri, 17 Nov 2017 11:03:45 +0100
4f67638
Subject: [PATCH] Upgrade to ICU 60.1
4f67638
MIME-Version: 1.0
4f67638
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
4f67638
4f67638
This is a multi-part message in MIME format.
4f67638
--------------erAck-patch-parts
4f67638
Content-Type: text/plain; charset=UTF-8; format=fixed
4f67638
Content-Transfer-Encoding: 8bit
4f67638
4f67638
4f67638
Partially extracted and adjusted from
4f67638
4f67638
Change-Id: I6d90f51ee88c4e1005edbaa93d23cfb94cb2acfb
4f67638
Reviewed-on: https://gerrit.libreoffice.org/44871
4f67638
Reviewed-by: Eike Rathke <erack@redhat.com>
4f67638
Tested-by: Eike Rathke <erack@redhat.com>
4f67638
---
4f67638
 external/firebird/ExternalProject_firebird.mk      |   6 +
4f67638
 .../source/breakiterator/breakiterator_unicode.cxx |  21 +++
4f67638
 i18nutil/source/utility/unicode.cxx                |  11 ++
4f67638
 include/svx/strings.hrc                            |   7 +
4f67638
 svx/source/dialog/charmap.cxx                      |  23 +++
4f67638
4f67638
4f67638
--------------erAck-patch-parts
4f67638
Content-Type: text/x-patch; name="0001-Upgrade-to-ICU-60.1.patch"
4f67638
Content-Transfer-Encoding: 8bit
4f67638
Content-Disposition: attachment; filename="0001-Upgrade-to-ICU-60.1.patch"
4f67638
4f67638
diff -ru orig.libreoffice-6.0.0.0.alpha1/external/firebird/ExternalProject_firebird.mk libreoffice-6.0.0.0.alpha1/external/firebird/ExternalProject_firebird.mk
4f67638
--- a/external/firebird/ExternalProject_firebird.mk	2017-10-19 23:52:58.000000000 +0200
4f67638
+++ b/external/firebird/ExternalProject_firebird.mk	2017-11-22 20:28:58.340429178 +0100
4f67638
@@ -26,6 +26,10 @@
4f67638
 INVOKE_FPA:="CPU=\$$(EMPTY) $${FB_CPU_ARG}"
4f67638
 endif
4f67638
 
4f67638
+ifeq ($(COM_IS_CLANG),TRUE)
4f67638
+firebird_NO_CXX11_NARROWING := -Wno-c++11-narrowing
4f67638
+endif
4f67638
+
4f67638
 MAKE_PRE=$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,icu)/source/lib) LC_ALL=C
4f67638
 
4f67638
 MAKE_POST=$(if $(filter MACOSX,$(OS)),&& $(PERL) \
4f67638
@@ -70,6 +74,8 @@
4f67638
 			$(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_CFLAGS), \
4f67638
 				-L$(call gb_UnpackedTarball_get_dir,libtommath) \
4f67638
 			) \
4f67638
+			$(CXXFLAGS_CXX11) \
4f67638
+			$(firebird_NO_CXX11_NARROWING) \
4f67638
 		" \
4f67638
 		&& export LDFLAGS=" \
4f67638
 			$(if $(SYSTEM_ICU),$(ICU_LIBS), \
4f67638
diff -ru orig.libreoffice-6.0.0.0.alpha1/i18npool/source/breakiterator/breakiterator_unicode.cxx libreoffice-6.0.0.0.alpha1/i18npool/source/breakiterator/breakiterator_unicode.cxx
4f67638
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx	2017-10-19 23:52:58.000000000 +0200
4f67638
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx	2017-11-22 20:28:58.341429176 +0100
4f67638
@@ -544,6 +544,27 @@
4f67638
         } else { //word boundary break
4f67638
             lbr.breakIndex = pLineBI->preceding(nStartPos);
4f67638
             lbr.breakType = BreakType::WORDBOUNDARY;
4f67638
+
4f67638
+            // Special case for Slash U+002F SOLIDUS in URI and path names.
4f67638
+            // TR14 defines that as SY: Symbols Allowing Break After (A).
4f67638
+            // This is unwanted in paths, see also i#17155
4f67638
+            if (lbr.breakIndex > 0 && Text[lbr.breakIndex-1] == '/')
4f67638
+            {
4f67638
+                // Look backward and take any whitespace before as a break
4f67638
+                // opportunity. This also glues something like "w/o".
4f67638
+                // Avoid an overly long path and break it as was indicated.
4f67638
+                // Overly long here is arbitrarily defined.
4f67638
+                const sal_Int32 nOverlyLong = 66;
4f67638
+                sal_Int32 nPos = lbr.breakIndex - 1;
4f67638
+                while (nPos > 0 && lbr.breakIndex - nPos < nOverlyLong)
4f67638
+                {
4f67638
+                    if (u_isWhitespace(Text.iterateCodePoints( &nPos, -1)))
4f67638
+                    {
4f67638
+                        lbr.breakIndex = nPos + 1;
4f67638
+                        break;
4f67638
+                    }
4f67638
+                }
4f67638
+            }
4f67638
         }
4f67638
 
4f67638
 #define WJ 0x2060   // Word Joiner
4f67638
diff -ru orig.libreoffice-6.0.0.0.alpha1/i18nutil/source/utility/unicode.cxx libreoffice-6.0.0.0.alpha1/i18nutil/source/utility/unicode.cxx
4f67638
--- a/i18nutil/source/utility/unicode.cxx	2017-10-19 23:52:58.000000000 +0200
4f67638
+++ b/i18nutil/source/utility/unicode.cxx	2017-11-22 20:28:58.342429173 +0100
4f67638
@@ -716,6 +716,17 @@
4f67638
             sRet = "mis";   // Zsye - Emoji variant
4f67638
             break;
4f67638
 #endif
4f67638
+#if (U_ICU_VERSION_MAJOR_NUM >= 60)
4f67638
+        case USCRIPT_MASARAM_GONDI:
4f67638
+            sRet = "gon-Gonm";  // macro language code, could be wsg,esg,gno
4f67638
+            break;
4f67638
+        case USCRIPT_SOYOMBO:
4f67638
+            sRet = "mn-Soyo";   // abugida to write Mongolian, also Tibetan and Sanskrit
4f67638
+            break;
4f67638
+        case USCRIPT_ZANABAZAR_SQUARE:
4f67638
+            sRet = "mn-Zanb";   // abugida to write Mongolian
4f67638
+            break;
4f67638
+#endif
4f67638
     }
4f67638
     return sRet;
4f67638
 }
4f67638
diff -ru orig.libreoffice-6.0.0.0.alpha1/include/svx/strings.hrc libreoffice-6.0.0.0.alpha1/include/svx/strings.hrc
4f67638
--- a/include/svx/strings.hrc	2017-10-19 23:52:58.000000000 +0200
4f67638
+++ b/include/svx/strings.hrc	2017-11-22 20:28:58.343429171 +0100
4f67638
@@ -1588,6 +1588,13 @@
4f67638
 #define RID_SUBSETSTR_OSAGE                                 NC_("RID_SUBSETMAP", "Osage")
4f67638
 #define RID_SUBSETSTR_TANGUT                                NC_("RID_SUBSETMAP", "Tangut")
4f67638
 #define RID_SUBSETSTR_TANGUT_COMPONENTS                     NC_("RID_SUBSETMAP", "Tangut Components")
4f67638
+#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F    NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension F")
4f67638
+#define RID_SUBSETSTR_KANA_EXTENDED_A                       NC_("RID_SUBSETMAP", "Kana Extended-A")
4f67638
+#define RID_SUBSETSTR_MASARAM_GONDI                         NC_("RID_SUBSETMAP", "Masaram Gondi")
4f67638
+#define RID_SUBSETSTR_NUSHU                                 NC_("RID_SUBSETMAP", "Nushu")
4f67638
+#define RID_SUBSETSTR_SOYOMBO                               NC_("RID_SUBSETMAP", "Soyombo")
4f67638
+#define RID_SUBSETSTR_SYRIAC_SUPPLEMENT                     NC_("RID_SUBSETMAP", "Syriac Supplement")
4f67638
+#define RID_SUBSETSTR_ZANABAZAR_SQUARE                      NC_("RID_SUBSETMAP", "Zanabazar Square")
4f67638
 
4f67638
 #endif
4f67638
 
4f67638
diff -ru orig.libreoffice-6.0.0.0.alpha1/svx/source/dialog/charmap.cxx libreoffice-6.0.0.0.alpha1/svx/source/dialog/charmap.cxx
4f67638
--- a/svx/source/dialog/charmap.cxx	2017-10-19 23:52:58.000000000 +0200
4f67638
+++ b/svx/source/dialog/charmap.cxx	2017-11-22 20:28:58.343429171 +0100
4f67638
@@ -1832,6 +1832,29 @@
4f67638
                     aAllSubsets.emplace_back( 0x18800, 0x18AFF, SvxResId(RID_SUBSETSTR_TANGUT_COMPONENTS) );
4f67638
                     break;
4f67638
 #endif
4f67638
+#if (U_ICU_VERSION_MAJOR_NUM >= 60)
4f67638
+                case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F:
4f67638
+                    aAllSubsets.emplace_back( 0x2CEB0, 0x2EBE0, SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F) );
4f67638
+                    break;
4f67638
+                case UBLOCK_KANA_EXTENDED_A:
4f67638
+                    aAllSubsets.emplace_back( 0x1B100, 0x1B12F, SvxResId(RID_SUBSETSTR_KANA_EXTENDED_A) );
4f67638
+                    break;
4f67638
+                case UBLOCK_MASARAM_GONDI:
4f67638
+                    aAllSubsets.emplace_back( 0x11D00, 0x11D5F, SvxResId(RID_SUBSETSTR_MASARAM_GONDI) );
4f67638
+                    break;
4f67638
+                case UBLOCK_NUSHU:
4f67638
+                    aAllSubsets.emplace_back( 0x1B170, 0x1B2FF, SvxResId(RID_SUBSETSTR_NUSHU) );
4f67638
+                    break;
4f67638
+                case UBLOCK_SOYOMBO:
4f67638
+                    aAllSubsets.emplace_back( 0x11A50, 0x11AAF, SvxResId(RID_SUBSETSTR_SOYOMBO) );
4f67638
+                    break;
4f67638
+                case UBLOCK_SYRIAC_SUPPLEMENT:
4f67638
+                    aAllSubsets.emplace_back( 0x0860, 0x086f, SvxResId(RID_SUBSETSTR_SYRIAC_SUPPLEMENT) );
4f67638
+                    break;
4f67638
+                case UBLOCK_ZANABAZAR_SQUARE:
4f67638
+                    aAllSubsets.emplace_back( 0x11A00, 0x11A4F, SvxResId(RID_SUBSETSTR_ZANABAZAR_SQUARE) );
4f67638
+                    break;
4f67638
+#endif
4f67638
 
4f67638
             }
4f67638
 
4f67638
4f67638
--------------erAck-patch-parts--
4f67638
4f67638