diff --git a/office/libreoffice/libreoffice/actions.py b/office/libreoffice/libreoffice/actions.py index 32ac1106ad..199c772806 100644 --- a/office/libreoffice/libreoffice/actions.py +++ b/office/libreoffice/libreoffice/actions.py @@ -54,7 +54,7 @@ def setup(): --enable-qt6 \ --enable-gtk3 \ --enable-gtk4 \ - --enable-kf5 \ + --disable-kf5 \ --enable-kf6 \ --enable-release-build=yes \ --enable-python=system \ @@ -69,6 +69,7 @@ def setup(): --with-myspell-dicts \ --with-java \ --with-system-libs \ + --with-system-argon2 \ --without-system-dicts \ --without-fonts \ --without-system-altlinuxhyph \ @@ -95,6 +96,7 @@ def setup(): --without-system-orcus \ --without-system-jfreereport \ --without-system-zxcvbn \ + --without-system-java-websocket \ --with-jdk-home=/usr/lib/jvm/java-openjdk \ --with-external-tar=external/tarballs \ --with-gdrive-client-id=413772536636.apps.googleusercontent.com \ diff --git a/office/libreoffice/libreoffice/files/fix_pdf_import_with_poppler_25.02.patch b/office/libreoffice/libreoffice/files/fix_pdf_import_with_poppler_25.02.patch new file mode 100644 index 0000000000..ec0e78e008 --- /dev/null +++ b/office/libreoffice/libreoffice/files/fix_pdf_import_with_poppler_25.02.patch @@ -0,0 +1,17 @@ +diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx +index ebed12070..9b63559be 100644 +--- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx ++++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx +@@ -110,7 +110,11 @@ int main(int argc, char **argv) + + /* Get data directory location */ + #ifdef SYSTEM_POPPLER ++#if POPPLER_CHECK_VERSION(25, 2, 0) ++ const std::string datadir = ""; ++#else + const char* datadir = nullptr; ++#endif + #else + /* Creates an absolute path to the poppler_data directory, by taking the path + * to the xpdfimport executable (provided in argv[0], and concatenating a + diff --git a/office/libreoffice/libreoffice/files/libreoffice-24.8.4.2-icu76_fixes-1.patch b/office/libreoffice/libreoffice/files/libreoffice-24.8.4.2-icu76_fixes-1.patch new file mode 100644 index 0000000000..fd3e403496 --- /dev/null +++ b/office/libreoffice/libreoffice/files/libreoffice-24.8.4.2-icu76_fixes-1.patch @@ -0,0 +1,50 @@ +Submitted By: Douglas R. Reno +Date: 2024-11-05 +Initial Package Version: 24.8.2.1 +Origin: Self +Upstream Status: Pending +Description: Fixes building Libreoffice with ICU-76 by adding two + #defines before the ICU headers in Firebird, to allow + for more functions to be visible. This also fixes an + issue with libcdr by updating the list of libraries + that are needed to link to ICU. + +diff -Naurp libreoffice-24.8.2.1.orig/external/firebird/firebird-icu76.patch libreoffice-24.8.2.1/external/firebird/firebird-icu76.patch +--- libreoffice-24.8.2.1.orig/external/firebird/firebird-icu76.patch 1969-12-31 18:00:00.000000000 -0600 ++++ libreoffice-24.8.2.1/external/firebird/firebird-icu76.patch 2024-11-01 11:57:57.599782179 -0500 +@@ -0,0 +1,13 @@ ++diff -Naurp src.orig/common/unicode_util.cpp src/common/unicode_util.cpp ++--- src.orig/common/unicode_util.cpp 2020-10-20 03:40:05.000000000 -0500 +++++ src/common/unicode_util.cpp 2024-11-01 11:55:44.683926741 -0500 ++@@ -40,6 +40,9 @@ ++ #include "../common/StatusHolder.h" ++ #include "../common/os/path_utils.h" ++ +++#define U_SHOW_CPLUSPLUS_API 0 +++#define U_SHOW_CPLUSPLUS_HEADER_API 0 +++ ++ #include ++ #include ++ #include +diff -Naurp libreoffice-24.8.2.1.orig/external/firebird/UnpackedTarball_firebird.mk libreoffice-24.8.2.1/external/firebird/UnpackedTarball_firebird.mk +--- libreoffice-24.8.2.1.orig/external/firebird/UnpackedTarball_firebird.mk 2024-11-01 11:56:39.869283007 -0500 ++++ libreoffice-24.8.2.1/external/firebird/UnpackedTarball_firebird.mk 2024-11-01 11:58:37.035034367 -0500 +@@ -51,6 +51,7 @@ $(eval $(call gb_UnpackedTarball_add_pat + external/firebird/0001-extern-cloop-Missing-dependencies-of-compilations-on.patch.1 \ + external/firebird/configure-c99.patch \ + external/firebird/Wincompatible-function-pointer-types.patch \ ++ external/firebird/firebird-icu76.patch \ + external/firebird/c++26.patch \ + external/firebird/c++20.patch \ + )) +diff -Naurp libreoffice-24.8.2.1.orig/external/libcdr/ExternalProject_libcdr.mk libreoffice-24.8.2.1/external/libcdr/ExternalProject_libcdr.mk +--- libreoffice-24.8.2.1.orig/external/libcdr/ExternalProject_libcdr.mk 2024-11-01 11:56:39.874283039 -0500 ++++ libreoffice-24.8.2.1/external/libcdr/ExternalProject_libcdr.mk 2024-11-01 12:13:14.743047028 -0500 +@@ -27,6 +27,7 @@ $(call gb_ExternalProject_get_state_targ + $(call gb_Trace_StartRange,libcdr,EXTERNAL) + $(call gb_ExternalProject_run,build,\ + export PKG_CONFIG="" \ ++ export ICU_LIBS="-licui18n -licuuc -licudata" \ + && unset MSYS_NO_PATHCONV && MAKE=$(MAKE) $(gb_RUN_CONFIGURE) ./configure \ + --with-pic \ + --enable-static \ diff --git a/office/libreoffice/libreoffice/files/libreoffice-25.2-cflags.patch b/office/libreoffice/libreoffice/files/libreoffice-25.2-cflags.patch new file mode 100644 index 0000000000..eea1bfbe0f --- /dev/null +++ b/office/libreoffice/libreoffice/files/libreoffice-25.2-cflags.patch @@ -0,0 +1,210 @@ +Some parts of the build will use e.g. -O2 -mtune=generic otherwise. +--- a/solenv/gbuild/platform/ANDROID_AARCH64_GCC.mk ++++ b/solenv/gbuild/platform/ANDROID_AARCH64_GCC.mk +@@ -9,7 +9,7 @@ + + # please make generic modifications to unxgcc.mk or android.mk + gb_CPUDEFS += -DARM32 +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/unxgcc.mk + include $(GBUILDDIR)/platform/android.mk +--- a/solenv/gbuild/platform/ANDROID_ARM_GCC.mk ++++ b/solenv/gbuild/platform/ANDROID_ARM_GCC.mk +@@ -9,7 +9,7 @@ + + # please make generic modifications to unxgcc.mk or android.mk + gb_CPUDEFS += -DARM32 +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/unxgcc.mk + include $(GBUILDDIR)/platform/android.mk +--- a/solenv/gbuild/platform/ANDROID_INTEL_GCC.mk ++++ b/solenv/gbuild/platform/ANDROID_INTEL_GCC.mk +@@ -9,7 +9,7 @@ + + # please make generic modifications to unxgcc.mk or android.mk + gb_CPUDEFS += -DX86 +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/unxgcc.mk + include $(GBUILDDIR)/platform/android.mk +--- a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk ++++ b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk +@@ -73,7 +73,7 @@ ifeq ($(HAVE_EXTERNAL_DWARF),TRUE) + gb_DEBUGINFO_FLAGS += -gsplit-dwarf -gpubnames + endif + +-gb_COMPILEROPTFLAGS := -O3 ++gb_COMPILEROPTFLAGS := + + # We need at least code elimination, otherwise linking OOMs even with 64GB. + # So we "fake" -Og support to mean -O1 for Emscripten and always enable it for debug in configure. +--- a/solenv/gbuild/platform/LINUX_ARM_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_ARM_GCC.mk +@@ -9,7 +9,7 @@ + + #please make generic modifications to unxgcc.mk or linux.mk + gb_CPUDEFS += -DARM32 +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_AXP_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_AXP_GCC.mk +@@ -8,7 +8,7 @@ + # + + #please make generic modifications to unxgcc.mk or linux.mk +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + gb_LinkTarget_LDFLAGS += -Wl,--no-relax + + include $(GBUILDDIR)/platform/linux.mk +--- a/solenv/gbuild/platform/LINUX_INTEL_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_INTEL_GCC.mk +@@ -9,7 +9,7 @@ + + #please make generic modifications to unxgcc.mk or linux.mk + gb_CPUDEFS := -DX86 +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_M68K_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_M68K_GCC.mk +@@ -8,7 +8,7 @@ + # + + #please make generic modifications to unxgcc.mk or linux.mk +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_MIPS64_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_MIPS64_GCC.mk +@@ -9,7 +9,7 @@ + + #please make generic modifications to unxgcc.mk or linux.mk + gb_CPUDEFS += -DMIPS64 +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_MIPS_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_MIPS_GCC.mk +@@ -9,7 +9,7 @@ + + #please make generic modifications to unxgcc.mk or linux.mk + gb_CPUDEFS += -DMIPS +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_POWERPC64_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_POWERPC64_GCC.mk +@@ -10,8 +10,7 @@ + #please make generic modifications to unxgcc.mk or linux.mk + gb_CPUDEFS += -DPPC + +-gb_COMPILEROPTFLAGS := -O2 \ +- $(if $(filter powerpc64le-unknown-linux-gnu,$(HOST_PLATFORM)),-mtune=powerpc64le) ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_RISCV64_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_RISCV64_GCC.mk +@@ -8,7 +8,7 @@ + # + + #please make generic modifications to unxgcc.mk or linux.mk +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_SPARC64_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_SPARC64_GCC.mk +@@ -8,7 +8,7 @@ + # + + #please make generic modifications to unxgcc.mk or linux.mk +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_SPARC_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_SPARC_GCC.mk +@@ -8,7 +8,7 @@ + # + + #please make generic modifications to unxgcc.mk or linux.mk +-gb_COMPILEROPTFLAGS := -Os ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/LINUX_X86_64_GCC.mk ++++ b/solenv/gbuild/platform/LINUX_X86_64_GCC.mk +@@ -9,7 +9,7 @@ + + #please make generic modifications to unxgcc.mk or linux.mk + +-gb_COMPILEROPTFLAGS := -O2 -mtune=generic ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/linux.mk + +--- a/solenv/gbuild/platform/NETBSD_INTEL_GCC.mk ++++ b/solenv/gbuild/platform/NETBSD_INTEL_GCC.mk +@@ -10,7 +10,7 @@ + #please make generic modifications to unxgcc.mk + + gb_CPUDEFS := -DX86 +-gb_COMPILEROPTFLAGS := -O -g ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/unxgcc.mk + +--- a/solenv/gbuild/platform/NETBSD_X86_64_GCC.mk ++++ b/solenv/gbuild/platform/NETBSD_X86_64_GCC.mk +@@ -9,7 +9,7 @@ + + #please make generic modifications to unxgcc.mk + +-gb_COMPILEROPTFLAGS := -O -g ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/unxgcc.mk + +--- a/solenv/gbuild/platform/com_GCC_defs.mk ++++ b/solenv/gbuild/platform/com_GCC_defs.mk +@@ -38,7 +38,7 @@ endif + gb_COMPILER_SETUP := + + ifeq ($(strip $(gb_COMPILEROPTFLAGS)),) +-gb_COMPILEROPTFLAGS := -O2 ++gb_COMPILEROPTFLAGS := + endif + + gb_COMPILEROPTFLAGS += $(if $(ENABLE_HARDENING_FLAGS),$(HARDENING_OPT_CFLAGS)) +--- a/solenv/gbuild/platform/iOS.mk ++++ b/solenv/gbuild/platform/iOS.mk +@@ -24,7 +24,7 @@ ifeq ($(CXX),) + $(error You must set CXX in the environment. See README.cross for example.) + endif + +-gb_COMPILEROPTFLAGS := -O2 ++gb_COMPILEROPTFLAGS := + + include $(GBUILDDIR)/platform/com_GCC_defs.mk \ No newline at end of file diff --git a/office/libreoffice/libreoffice/files/mdds-3.0.0.patch b/office/libreoffice/libreoffice/files/mdds-3.0.0.patch new file mode 100644 index 0000000000..88dc1a46f3 --- /dev/null +++ b/office/libreoffice/libreoffice/files/mdds-3.0.0.patch @@ -0,0 +1,1550 @@ +From 89285dd322e9975f874514e03a299e616a953efb Mon Sep 17 00:00:00 2001 +From: Kohei Yoshida +Date: Sat, 8 Feb 2025 11:40:28 -0500 +Subject: Upgrade mdds to 3.0.0 and liborcus to 0.20.0 + +The portion of this change related to the mdds upgrade has been done by Xisco +Fauli via https://gerrit.libreoffice.org/c/core/+/180862 + +mdds 3.0.0 + +* external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 is fixed upstream +* external/mdds/use-after-free.patch is fixed upstream + +Downloaded from https://gitlab.com/api/v4/projects/mdds%2Fmdds/packages/generic/source/3.0.0/mdds-3.0.0.tar.xz + +liborcus 0.20.0 + +* Pick up superscript and subscript text attributes. +* Update the import of the font underline attributes as well as the + strikethrough attributes applied to the cells. +* Pick up the underline and strikethrough attributes in rich text + strings. +* Implementation for the previous auto filter interface has been + removed for now. + +Downloaded from https://gitlab.com/api/v4/projects/orcus%2Forcus/packages/generic/source/0.20.0/liborcus-0.20.0.tar.xz + +Change-Id: I93f6e5ab961d707a2bae03a4eca1466c541f086e +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181282 +Tested-by: Jenkins +Reviewed-by: Kohei Yoshida +--- + RepositoryExternal.mk | 4 +- + configure.ac | 4 +- + download.lst | 8 +- + external/libetonyek/UnpackedTarball_libetonyek.mk | 1 + + external/libetonyek/mdds3.0.patch.1 | 13 + + external/liborcus/ExternalPackage_liborcus.mk | 8 +- + external/liborcus/ExternalProject_liborcus.mk | 4 +- + external/liborcus/Library_orcus.mk | 20 +- + external/liborcus/UnpackedTarball_liborcus.mk | 2 + + external/liborcus/enum-labels.patch | 47 ++ + external/liborcus/styles-element-rules.patch | 42 ++ + .../0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 | 62 --- + external/mdds/UnpackedTarball_mdds.mk | 2 - + .../mdds/gcc-12-silence-use-after-free.patch.1 | 8 +- + external/mdds/use-after-free.patch | 12 - + sc/inc/fstalgorithm.hxx | 2 +- + sc/source/core/data/segmenttree.cxx | 8 +- + sc/source/filter/excel/colrowst.cxx | 2 +- + sc/source/filter/inc/orcusinterface.hxx | 169 ++++-- + sc/source/filter/orcus/interface.cxx | 604 +++++++++++++-------- + sc/source/filter/xml/XMLStylesExportHelper.cxx | 2 +- + 21 files changed, 655 insertions(+), 369 deletions(-) + create mode 100644 external/libetonyek/mdds3.0.patch.1 + create mode 100644 external/liborcus/enum-labels.patch + create mode 100644 external/liborcus/styles-element-rules.patch + delete mode 100644 external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 + delete mode 100644 external/mdds/use-after-free.patch + +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index fd5c02d29287..6dddc1c92d38 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -3395,7 +3395,7 @@ $(call gb_LinkTarget_set_include,$(1),\ + ) + + $(call gb_LinkTarget_add_libs,$(1),\ +- -L$(gb_UnpackedTarball_workdir)/liborcus/src/liborcus/.libs -lorcus-0.18 \ ++ -L$(gb_UnpackedTarball_workdir)/liborcus/src/liborcus/.libs -lorcus-0.20 \ + ) + + $(if $(SYSTEM_BOOST), \ +@@ -3414,7 +3414,7 @@ $(call gb_LinkTarget_set_include,$(1),\ + ) + + $(call gb_LinkTarget_add_libs,$(1),\ +- -L$(gb_UnpackedTarball_workdir)/liborcus/src/parser/.libs -lorcus-parser-0.18 \ ++ -L$(gb_UnpackedTarball_workdir)/liborcus/src/parser/.libs -lorcus-parser-0.20 \ + ) + + endef +diff --git a/configure.ac b/configure.ac +index 4ee1e3c3b39d..97493ace6fb3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -11045,7 +11045,7 @@ dnl =================================================================== + dnl Check for system mdds + dnl =================================================================== + MDDS_CFLAGS_internal="-I${WORKDIR}/UnpackedTarball/mdds/include" +-libo_CHECK_SYSTEM_MODULE([mdds],[MDDS],[mdds-2.1 >= 2.1.0]) ++libo_CHECK_SYSTEM_MODULE([mdds],[MDDS],[mdds-3.0 >= 3.0.0]) + + dnl =================================================================== + dnl Check for system dragonbox +@@ -11371,7 +11371,7 @@ fi + dnl =================================================================== + dnl Orcus + dnl =================================================================== +-libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.18 >= 0.19.1]) ++libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.20 >= 0.20.0]) + if test "$with_system_orcus" != "yes"; then + if test "$SYSTEM_BOOST" = "TRUE"; then + dnl Link with Boost.System +diff --git a/download.lst b/download.lst +index 0b335fb637ce..fff1558c97dc 100644 +--- a/download.lst ++++ b/download.lst +@@ -486,8 +486,8 @@ MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.14-src.tar.gz + # three static lines + # so that git cherry-pick + # will not run into conflicts +-MDDS_SHA256SUM := 1483d90cefb8aa4563c4d0a85cb7b243aa95217d235d422e9ca6722fd5b97e56 +-MDDS_TARBALL := mdds-2.1.1.tar.xz ++MDDS_SHA256SUM := 9b077e8d929050e9a432cc131beed2380ac85cfe98b17fc26d01d0ed532129c8 ++MDDS_TARBALL := mdds-3.0.0.tar.xz + # three static lines + # so that git cherry-pick + # will not run into conflicts +@@ -548,8 +548,8 @@ OPENSSL_TARBALL := openssl-3.0.15.tar.gz + # three static lines + # so that git cherry-pick + # will not run into conflicts +-ORCUS_SHA256SUM := 69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39 +-ORCUS_TARBALL := liborcus-0.19.2.tar.xz ++ORCUS_SHA256SUM := fb6438977a75e7f455b772acf80d861fbc787ab18d52f7997af44a212311a507 ++ORCUS_TARBALL := liborcus-0.20.0.tar.xz + # three static lines + # so that git cherry-pick + # will not run into conflicts +diff --git a/external/libetonyek/UnpackedTarball_libetonyek.mk b/external/libetonyek/UnpackedTarball_libetonyek.mk +index e13737cbe6a8..7bd9be889400 100644 +--- a/external/libetonyek/UnpackedTarball_libetonyek.mk ++++ b/external/libetonyek/UnpackedTarball_libetonyek.mk +@@ -20,6 +20,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\ + external/libetonyek/ubsan.patch \ + external/libetonyek/rpath.patch \ + external/libetonyek/enumarith.patch \ ++ external/libetonyek/mdds3.0.patch.1 \ + )) + + ifneq ($(OS),MACOSX) +diff --git a/external/libetonyek/mdds3.0.patch.1 b/external/libetonyek/mdds3.0.patch.1 +new file mode 100644 +index 000000000000..4e615e1bf0ee +--- /dev/null ++++ b/external/libetonyek/mdds3.0.patch.1 +@@ -0,0 +1,13 @@ ++diff --git a/src/lib/IWORKTable.cpp b/src/lib/IWORKTable.cpp ++index bde1011..a68f549 100644 ++--- a/src/lib/IWORKTable.cpp +++++ b/src/lib/IWORKTable.cpp ++@@ -168,7 +168,7 @@ void parseDateTimeFormat(std::string const &format, librevenge::RVNGPropertyList ++ ++ void writeBorder(librevenge::RVNGPropertyList &props, const char *name, IWORKGridLine_t &line, unsigned index) ++ { ++- if (!line.is_tree_valid()) +++ if (!line.valid_tree()) ++ line.build_tree(); ++ ++ IWORKStylePtr_t style; +diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk +index 4adfcb247bdc..b9be5fcac405 100644 +--- a/external/liborcus/ExternalPackage_liborcus.mk ++++ b/external/liborcus/ExternalPackage_liborcus.mk +@@ -12,11 +12,11 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,liborcus,liborcus)) + $(eval $(call gb_ExternalPackage_use_external_project,liborcus,liborcus)) + + ifeq ($(OS),MACOSX) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.18.0.dylib,src/liborcus/.libs/liborcus-0.18.0.dylib)) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.18.0.dylib,src/parser/.libs/liborcus-parser-0.18.0.dylib)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.20.0.dylib,src/liborcus/.libs/liborcus-0.20.0.dylib)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.20.0.dylib,src/parser/.libs/liborcus-parser-0.20.0.dylib)) + else ifeq ($(DISABLE_DYNLOADING),) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.18.so.0,src/liborcus/.libs/liborcus-0.18.so.0.0.0)) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.18.so.0,src/parser/.libs/liborcus-parser-0.18.so.0.0.0)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.20.so.0,src/liborcus/.libs/liborcus-0.20.so.0.0.0)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.20.so.0,src/parser/.libs/liborcus-parser-0.20.so.0.0.0)) + endif + + # vim: set noet sw=4 ts=4: +diff --git a/external/liborcus/ExternalProject_liborcus.mk b/external/liborcus/ExternalProject_liborcus.mk +index 7f2e5f24083f..97d1c54b02d8 100644 +--- a/external/liborcus/ExternalProject_liborcus.mk ++++ b/external/liborcus/ExternalProject_liborcus.mk +@@ -115,8 +115,8 @@ $(call gb_ExternalProject_get_state_target,liborcus,build) : + $(MAKE) \ + $(if $(filter MACOSX,$(OS)),\ + && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \ +- $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.18.0.dylib \ +- $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.18.0.dylib \ ++ $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.20.0.dylib \ ++ $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.20.0.dylib \ + ) \ + ) + $(call gb_Trace_EndRange,liborcus,EXTERNAL) +diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk +index 7a138e11d925..776f5c2f04ad 100644 +--- a/external/liborcus/Library_orcus.mk ++++ b/external/liborcus/Library_orcus.mk +@@ -55,6 +55,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/config \ + UnpackedTarball/liborcus/src/liborcus/css_document_tree \ + UnpackedTarball/liborcus/src/liborcus/css_selector \ ++ UnpackedTarball/liborcus/src/liborcus/debug_utils \ + UnpackedTarball/liborcus/src/liborcus/detection_result \ + UnpackedTarball/liborcus/src/liborcus/dom_tree \ + UnpackedTarball/liborcus/src/liborcus/format_detection \ +@@ -75,6 +76,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/interface \ + UnpackedTarball/liborcus/src/liborcus/json_document_tree \ + UnpackedTarball/liborcus/src/liborcus/json_map_tree \ ++ UnpackedTarball/liborcus/src/liborcus/json_path \ + UnpackedTarball/liborcus/src/liborcus/json_structure_mapper \ + UnpackedTarball/liborcus/src/liborcus/json_structure_tree \ + UnpackedTarball/liborcus/src/liborcus/json_util \ +@@ -86,10 +88,11 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/odf_number_format_context \ + UnpackedTarball/liborcus/src/liborcus/odf_para_context \ + UnpackedTarball/liborcus/src/liborcus/odf_style_context \ +- UnpackedTarball/liborcus/src/liborcus/odf_styles_context \ + UnpackedTarball/liborcus/src/liborcus/odf_styles \ ++ UnpackedTarball/liborcus/src/liborcus/odf_styles_context \ + UnpackedTarball/liborcus/src/liborcus/odf_tokens \ + UnpackedTarball/liborcus/src/liborcus/ods_content_xml_context \ ++ UnpackedTarball/liborcus/src/liborcus/ods_database_ranges_context \ + UnpackedTarball/liborcus/src/liborcus/ods_dde_links_context \ + UnpackedTarball/liborcus/src/liborcus/ods_session_data \ + UnpackedTarball/liborcus/src/liborcus/ooxml_content_types \ +@@ -106,8 +109,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/orcus_import_xlsx \ + UnpackedTarball/liborcus/src/liborcus/orcus_json \ + UnpackedTarball/liborcus/src/liborcus/orcus_ods \ +- UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \ + UnpackedTarball/liborcus/src/liborcus/orcus_xls_xml \ ++ UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \ + UnpackedTarball/liborcus/src/liborcus/orcus_xml \ + UnpackedTarball/liborcus/src/liborcus/orcus_xml_impl \ + UnpackedTarball/liborcus/src/liborcus/orcus_xml_map_def \ +@@ -117,16 +120,19 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/spreadsheet_interface \ + UnpackedTarball/liborcus/src/liborcus/spreadsheet_types \ + UnpackedTarball/liborcus/src/liborcus/string_helper \ +- UnpackedTarball/liborcus/src/liborcus/xlsx_autofilter_context \ +- UnpackedTarball/liborcus/src/liborcus/xlsx_conditional_format_context \ +- UnpackedTarball/liborcus/src/liborcus/xlsx_drawing_context \ +- UnpackedTarball/liborcus/src/liborcus/xlsx_handler \ +- UnpackedTarball/liborcus/src/liborcus/xlsx_helper \ ++ UnpackedTarball/liborcus/src/liborcus/xls_filter_utils \ ++ UnpackedTarball/liborcus/src/liborcus/xls_types \ ++ UnpackedTarball/liborcus/src/liborcus/xls_xml_auto_filter_context \ + UnpackedTarball/liborcus/src/liborcus/xls_xml_context \ + UnpackedTarball/liborcus/src/liborcus/xls_xml_detection_handler \ + UnpackedTarball/liborcus/src/liborcus/xls_xml_handler \ + UnpackedTarball/liborcus/src/liborcus/xls_xml_namespace_types \ + UnpackedTarball/liborcus/src/liborcus/xls_xml_tokens \ ++ UnpackedTarball/liborcus/src/liborcus/xlsx_autofilter_context \ ++ UnpackedTarball/liborcus/src/liborcus/xlsx_conditional_format_context \ ++ UnpackedTarball/liborcus/src/liborcus/xlsx_drawing_context \ ++ UnpackedTarball/liborcus/src/liborcus/xlsx_handler \ ++ UnpackedTarball/liborcus/src/liborcus/xlsx_helper \ + UnpackedTarball/liborcus/src/liborcus/xlsx_pivot_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_revision_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_session_data \ +diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk +index bb399826c358..b866f59c6ac9 100644 +--- a/external/liborcus/UnpackedTarball_liborcus.mk ++++ b/external/liborcus/UnpackedTarball_liborcus.mk +@@ -18,6 +18,8 @@ $(eval $(call gb_UnpackedTarball_update_autoconf_configs,liborcus)) + $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ + external/liborcus/rpath.patch.0 \ + external/liborcus/libtool.patch.0 \ ++ external/liborcus/styles-element-rules.patch \ ++ external/liborcus/enum-labels.patch \ + )) + + ifeq ($(OS),WNT) +diff --git a/external/liborcus/enum-labels.patch b/external/liborcus/enum-labels.patch +new file mode 100644 +index 000000000000..10f169c62fa1 +--- /dev/null ++++ b/external/liborcus/enum-labels.patch +@@ -0,0 +1,47 @@ ++From 3b590cabb6f8296dcddb6588e3346a7604f97d51 Mon Sep 17 00:00:00 2001 ++From: Kohei Yoshida ++Date: Fri, 7 Feb 2025 23:03:34 -0500 ++Subject: [PATCH 2/2] Properly map enum types to their labels ++ ++--- ++ src/liborcus/spreadsheet_types.cpp | 10 ++++------ ++ 1 file changed, 4 insertions(+), 6 deletions(-) ++ ++diff --git a/src/liborcus/spreadsheet_types.cpp b/src/liborcus/spreadsheet_types.cpp ++index f3f51050..161e53ca 100644 ++--- a/src/liborcus/spreadsheet_types.cpp +++++ b/src/liborcus/spreadsheet_types.cpp ++@@ -595,10 +595,7 @@ std::ostream& operator<< (std::ostream& os, underline_style_t uline) ++ { ++ static constexpr std::string_view names[] = { ++ "none", ++- "single-line", ++- "single-accounting", ++- "double-line", ++- "double-accounting", +++ "solid", ++ "dotted", ++ "dash", ++ "long-dash", ++@@ -633,6 +630,7 @@ std::ostream& operator<< (std::ostream& os, underline_spacing_t ulmode) ++ static constexpr std::string_view names[] = { ++ "continuous", ++ "skip-white-space", +++ "continuous-over-field", ++ }; ++ ++ return write_name_for_pos(os, names, std::size(names), ulmode); ++@@ -642,8 +640,8 @@ std::ostream& operator<< (std::ostream& os, underline_count_t ultype) ++ { ++ static constexpr std::string_view names[] = { ++ "none", ++- "single-type", ++- "double-type", +++ "single-count", +++ "double-count", ++ }; ++ ++ return write_name_for_pos(os, names, std::size(names), ultype); ++-- ++2.34.1 ++ +diff --git a/external/liborcus/styles-element-rules.patch b/external/liborcus/styles-element-rules.patch +new file mode 100644 +index 000000000000..61b42478ad8e +--- /dev/null ++++ b/external/liborcus/styles-element-rules.patch +@@ -0,0 +1,42 @@ ++From cfa3ec177d4dd44327cd42d018a0fb88888e19c9 Mon Sep 17 00:00:00 2001 ++From: Kohei Yoshida ++Date: Fri, 7 Feb 2025 22:51:29 -0500 ++Subject: [PATCH 1/2] Define missing element rules for immediate child elements ++ of root ++ ++--- ++ src/liborcus/odf_styles_context.cpp | 18 ++++++++++++++++++ ++ 1 file changed, 18 insertions(+) ++ ++diff --git a/src/liborcus/odf_styles_context.cpp b/src/liborcus/odf_styles_context.cpp ++index a60e47da..0e45783e 100644 ++--- a/src/liborcus/odf_styles_context.cpp +++++ b/src/liborcus/odf_styles_context.cpp ++@@ -67,6 +67,24 @@ styles_context::styles_context( ++ // parent element -> child element ++ { XMLNS_UNKNOWN_ID, XML_UNKNOWN_TOKEN, NS_odf_office, XML_automatic_styles }, // root element ++ { XMLNS_UNKNOWN_ID, XML_UNKNOWN_TOKEN, NS_odf_office, XML_styles }, // root element +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_boolean_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_currency_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_date_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_number_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_percentage_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_text_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_number, XML_time_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_style, XML_default_style }, +++ { NS_odf_office, XML_automatic_styles, NS_odf_style, XML_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_boolean_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_currency_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_date_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_number_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_percentage_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_text_style }, +++ { NS_odf_office, XML_styles, NS_odf_number, XML_time_style }, +++ { NS_odf_office, XML_styles, NS_odf_style, XML_default_style }, +++ { NS_odf_office, XML_styles, NS_odf_style, XML_style }, ++ }; ++ ++ init_element_validator(rules, std::size(rules)); ++-- ++2.34.1 ++ +diff --git a/external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 b/external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 +deleted file mode 100644 +index 9c47e1d22767..000000000000 +--- a/external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 ++++ /dev/null +@@ -1,62 +0,0 @@ +-From f7d8d7eaf2b4160354887ac740a1efed9b6fc23b Mon Sep 17 00:00:00 2001 +-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +-Date: Sun, 14 Jan 2024 21:03:12 +0000 +-Subject: [PATCH] cid#1546160 COPY_INSTEAD_OF_MOVE +- +-and +- +-cid#1545547 COPY_INSTEAD_OF_MOVE +-cid#1545642 COPY_INSTEAD_OF_MOVE +-cid#1557206 COPY_INSTEAD_OF_MOVE +---- +- include/mdds/flat_segment_tree.hpp | 2 +- +- include/mdds/flat_segment_tree_def.inl | 6 +++--- +- 2 files changed, 4 insertions(+), 4 deletions(-) +- +-diff --git a/include/mdds/flat_segment_tree.hpp b/include/mdds/flat_segment_tree.hpp +-index bf8e0956..317eb279 100644 +---- a/include/mdds/flat_segment_tree.hpp +-+++ b/include/mdds/flat_segment_tree.hpp +-@@ -767,7 +767,7 @@ private: +- { +- node_ptr next_node = cur_node->next; +- disconnect_all_nodes(cur_node.get()); +-- cur_node = next_node; +-+ cur_node = std::move(next_node); +- } +- last_node->next = end_node; +- end_node->prev = last_node; +-diff --git a/include/mdds/flat_segment_tree_def.inl b/include/mdds/flat_segment_tree_def.inl +-index 76350656..d07cae82 100644 +---- a/include/mdds/flat_segment_tree_def.inl +-+++ b/include/mdds/flat_segment_tree_def.inl +-@@ -114,7 +114,7 @@ +- // Move on to the next destination node, and have the next node point +- // back to the previous node. +- node_ptr old_node = dest_node; +-- dest_node->next->prev = old_node; +-+ dest_node->next->prev = std::move(old_node); +- dest_node = dest_node->next; +- +- if (src_node == r.m_right_leaf.get()) +-@@ -380,7 +380,7 @@ +- +- p = get_insertion_pos_leaf(start_key, p); +- node_ptr start_pos(const_cast(p)); +-- return insert_to_pos(start_pos, start_key, end_key, val); +-+ return insert_to_pos(std::move(start_pos), start_key, end_key, val); +- } +- +- template +-@@ -456,7 +456,7 @@ +- last_seg_value = node_pos->value_leaf.value; +- node_ptr next = node_pos->next; +- disconnect_all_nodes(node_pos.get()); +-- node_pos = next; +-+ node_pos = std::move(next); +- } +- +- start_pos->value_leaf.value = last_seg_value; +--- +-2.42.0 +- +diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk +index ce1ba745be43..fe10a60bde59 100644 +--- a/external/mdds/UnpackedTarball_mdds.mk ++++ b/external/mdds/UnpackedTarball_mdds.mk +@@ -14,9 +14,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL))) + $(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0)) + + $(eval $(call gb_UnpackedTarball_add_patches,mdds,\ +- external/mdds/use-after-free.patch \ + external/mdds/gcc-12-silence-use-after-free.patch.1 \ +- external/mdds/0001-cid-1546160-COPY_INSTEAD_OF_MOVE.patch.1 \ + )) + + # vim: set noet sw=4 ts=4: +diff --git a/external/mdds/gcc-12-silence-use-after-free.patch.1 b/external/mdds/gcc-12-silence-use-after-free.patch.1 +index 94f7ba979e61..4fd742182d32 100644 +--- a/external/mdds/gcc-12-silence-use-after-free.patch.1 ++++ b/external/mdds/gcc-12-silence-use-after-free.patch.1 +@@ -22,9 +22,9 @@ cc1plus: all warnings being treated as errors + diff -ur mdds.org/include/mdds/node.hpp mdds/include/mdds/node.hpp + --- mdds.org/include/mdds/node.hpp 2023-07-24 18:27:14.427139325 +0000 + +++ mdds/include/mdds/node.hpp 2023-07-24 18:26:54.554461294 +0000 +-@@ -244,9 +244,15 @@ +- template +- inline void intrusive_ptr_release(node* p) ++@@ -210,9 +210,15 @@ ++ template ++ inline void intrusive_ptr_release(node* p) + { + - --p->refcount; + - if (!p->refcount) +@@ -39,4 +39,4 @@ diff -ur mdds.org/include/mdds/node.hpp mdds/include/mdds/node.hpp + +#endif + } + +- template ++ template +diff --git a/external/mdds/use-after-free.patch b/external/mdds/use-after-free.patch +deleted file mode 100644 +index 981c945821a7..000000000000 +--- a/external/mdds/use-after-free.patch ++++ /dev/null +@@ -1,12 +0,0 @@ +---- include/mdds/flat_segment_tree_def.inl +-+++ include/mdds/flat_segment_tree_def.inl +-@@ -84,8 +84,8 @@ +- // Move on to the next destination node, and have the next node point +- // back to the previous node. +- node_ptr old_node = dest_node; +-+ dest_node->next->prev = old_node; +- dest_node = dest_node->next; +-- dest_node->prev = old_node; +- +- if (src_node == r.m_right_leaf.get()) +- { +diff --git a/sc/inc/fstalgorithm.hxx b/sc/inc/fstalgorithm.hxx +index 4d46cfaaa28c..40b28d8d8a8f 100644 +--- a/sc/inc/fstalgorithm.hxx ++++ b/sc/inc/fstalgorithm.hxx +@@ -103,7 +103,7 @@ std::vector toSpanArray( const mdds::flat_segment_tree& rTree, K + typedef mdds::flat_segment_tree FstType; + + std::vector aSpans; +- if (!rTree.is_tree_valid()) ++ if (!rTree.valid_tree()) + return aSpans; + + bool bThisVal = false; +diff --git a/sc/source/core/data/segmenttree.cxx b/sc/source/core/data/segmenttree.cxx +index a39c956a478b..470cc90ff2f4 100644 +--- a/sc/source/core/data/segmenttree.cxx ++++ b/sc/source/core/data/segmenttree.cxx +@@ -134,7 +134,7 @@ typename ScFlatSegmentsImpl::ValueType ScFlatSegments + return nValue; + } + +- if (!maSegments.is_tree_valid()) ++ if (!maSegments.valid_tree()) + { + assert(!ScGlobal::bThreadedGroupCalcInProgress); + maSegments.build_tree(); +@@ -150,7 +150,7 @@ sal_uInt64 ScFlatSegmentsImpl::getSumValue(SCCOLROW n + if (mbTreeSearchEnabled) + { + +- if (!maSegments.is_tree_valid()) ++ if (!maSegments.valid_tree()) + { + assert(!ScGlobal::bThreadedGroupCalcInProgress); + maSegments.build_tree(); +@@ -242,7 +242,7 @@ bool ScFlatSegmentsImpl::getRangeData(SCCOLROW nPos, + if (!mbTreeSearchEnabled) + return getRangeDataLeaf(nPos, rData); + +- if (!maSegments.is_tree_valid()) ++ if (!maSegments.valid_tree()) + { + assert(!ScGlobal::bThreadedGroupCalcInProgress); + maSegments.build_tree(); +@@ -333,7 +333,7 @@ template + void ScFlatSegmentsImpl::makeReady() + { + assert(!ScGlobal::bThreadedGroupCalcInProgress); +- if (!maSegments.is_tree_valid()) ++ if (!maSegments.valid_tree()) + maSegments.build_tree(); + } + +diff --git a/sc/source/filter/excel/colrowst.cxx b/sc/source/filter/excel/colrowst.cxx +index e194b7309d9b..663fe5d864ea 100644 +--- a/sc/source/filter/excel/colrowst.cxx ++++ b/sc/source/filter/excel/colrowst.cxx +@@ -215,7 +215,7 @@ void XclImpColRowSettings::Convert( SCTAB nScTab ) + rDoc.SetRowFlags( 0, rDoc.MaxRow(), nScTab, CRFlags::ManualSize ); + + maRowHeights.build_tree(); +- if (!maRowHeights.is_tree_valid()) ++ if (!maRowHeights.valid_tree()) + return; + + SCROW nPrevRow = -1; +diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx +index 2fd1d5ed40f3..d9c7e2eacacc 100644 +--- a/sc/source/filter/inc/orcusinterface.hxx ++++ b/sc/source/filter/inc/orcusinterface.hxx +@@ -27,6 +27,8 @@ + + #include + #include ++#include ++#include + + #include + #include +@@ -37,6 +39,8 @@ + class ScOrcusSheet; + class ScOrcusStyles; + class ScOrcusFactory; ++class ScOrcusImportFontStyle; ++class ScOrcusSharedStrings; + class SfxItemSet; + namespace com::sun::star::task { class XStatusIndicator; } + +@@ -103,6 +107,69 @@ public: + virtual void commit() override; + }; + ++struct ScOrcusStrikethrough ++{ ++ std::optional meStyle; ++ std::optional meType; ++ std::optional meWidth; ++ std::optional meText; ++ ++ void reset(); ++ std::optional toFontStrikeout() const; ++}; ++ ++struct ScOrcusUnderline ++{ ++ std::optional meStyle; ++ std::optional meThickness; ++ std::optional meSpacing; ++ std::optional meCount; ++ ++ void reset(); ++ std::optional toFontLineStyle() const; ++}; ++ ++class ScOrcusSegmentStrikethrough : public orcus::spreadsheet::iface::import_strikethrough ++{ ++ friend class ScOrcusSharedStrings; ++ ++ SfxItemSet* mpDestFormat = nullptr; ++ ScOrcusStrikethrough maAttrs; ++ ++ void reset(SfxItemSet* pDestFormat); ++ ++public: ++ void set_style(orcus::spreadsheet::strikethrough_style_t s) override; ++ void set_type(orcus::spreadsheet::strikethrough_type_t s) override; ++ void set_width(orcus::spreadsheet::strikethrough_width_t s) override; ++ void set_text(orcus::spreadsheet::strikethrough_text_t s) override; ++ void commit() override; ++}; ++ ++class ScOrcusSegmentUnderline : public orcus::spreadsheet::iface::import_underline ++{ ++ friend class ScOrcusSharedStrings; ++ ++ SfxItemSet* mpDestFormat = nullptr; ++ ++ ScOrcusUnderline maAttrs; ++ std::optional maColor; ++ ++ void reset(SfxItemSet* pDestFormat); ++ ++public: ++ void set_style(orcus::spreadsheet::underline_style_t e) override; ++ void set_thickness(orcus::spreadsheet::underline_thickness_t e) override; ++ void set_spacing(orcus::spreadsheet::underline_spacing_t e) override; ++ void set_count(orcus::spreadsheet::underline_count_t e) override; ++ void set_color( ++ orcus::spreadsheet::color_elem_t alpha, ++ orcus::spreadsheet::color_elem_t red, ++ orcus::spreadsheet::color_elem_t green, ++ orcus::spreadsheet::color_elem_t blue) override; ++ void commit() override; ++}; ++ + class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_strings + { + ScOrcusFactory& mrFactory; +@@ -111,6 +178,9 @@ class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_str + SfxItemSet maCurFormat; + std::vector> maFormatSegments; + ++ ScOrcusSegmentUnderline maImportUnderline; ++ ScOrcusSegmentStrikethrough maImportStrikethrough; ++ + OUString toOUString(std::string_view s); + + public: +@@ -121,6 +191,8 @@ public: + + virtual void set_segment_bold(bool b) override; + virtual void set_segment_italic(bool b) override; ++ virtual void set_segment_superscript(bool b) override; ++ virtual void set_segment_subscript(bool b) override; + virtual void set_segment_font(size_t font_index) override; + virtual void set_segment_font_name(std::string_view s) override; + virtual void set_segment_font_size(double point) override; +@@ -128,6 +200,10 @@ public: + orcus::spreadsheet::color_elem_t red, + orcus::spreadsheet::color_elem_t green, + orcus::spreadsheet::color_elem_t blue) override; ++ ++ virtual orcus::spreadsheet::iface::import_underline* start_underline() override; ++ virtual orcus::spreadsheet::iface::import_strikethrough* start_strikethrough() override; ++ + virtual void append_segment(std::string_view s) override; + + virtual size_t commit_segments() override; +@@ -195,28 +271,6 @@ private: + ScFormatEntry::Type meEntryType; + }; + +-class ScOrcusAutoFilter : public orcus::spreadsheet::iface::import_auto_filter +-{ +-public: +- ScOrcusAutoFilter( const ScOrcusGlobalSettings& rGS ); +- +- virtual ~ScOrcusAutoFilter() override; +- +- virtual void set_range(const orcus::spreadsheet::range_t& range) override; +- +- virtual void set_column(orcus::spreadsheet::col_t col) override; +- +- virtual void append_column_match_value(std::string_view value) override; +- +- virtual void commit_column() override; +- +- virtual void commit() override; +- +-private: +- const ScOrcusGlobalSettings& mrGlobalSettings; +- ScRange maRange; +-}; +- + class ScOrcusSheetProperties : public orcus::spreadsheet::iface::import_sheet_properties + { + ScDocumentImport& mrDoc; +@@ -233,9 +287,12 @@ public: + orcus::spreadsheet::col_t col, orcus::spreadsheet::col_t col_span, + bool hidden) override; + +- virtual void set_row_height(orcus::spreadsheet::row_t row, double height, orcus::length_unit_t unit) override; ++ virtual void set_row_height( ++ orcus::spreadsheet::row_t row, orcus::spreadsheet::row_t row_span, ++ double height, orcus::length_unit_t unit) override; + +- virtual void set_row_hidden(orcus::spreadsheet::row_t row, bool hidden) override; ++ virtual void set_row_hidden( ++ orcus::spreadsheet::row_t row, orcus::spreadsheet::row_t row_span, bool hidden) override; + + virtual void set_merge_cell_range(const orcus::spreadsheet::range_t& range) override; + }; +@@ -314,7 +371,6 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet + ScOrcusStyles& mrStyles; + sc::SharedFormulaGroups maFormulaGroups; + +- ScOrcusAutoFilter maAutoFilter; + ScOrcusSheetProperties maProperties; + ScOrcusConditionalFormat maConditionalFormat; + ScOrcusNamedExpression maNamedExpressions; +@@ -330,8 +386,6 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet + public: + ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory); + +- virtual orcus::spreadsheet::iface::import_auto_filter* get_auto_filter() override; +- virtual orcus::spreadsheet::iface::import_table* get_table() override; + virtual orcus::spreadsheet::iface::import_sheet_properties* get_sheet_properties() override; + virtual orcus::spreadsheet::iface::import_conditional_format* get_conditional_format() override; + virtual orcus::spreadsheet::iface::import_named_expression* get_named_expression() override; +@@ -458,12 +512,55 @@ struct ScOrcusCellStyle + ScOrcusCellStyle(); + }; + ++class ScOrcusImportFontUnderlineStyle : public orcus::spreadsheet::iface::import_underline ++{ ++ friend class ScOrcusImportFontStyle; ++ ++ ScOrcusFont* mpDestFont = nullptr; ++ ScOrcusUnderline maAttrs; ++ std::optional maColor; ++ ++ void reset(ScOrcusFont* pDest); ++ ++public: ++ void set_style(orcus::spreadsheet::underline_style_t e) override; ++ void set_thickness(orcus::spreadsheet::underline_thickness_t e) override; ++ void set_spacing(orcus::spreadsheet::underline_spacing_t e) override; ++ void set_count(orcus::spreadsheet::underline_count_t e) override; ++ void set_color( ++ orcus::spreadsheet::color_elem_t alpha, ++ orcus::spreadsheet::color_elem_t red, ++ orcus::spreadsheet::color_elem_t green, ++ orcus::spreadsheet::color_elem_t blue) override; ++ void commit() override; ++}; ++ ++class ScOrcusImportFontStrikethroughStyle : public orcus::spreadsheet::iface::import_strikethrough ++{ ++ friend class ScOrcusImportFontStyle; ++ ++ ScOrcusFont* mpDestFont = nullptr; ++ ScOrcusStrikethrough maAttrs; ++ ++ void reset(ScOrcusFont* pDest); ++ ++public: ++ void set_style(orcus::spreadsheet::strikethrough_style_t s) override; ++ void set_type(orcus::spreadsheet::strikethrough_type_t s) override; ++ void set_width(orcus::spreadsheet::strikethrough_width_t s) override; ++ void set_text(orcus::spreadsheet::strikethrough_text_t s) override; ++ void commit() override; ++}; ++ + class ScOrcusImportFontStyle : public orcus::spreadsheet::iface::import_font_style + { + ScOrcusFont maCurrentFont; + ScOrcusFactory& mrFactory; + std::vector& mrFonts; + ++ ScOrcusImportFontUnderlineStyle maUnderlineImport; ++ ScOrcusImportFontStrikethroughStyle maStrikeoutImport; ++ + public: + ScOrcusImportFontStyle( ScOrcusFactory& rFactory, std::vector& rFonts ); + +@@ -481,24 +578,16 @@ public: + void set_size(double point) override; + void set_size_asian(double point) override; + void set_size_complex(double point) override; +- void set_underline(orcus::spreadsheet::underline_t e) override; +- void set_underline_width(orcus::spreadsheet::underline_width_t e) override; +- void set_underline_mode(orcus::spreadsheet::underline_mode_t e) override; +- void set_underline_type(orcus::spreadsheet::underline_type_t e) override; +- void set_underline_color( +- orcus::spreadsheet::color_elem_t alpha, +- orcus::spreadsheet::color_elem_t red, +- orcus::spreadsheet::color_elem_t green, +- orcus::spreadsheet::color_elem_t blue) override; ++ + void set_color( + orcus::spreadsheet::color_elem_t alpha, + orcus::spreadsheet::color_elem_t red, + orcus::spreadsheet::color_elem_t green, + orcus::spreadsheet::color_elem_t blue) override; +- void set_strikethrough_style(orcus::spreadsheet::strikethrough_style_t s) override; +- void set_strikethrough_type(orcus::spreadsheet::strikethrough_type_t s) override; +- void set_strikethrough_width(orcus::spreadsheet::strikethrough_width_t s) override; +- void set_strikethrough_text(orcus::spreadsheet::strikethrough_text_t s) override; ++ ++ orcus::spreadsheet::iface::import_underline* start_underline() override; ++ orcus::spreadsheet::iface::import_strikethrough* start_strikethrough() override; ++ + std::size_t commit() override; + }; + +diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx +index e4b5667643b5..e64a6134c674 100644 +--- a/sc/source/filter/orcus/interface.cxx ++++ b/sc/source/filter/orcus/interface.cxx +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -420,6 +421,7 @@ os::iface::import_reference_resolver* ScOrcusFactory::get_reference_resolver(os: + return &maRefResolver; + case os::formula_ref_context_t::named_expression_base: + case os::formula_ref_context_t::named_range: ++ case os::formula_ref_context_t::table_range: + return nullptr; + } + +@@ -787,16 +789,20 @@ void ScOrcusSheetProperties::set_column_hidden(os::col_t col, os::col_t col_span + mrDoc.getDoc().SetColHidden(col, col + col_span - 1, mnTab, hidden); + } + +-void ScOrcusSheetProperties::set_row_height(os::row_t row, double height, orcus::length_unit_t unit) ++void ScOrcusSheetProperties::set_row_height( ++ os::row_t row, os::row_t row_span, double height, orcus::length_unit_t unit) + { + double nNewHeight = translateToInternal(height, unit); +- mrDoc.getDoc().SetRowHeightOnly(row, row,mnTab, nNewHeight); ++ SCROW nStartRow = row; ++ SCROW nEndRow = row + row_span - 1; ++ mrDoc.getDoc().SetRowHeightOnly(nStartRow, nEndRow, mnTab, nNewHeight); + } + +-void ScOrcusSheetProperties::set_row_hidden(os::row_t row, bool hidden) ++void ScOrcusSheetProperties::set_row_hidden(os::row_t row, os::row_t row_span, bool hidden) + { +- if (hidden) +- mrDoc.getDoc().SetRowHidden(row, row, mnTab, hidden); ++ SCROW nStartRow = row; ++ SCROW nEndRow = row + row_span - 1; ++ mrDoc.getDoc().SetRowHidden(nStartRow, nEndRow, mnTab, hidden); + } + + void ScOrcusSheetProperties::set_merge_cell_range(const orcus::spreadsheet::range_t& range) +@@ -962,7 +968,6 @@ ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& r + mnTab(nTab), + mrFactory(rFactory), + mrStyles(static_cast(*mrFactory.get_styles())), +- maAutoFilter(rFactory.getGlobalSettings()), + maProperties(mnTab, mrDoc), + maConditionalFormat(mnTab, rDoc.getDoc()), + maNamedExpressions(rDoc, rFactory.getGlobalSettings(), nTab), +@@ -1169,16 +1174,6 @@ ScDocumentImport& ScOrcusSheet::getDoc() + return mrDoc; + } + +-os::iface::import_auto_filter* ScOrcusSheet::get_auto_filter() +-{ +- return &maAutoFilter; +-} +- +-os::iface::import_table* ScOrcusSheet::get_table() +-{ +- return nullptr; +-} +- + os::iface::import_sheet_properties* ScOrcusSheet::get_sheet_properties() + { + return &maProperties; +@@ -1321,6 +1316,277 @@ ScOrcusFactory& ScOrcusSheet::getFactory() + return mrFactory; + } + ++void ScOrcusStrikethrough::reset() ++{ ++ meStyle.reset(); ++ meType.reset(); ++ meWidth.reset(); ++ meText.reset(); ++} ++ ++std::optional ScOrcusStrikethrough::toFontStrikeout() const ++{ ++ std::optional eStrikeout; ++ ++ if (meType) ++ { ++ switch (*meType) ++ { ++ case os::strikethrough_type_t::unknown: ++ eStrikeout = STRIKEOUT_DONTKNOW; ++ break; ++ case os::strikethrough_type_t::none: ++ eStrikeout = STRIKEOUT_NONE; ++ break; ++ case os::strikethrough_type_t::single_type: ++ eStrikeout = STRIKEOUT_SINGLE; ++ break; ++ case os::strikethrough_type_t::double_type: ++ eStrikeout = STRIKEOUT_DOUBLE; ++ break; ++ } ++ } ++ ++ if (meWidth) ++ { ++ switch (*meWidth) ++ { ++ case os::strikethrough_width_t::bold: ++ eStrikeout = STRIKEOUT_BOLD; ++ break; ++ default:; ++ } ++ } ++ ++ if (meText) ++ { ++ switch (*meText) ++ { ++ case os::strikethrough_text_t::slash: ++ eStrikeout = STRIKEOUT_SLASH; ++ break; ++ case os::strikethrough_text_t::cross: ++ eStrikeout = STRIKEOUT_X; ++ break; ++ case os::strikethrough_text_t::unknown: ++ break; ++ } ++ } ++ ++ return eStrikeout; ++} ++ ++ ++void ScOrcusUnderline::reset() ++{ ++ meStyle.reset(); ++ meThickness.reset(); ++ meSpacing.reset(); ++ meCount.reset(); ++} ++ ++std::optional ScOrcusUnderline::toFontLineStyle() const ++{ ++ std::optional eUnderline; ++ ++ if (meStyle) ++ { ++ switch (*meStyle) ++ { ++ case os::underline_style_t::none: ++ eUnderline = LINESTYLE_NONE; ++ break; ++ case os::underline_style_t::solid: ++ { ++ if (meCount) ++ { ++ switch (*meCount) ++ { ++ case os::underline_count_t::single_count: ++ eUnderline = LINESTYLE_SINGLE; ++ break; ++ case os::underline_count_t::double_count: ++ eUnderline = LINESTYLE_DOUBLE; ++ break; ++ case os::underline_count_t::none: ++ break; ++ } ++ } ++ else ++ eUnderline = LINESTYLE_SINGLE; ++ break; ++ } ++ case os::underline_style_t::dotted: ++ eUnderline = LINESTYLE_DOTTED; ++ break; ++ case os::underline_style_t::dash: ++ eUnderline = LINESTYLE_DASH; ++ break; ++ case os::underline_style_t::long_dash: ++ eUnderline = LINESTYLE_LONGDASH; ++ break; ++ case os::underline_style_t::dot_dash: ++ eUnderline = LINESTYLE_DASHDOT; ++ break; ++ case os::underline_style_t::dot_dot_dash: ++ eUnderline = LINESTYLE_DASHDOTDOT; ++ break; ++ case os::underline_style_t::wave: ++ { ++ if (meCount) ++ { ++ switch (*meCount) ++ { ++ case os::underline_count_t::single_count: ++ eUnderline = LINESTYLE_WAVE; ++ break; ++ case os::underline_count_t::double_count: ++ eUnderline = LINESTYLE_DOUBLEWAVE; ++ break; ++ case os::underline_count_t::none: ++ break; ++ } ++ } ++ else ++ eUnderline = LINESTYLE_WAVE; ++ break; ++ } ++ } ++ } ++ ++ bool bApplyBold = false; ++ ++ if (meThickness) ++ { ++ switch (*meThickness) ++ { ++ case os::underline_thickness_t::bold: ++ case os::underline_thickness_t::thick: ++ bApplyBold = true; ++ break; ++ default:; ++ } ++ } ++ ++ if (bApplyBold) ++ { ++ if (eUnderline) ++ { ++ switch (*eUnderline) ++ { ++ case LINESTYLE_NONE: ++ case LINESTYLE_SINGLE: ++ eUnderline = LINESTYLE_BOLD; ++ break; ++ case LINESTYLE_DOTTED: ++ eUnderline = LINESTYLE_BOLDDOTTED; ++ break; ++ case LINESTYLE_DASH: ++ eUnderline = LINESTYLE_BOLDDASH; ++ break; ++ case LINESTYLE_LONGDASH: ++ eUnderline = LINESTYLE_BOLDLONGDASH; ++ break; ++ case LINESTYLE_DASHDOT: ++ eUnderline = LINESTYLE_BOLDDASHDOT; ++ break; ++ case LINESTYLE_DASHDOTDOT: ++ eUnderline = LINESTYLE_BOLDDASHDOTDOT; ++ break; ++ case LINESTYLE_WAVE: ++ eUnderline = LINESTYLE_BOLDWAVE; ++ break; ++ default: ++ ; ++ } ++ } ++ } ++ ++ return eUnderline; ++} ++ ++void ScOrcusSegmentStrikethrough::reset(SfxItemSet* pDestFormat) ++{ ++ mpDestFormat = pDestFormat; ++ maAttrs.reset(); ++} ++ ++void ScOrcusSegmentStrikethrough::set_style(os::strikethrough_style_t s) ++{ ++ maAttrs.meStyle = s; ++} ++ ++void ScOrcusSegmentStrikethrough::set_type(os::strikethrough_type_t s) ++{ ++ maAttrs.meType = s; ++} ++ ++void ScOrcusSegmentStrikethrough::set_width(os::strikethrough_width_t s) ++{ ++ maAttrs.meWidth = s; ++} ++ ++void ScOrcusSegmentStrikethrough::set_text(os::strikethrough_text_t s) ++{ ++ maAttrs.meText = s; ++} ++ ++void ScOrcusSegmentStrikethrough::commit() ++{ ++ auto eStrikeout = maAttrs.toFontStrikeout(); ++ if (!eStrikeout) ++ return; ++ ++ mpDestFormat->Put(SvxCrossedOutItem(*eStrikeout, EE_CHAR_STRIKEOUT)); ++} ++ ++void ScOrcusSegmentUnderline::reset(SfxItemSet* pDestFormat) ++{ ++ mpDestFormat = pDestFormat; ++ maAttrs.reset(); ++ maColor.reset(); ++} ++ ++void ScOrcusSegmentUnderline::set_style(os::underline_style_t e) ++{ ++ maAttrs.meStyle = e; ++} ++ ++void ScOrcusSegmentUnderline::set_thickness(os::underline_thickness_t e) ++{ ++ maAttrs.meThickness = e; ++} ++ ++void ScOrcusSegmentUnderline::set_spacing(os::underline_spacing_t e) ++{ ++ maAttrs.meSpacing = e; ++} ++ ++void ScOrcusSegmentUnderline::set_count(os::underline_count_t e) ++{ ++ maAttrs.meCount = e; ++} ++ ++void ScOrcusSegmentUnderline::set_color( ++ os::color_elem_t alpha, os::color_elem_t red, os::color_elem_t green, os::color_elem_t blue) ++{ ++ maColor = Color(ColorAlpha, alpha, red, green, blue); ++} ++ ++void ScOrcusSegmentUnderline::commit() ++{ ++ auto eUnderline = maAttrs.toFontLineStyle(); ++ if (!eUnderline) ++ return; ++ ++ SvxUnderlineItem aItem(*eUnderline, EE_CHAR_UNDERLINE); ++ ++ if (maColor) ++ aItem.SetColor(*maColor); ++ ++ mpDestFormat->Put(aItem); ++} ++ + OUString ScOrcusSharedStrings::toOUString(std::string_view s) + { + return {s.data(), sal_Int32(s.size()), mrFactory.getGlobalSettings().getTextEncoding()}; +@@ -1360,6 +1626,18 @@ void ScOrcusSharedStrings::set_segment_italic(bool b) + maCurFormat.Put(SvxPostureItem(eItalic, EE_CHAR_ITALIC)); + } + ++void ScOrcusSharedStrings::set_segment_superscript(bool b) ++{ ++ if (b) ++ maCurFormat.Put(SvxEscapementItem(SvxEscapement::Superscript, EE_CHAR_ESCAPEMENT)); ++} ++ ++void ScOrcusSharedStrings::set_segment_subscript(bool b) ++{ ++ if (b) ++ maCurFormat.Put(SvxEscapementItem(SvxEscapement::Subscript, EE_CHAR_ESCAPEMENT)); ++} ++ + void ScOrcusSharedStrings::set_segment_font_name(std::string_view s) + { + OUString aName = toOUString(s); +@@ -1386,6 +1664,18 @@ void ScOrcusSharedStrings::set_segment_font_color( + maCurFormat.Put(SvxColorItem(aColor, EE_CHAR_COLOR)); + } + ++os::iface::import_underline* ScOrcusSharedStrings::start_underline() ++{ ++ maImportUnderline.reset(&maCurFormat); ++ return &maImportUnderline; ++} ++ ++os::iface::import_strikethrough* ScOrcusSharedStrings::start_strikethrough() ++{ ++ maImportStrikethrough.reset(&maCurFormat); ++ return &maImportStrikethrough; ++} ++ + void ScOrcusSharedStrings::append_segment(std::string_view s) + { + ESelection aSel{ mrEditEngine.GetEnd() }; // end of current text +@@ -1616,6 +1906,77 @@ ScOrcusCellStyle::ScOrcusCellStyle() : + { + } + ++void ScOrcusImportFontUnderlineStyle::reset(ScOrcusFont* pDest) ++{ ++ mpDestFont = pDest; ++ ++ maAttrs.reset(); ++ maColor.reset(); ++} ++ ++void ScOrcusImportFontUnderlineStyle::set_style(os::underline_style_t e) ++{ ++ maAttrs.meStyle = e; ++} ++ ++void ScOrcusImportFontUnderlineStyle::set_thickness(os::underline_thickness_t e) ++{ ++ maAttrs.meThickness = e; ++} ++ ++void ScOrcusImportFontUnderlineStyle::set_spacing(os::underline_spacing_t e) ++{ ++ maAttrs.meSpacing = e; ++} ++ ++void ScOrcusImportFontUnderlineStyle::set_count(os::underline_count_t e) ++{ ++ maAttrs.meCount = e; ++} ++ ++void ScOrcusImportFontUnderlineStyle::set_color( ++ os::color_elem_t alpha, os::color_elem_t red, os::color_elem_t green, os::color_elem_t blue) ++{ ++ maColor = Color(ColorAlpha, alpha, red, green, blue); ++} ++ ++void ScOrcusImportFontUnderlineStyle::commit() ++{ ++ mpDestFont->meUnderline = maAttrs.toFontLineStyle(); ++ mpDestFont->maUnderlineColor = maColor; ++} ++ ++void ScOrcusImportFontStrikethroughStyle::reset(ScOrcusFont* pDest) ++{ ++ mpDestFont = pDest; ++ maAttrs.reset(); ++} ++ ++void ScOrcusImportFontStrikethroughStyle::set_style(orcus::spreadsheet::strikethrough_style_t s) ++{ ++ maAttrs.meStyle = s; ++} ++ ++void ScOrcusImportFontStrikethroughStyle::set_type(orcus::spreadsheet::strikethrough_type_t s) ++{ ++ maAttrs.meType = s; ++} ++ ++void ScOrcusImportFontStrikethroughStyle::set_width(orcus::spreadsheet::strikethrough_width_t s) ++{ ++ maAttrs.meWidth = s; ++} ++ ++void ScOrcusImportFontStrikethroughStyle::set_text(orcus::spreadsheet::strikethrough_text_t s) ++{ ++ maAttrs.meText = s; ++} ++ ++void ScOrcusImportFontStrikethroughStyle::commit() ++{ ++ mpDestFont->meStrikeout = maAttrs.toFontStrikeout(); ++} ++ + ScOrcusImportFontStyle::ScOrcusImportFontStyle( ScOrcusFactory& rFactory, std::vector& rFonts ) : + mrFactory(rFactory), + mrFonts(rFonts) +@@ -1690,181 +2051,22 @@ void ScOrcusImportFontStyle::set_size_complex(double point) + maCurrentFont.mnSizeComplex = point; + } + +-void ScOrcusImportFontStyle::set_underline(os::underline_t e) +-{ +- switch(e) +- { +- case os::underline_t::single_line: +- case os::underline_t::single_accounting: +- maCurrentFont.meUnderline = LINESTYLE_SINGLE; +- break; +- case os::underline_t::double_line: +- case os::underline_t::double_accounting: +- maCurrentFont.meUnderline = LINESTYLE_DOUBLE; +- break; +- case os::underline_t::none: +- maCurrentFont.meUnderline = LINESTYLE_NONE; +- break; +- case os::underline_t::dotted: +- maCurrentFont.meUnderline = LINESTYLE_DOTTED; +- break; +- case os::underline_t::dash: +- maCurrentFont.meUnderline = LINESTYLE_DASH; +- break; +- case os::underline_t::long_dash: +- maCurrentFont.meUnderline = LINESTYLE_LONGDASH; +- break; +- case os::underline_t::dot_dash: +- maCurrentFont.meUnderline = LINESTYLE_DASHDOT; +- break; +- case os::underline_t::dot_dot_dash: +- maCurrentFont.meUnderline = LINESTYLE_DASHDOTDOT; +- break; +- case os::underline_t::wave: +- maCurrentFont.meUnderline = LINESTYLE_WAVE; +- break; +- default: +- ; +- } +-} +- +-void ScOrcusImportFontStyle::set_underline_width(os::underline_width_t e) +-{ +- if (e == os::underline_width_t::bold || e == os::underline_width_t::thick) +- { +- if (maCurrentFont.meUnderline) +- { +- switch (*maCurrentFont.meUnderline) +- { +- case LINESTYLE_NONE: +- case LINESTYLE_SINGLE: +- maCurrentFont.meUnderline = LINESTYLE_BOLD; +- break; +- case LINESTYLE_DOTTED: +- maCurrentFont.meUnderline = LINESTYLE_BOLDDOTTED; +- break; +- case LINESTYLE_DASH: +- maCurrentFont.meUnderline = LINESTYLE_BOLDDASH; +- break; +- case LINESTYLE_LONGDASH: +- maCurrentFont.meUnderline = LINESTYLE_BOLDLONGDASH; +- break; +- case LINESTYLE_DASHDOT: +- maCurrentFont.meUnderline = LINESTYLE_BOLDDASHDOT; +- break; +- case LINESTYLE_DASHDOTDOT: +- maCurrentFont.meUnderline = LINESTYLE_BOLDDASHDOTDOT; +- break; +- case LINESTYLE_WAVE: +- maCurrentFont.meUnderline = LINESTYLE_BOLDWAVE; +- break; +- default: +- ; +- } +- } +- else +- maCurrentFont.meUnderline = LINESTYLE_BOLD; +- } +-} +- +-void ScOrcusImportFontStyle::set_underline_mode(os::underline_mode_t /*e*/) +-{ +-} +- +-void ScOrcusImportFontStyle::set_underline_type(os::underline_type_t e ) +-{ +- if (e == os::underline_type_t::double_type) +- { +- if (maCurrentFont.meUnderline) +- { +- switch (*maCurrentFont.meUnderline) +- { +- case LINESTYLE_NONE: +- case LINESTYLE_SINGLE: +- maCurrentFont.meUnderline = LINESTYLE_DOUBLE; +- break; +- case LINESTYLE_WAVE: +- maCurrentFont.meUnderline = LINESTYLE_DOUBLEWAVE; +- break; +- default: +- ; +- } +- } +- else +- maCurrentFont.meUnderline = LINESTYLE_DOUBLE; +- } +-} +- +-void ScOrcusImportFontStyle::set_underline_color( +- os::color_elem_t alpha, os::color_elem_t red, os::color_elem_t green, os::color_elem_t blue) +-{ +- maCurrentFont.maUnderlineColor = Color(ColorAlpha, alpha, red, green, blue); +-} +- + void ScOrcusImportFontStyle::set_color( + os::color_elem_t alpha, os::color_elem_t red, os::color_elem_t green, os::color_elem_t blue) + { + maCurrentFont.maColor = Color(ColorAlpha, alpha, red, green, blue); + } + +-void ScOrcusImportFontStyle::set_strikethrough_style(os::strikethrough_style_t /*s*/) ++orcus::spreadsheet::iface::import_underline* ScOrcusImportFontStyle::start_underline() + { ++ maUnderlineImport.reset(&maCurrentFont); ++ return &maUnderlineImport; + } + +-void ScOrcusImportFontStyle::set_strikethrough_type(os::strikethrough_type_t s) ++orcus::spreadsheet::iface::import_strikethrough* ScOrcusImportFontStyle::start_strikethrough() + { +- if (maCurrentFont.meStrikeout) +- { +- if (*maCurrentFont.meStrikeout == STRIKEOUT_BOLD || +- *maCurrentFont.meStrikeout == STRIKEOUT_SLASH || +- *maCurrentFont.meStrikeout == STRIKEOUT_X) +- return; +- } +- +- switch (s) +- { +- case os::strikethrough_type_t::unknown: +- maCurrentFont.meStrikeout = STRIKEOUT_DONTKNOW; +- break; +- case os::strikethrough_type_t::none: +- maCurrentFont.meStrikeout = STRIKEOUT_NONE; +- break; +- case os::strikethrough_type_t::single_type: +- maCurrentFont.meStrikeout = STRIKEOUT_SINGLE; +- break; +- case os::strikethrough_type_t::double_type: +- maCurrentFont.meStrikeout = STRIKEOUT_DOUBLE; +- break; +- default: +- ; +- } +-} +- +-void ScOrcusImportFontStyle::set_strikethrough_width(os::strikethrough_width_t s) +-{ +- switch (s) +- { +- case os::strikethrough_width_t::bold: +- maCurrentFont.meStrikeout = STRIKEOUT_BOLD; +- break; +- default: +- ; +- } +-} +- +-void ScOrcusImportFontStyle::set_strikethrough_text(os::strikethrough_text_t s) +-{ +- switch (s) +- { +- case os::strikethrough_text_t::slash: +- maCurrentFont.meStrikeout = STRIKEOUT_SLASH; +- break; +- case os::strikethrough_text_t::cross: +- maCurrentFont.meStrikeout = STRIKEOUT_X; +- break; +- default: +- ; +- } ++ maStrikeoutImport.reset(&maCurrentFont); ++ return &maStrikeoutImport; + } + + std::size_t ScOrcusImportFontStyle::commit() +@@ -2437,44 +2639,4 @@ void ScOrcusStyles::set_cell_style_count(size_t /*n*/) + { + } + +-// auto filter import +- +-ScOrcusAutoFilter::ScOrcusAutoFilter( const ScOrcusGlobalSettings& rGS ) : +- mrGlobalSettings(rGS) +-{ +-} +- +-ScOrcusAutoFilter::~ScOrcusAutoFilter() +-{ +-} +- +-void ScOrcusAutoFilter::set_range(const os::range_t& range) +-{ +- maRange.aStart.SetRow(range.first.row); +- maRange.aStart.SetCol(range.first.column); +- maRange.aEnd.SetRow(range.last.row); +- maRange.aEnd.SetCol(range.last.column); +-} +- +-void ScOrcusAutoFilter::set_column(os::col_t col) +-{ +- SAL_INFO("sc.orcus.autofilter", "set_column: " << col); +-} +- +-void ScOrcusAutoFilter::append_column_match_value(std::string_view value) +-{ +- OUString aString(value.data(), value.size(), mrGlobalSettings.getTextEncoding()); +- SAL_INFO("sc.orcus.autofilter", "append_column_match_value: " << aString); +-} +- +-void ScOrcusAutoFilter::commit_column() +-{ +- SAL_INFO("sc.orcus.autofilter", "commit column"); +-} +- +-void ScOrcusAutoFilter::commit() +-{ +- SAL_INFO("sc.orcus.autofilter", "commit"); +-} +- + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +diff --git a/sc/source/filter/xml/XMLStylesExportHelper.cxx b/sc/source/filter/xml/XMLStylesExportHelper.cxx +index 9d81eb609436..c6dfd84c3bdb 100644 +--- a/sc/source/filter/xml/XMLStylesExportHelper.cxx ++++ b/sc/source/filter/xml/XMLStylesExportHelper.cxx +@@ -1021,7 +1021,7 @@ sal_Int32 ScRowStyles::GetStyleNameIndex(const sal_Int32 nTable, const sal_Int32 + return maCache.mnStyle; + + StylesType& r = *aTables[nTable]; +- if (!r.is_tree_valid()) ++ if (!r.valid_tree()) + r.build_tree(); + sal_Int32 nStyle(0); + sal_Int32 nStart(0), nEnd(0); +-- +cgit v1.2.3 + diff --git a/office/libreoffice/libreoffice/pspec.xml b/office/libreoffice/libreoffice/pspec.xml index 449d91b7a1..3d2c93c7cb 100644 --- a/office/libreoffice/libreoffice/pspec.xml +++ b/office/libreoffice/libreoffice/pspec.xml @@ -13,109 +13,114 @@ app:gui LibreOffice office suite LibreOffice is an open source, multi-platform office productivity suite. It includes key desktop applications such as a word processor, a spreadsheet application, a presentation creator-viewer, a formula editor and a drawing program, with a user interface and feature set similar to other office suites. Sophisticated and flexible, LibreOffice also works transparently with a variety of file formats, including those of Microsoft Office. - http://download.documentfoundation.org/libreoffice/src/24.8.4/libreoffice-24.8.4.2.tar.xz - http://download.documentfoundation.org/libreoffice/src/24.8.4/libreoffice-dictionaries-24.8.4.2.tar.xz - http://download.documentfoundation.org/libreoffice/src/24.8.4/libreoffice-help-24.8.4.2.tar.xz - http://download.documentfoundation.org/libreoffice/src/24.8.4/libreoffice-translations-24.8.4.2.tar.xz + http://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-25.2.1.2.tar.xz + http://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-dictionaries-25.2.1.2.tar.xz + http://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-help-25.2.1.2.tar.xz + http://download.documentfoundation.org/libreoffice/src/25.2.1/libreoffice-translations-25.2.1.2.tar.xz - - http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip - - - http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip - http://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz - http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip - http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip - http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip - http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip - http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip - http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip - http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip - http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip - http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip - http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz - - - https://dev-www.libreoffice.org/src/language-subtag-registry-2024-11-19.tar.bz2 - http://dev-www.libreoffice.org/src/collada2gltf-master-6258611a6a.tar.bz2 - http://dev-www.libreoffice.org/src/OpenCOLLADA-master-6509aa13af.tar.bz2 - https://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip - https://dev-www.libreoffice.org/src/62c0b97e94fe47d5e50ff605d2edf37a-hsqldb-2.3.3.zip - http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip - http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - - https://dev-www.libreoffice.org/src/liborcus-0.19.2.tar.xz - http://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip - https://dev-www.libreoffice.org/src/bsh-2.1.1-src.zip - http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz - https://dev-www.libreoffice.org/src/libabw-0.1.3.tar.xz - https://dev-www.libreoffice.org/src/libcmis-0.6.1.tar.xz - https://dev-www.libreoffice.org/src/libcmis-0.6.2.tar.xz - https://dev-www.libreoffice.org/src/libnumbertext-1.0.11.tar.xz - - - https://dev-www.libreoffice.org/src/lxml-5.3.0.tar.gz - http://dev-www.libreoffice.org/src/libexttextcat-3.4.6.tar.xz - https://dev-www.libreoffice.org/src/libexttextcat-3.4.7.tar.xz - https://dev-www.libreoffice.org/src/libmwaw-0.3.21.tar.xz - https://dev-www.libreoffice.org/src/libmwaw-0.3.22.tar.xz - http://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz - - https://dev-www.libreoffice.org/src/libe-book-0.1.3.tar.xz - https://dev-www.libreoffice.org/src/libepubgen-0.1.1.tar.xz - - http://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz - https://dev-www.libreoffice.org/src/lp_solve_5.5.2.11.tar.gz - https://dev-www.libreoffice.org/src/mythes-1.2.5.tar.xz - - https://dev-www.libreoffice.org/src/pdfium-6425.tar.bz2 - - https://dev-www.libreoffice.org/src/pdfium-6887.tar.bz2 - https://dev-www.libreoffice.org/src/frozen-1.1.1.tar.gz - https://dev-www.libreoffice.org/src/frozen-1.2.0.tar.gz - https://dev-www.libreoffice.org/src/QR-Code-generator-1.4.0.tar.gz - https://dev-www.libreoffice.org/src/Firebird-3.0.7.33374-0.tar.bz2 - https://dev-www.libreoffice.org/src/Firebird-5.0.0.1306-0-source.tar.xz - https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz - - https://dev-www.libreoffice.org/src/ltm-1.3.0.tar.xz - https://dev-www.libreoffice.org/src/box2d-2.4.1.tar.gz - https://dev-www.libreoffice.org/src/dtoa-20180411.tgz - https://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz - - https://dev-www.libreoffice.org/src/mariadb-connector-c-3.3.8-src.tar.gz - https://dev-www.libreoffice.org/src/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz - https://dev-www.libreoffice.org/src/skia-m130-3c64459d5df2fa9794b277f0959ed8a92552bf4c.tar.xz - - https://dev-www.libreoffice.org/src/libcuckoo-93217f8d391718380c508a722ab9acd5e9081233.tar.gz - https://dev-www.libreoffice.org/extern/884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf - https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf - https://dev-www.libreoffice.org/src/b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_0.9.5.oxt - https://dev-www.libreoffice.org/src/libnumbertext-1.0.11.tar.xz + + http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip + + + http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + http://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz + http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip + http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip + http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip + http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip + http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip + http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip + http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip + http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip + http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip + http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz + + + https://dev-www.libreoffice.org/src/language-subtag-registry-2024-11-19.tar.bz2 + http://dev-www.libreoffice.org/src/collada2gltf-master-6258611a6a.tar.bz2 + http://dev-www.libreoffice.org/src/OpenCOLLADA-master-6509aa13af.tar.bz2 + https://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip + https://dev-www.libreoffice.org/src/62c0b97e94fe47d5e50ff605d2edf37a-hsqldb-2.3.3.zip + http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip + + https://dev-www.libreoffice.org/src/liborcus-0.19.2.tar.xz + https://dev-www.libreoffice.org/src/liborcus-0.20.0.tar.xz + http://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip + https://dev-www.libreoffice.org/src/bsh-2.1.1-src.zip + http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz + https://dev-www.libreoffice.org/src/libabw-0.1.3.tar.xz + https://dev-www.libreoffice.org/src/libcmis-0.6.1.tar.xz + https://dev-www.libreoffice.org/src/libcmis-0.6.2.tar.xz + https://dev-www.libreoffice.org/src/libnumbertext-1.0.11.tar.xz + + + https://dev-www.libreoffice.org/src/lxml-5.3.0.tar.gz + http://dev-www.libreoffice.org/src/libexttextcat-3.4.6.tar.xz + https://dev-www.libreoffice.org/src/libexttextcat-3.4.7.tar.xz + https://dev-www.libreoffice.org/src/libmwaw-0.3.21.tar.xz + https://dev-www.libreoffice.org/src/libmwaw-0.3.22.tar.xz + http://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz + + https://dev-www.libreoffice.org/src/libe-book-0.1.3.tar.xz + https://dev-www.libreoffice.org/src/libepubgen-0.1.1.tar.xz + + http://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz + https://dev-www.libreoffice.org/src/lp_solve_5.5.2.11.tar.gz + https://dev-www.libreoffice.org/src/mythes-1.2.5.tar.xz + https://dev-www.libreoffice.org/src/pdfium-7012.tar.bz2 + https://dev-www.libreoffice.org/src/pdfium-6425.tar.bz2 + https://dev-www.libreoffice.org/src/pdfium-6764.tar.bz2 + https://dev-www.libreoffice.org/src/pdfium-6887.tar.bz2 + https://dev-www.libreoffice.org/src/frozen-1.1.1.tar.gz + https://dev-www.libreoffice.org/src/frozen-1.2.0.tar.gz + https://dev-www.libreoffice.org/src/QR-Code-generator-1.4.0.tar.gz + https://dev-www.libreoffice.org/src/Firebird-3.0.7.33374-0.tar.bz2 + https://dev-www.libreoffice.org/src/Firebird-5.0.0.1306-0-source.tar.xz + https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz + + https://dev-www.libreoffice.org/src/ltm-1.3.0.tar.xz + https://dev-www.libreoffice.org/src/box2d-2.4.1.tar.gz + https://dev-www.libreoffice.org/src/dtoa-20180411.tgz + https://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz + + https://dev-www.libreoffice.org/src/mariadb-connector-c-3.3.8-src.tar.gz + + https://dev-www.libreoffice.org/src/skia-m130-3c64459d5df2fa9794b277f0959ed8a92552bf4c.tar.xz + + https://dev-www.libreoffice.org/src/libcuckoo-93217f8d391718380c508a722ab9acd5e9081233.tar.gz + https://dev-www.libreoffice.org/extern/884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf + https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf + https://dev-www.libreoffice.org/src/b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_0.9.5.oxt + https://dev-www.libreoffice.org/src/libnumbertext-1.0.11.tar.xz - http://dev-www.libreoffice.org/extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar - https://dev-www.libreoffice.org/extern/a1adc7a47ed126ed029893c23c8bdd43-officeotron-0.7.4-master.jar - https://dev-www.libreoffice.org/src/dragonbox-1.1.3.tar.gz - - - https://dev-www.libreoffice.org/src/libxml2-2.13.5.tar.xz - - - https://dev-www.libreoffice.org/src/libwebp-1.5.0.tar.gz - - - https://dev-www.libreoffice.org/src/tiff-4.7.0.tar.xz - https://dev-www.libreoffice.org/src/zxcvbn-c-2.5.tar.gz - - - https://dev-www.libreoffice.org/src/Java-WebSocket-1.5.6.tar.gz - https://dev-www.libreoffice.org/src/Java-WebSocket-1.6.0.tar.gz - https://dev-www.libreoffice.org/src/phc-winner-argon2-20190702.tar.gz + http://dev-www.libreoffice.org/extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar + https://dev-www.libreoffice.org/extern/a1adc7a47ed126ed029893c23c8bdd43-officeotron-0.7.4-master.jar + https://dev-www.libreoffice.org/src/dragonbox-1.1.3.tar.gz + + + https://dev-www.libreoffice.org/src/libxml2-2.13.5.tar.xz + + + https://dev-www.libreoffice.org/src/libwebp-1.5.0.tar.gz + + + https://dev-www.libreoffice.org/src/tiff-4.7.0.tar.xz + https://dev-www.libreoffice.org/src/zxcvbn-c-2.5.tar.gz + + + https://dev-www.libreoffice.org/src/Java-WebSocket-1.5.6.tar.gz + https://dev-www.libreoffice.org/src/Java-WebSocket-1.6.0.tar.gz + https://dev-www.libreoffice.org/src/phc-winner-argon2-20190702.tar.gz make-pyuno-work-with-system-wide-module-install.diff - 623ea5c.diff + + + mdds-3.0.0.patch + fix_pdf_import_with_poppler_25.02.patch + libreoffice-24.8.4.2-icu76_fixes-1.patch @@ -227,7 +232,7 @@ kglobalaccel-devel kguiaddons-devel sonnet-devel - plasma-framework-devel + libplasma-devel kio-devel kconfig-devel kservice-devel @@ -254,6 +259,11 @@ kcoreaddons-devel ki18n-devel kwindowsystem-devel + argon2-devel + libarchive-devel + llvm-clang-devel + wget + which @@ -806,6 +816,8 @@ /usr/lib/libreoffice/program/intl/libfbintl.so /usr/lib/libreoffice/program/intl/fbintl.conf /usr/lib/libreoffice/share/fingerprint/ilo.lm + /usr/lib/libreoffice/share/classification/example_es-ES.xml + /usr/lib/libreoffice/share/autotext/common libreoffice-splash.png @@ -3917,6 +3929,13 @@ + + 2025-03-01 + 25.2.1.2 + Version Bump + Kamil Atlı + suvari@pisilinux.org + 2024-12-30 24.8.4.2