From e7db35e333a5dbdd4ce637e43594fc46b0f3bf74 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Thu, 18 Aug 2022 23:19:34 +0000 Subject: [PATCH] extra/libreoffice-still to 7.3.5-2 --- ...p_the_SolarMutex_before_QApplication.patch | 76 - extra/libreoffice-still/PKGBUILD | 69 +- .../mdds-2.0-and-orcus-0.17.diff | 4996 ----------------- extra/libreoffice-still/poppler-22.03.0.patch | 28 - extra/libreoffice-still/poppler-22.04.0.patch | 71 - 5 files changed, 25 insertions(+), 5215 deletions(-) delete mode 100644 extra/libreoffice-still/0001_drop_the_SolarMutex_before_QApplication.patch delete mode 100644 extra/libreoffice-still/mdds-2.0-and-orcus-0.17.diff delete mode 100644 extra/libreoffice-still/poppler-22.03.0.patch delete mode 100644 extra/libreoffice-still/poppler-22.04.0.patch diff --git a/extra/libreoffice-still/0001_drop_the_SolarMutex_before_QApplication.patch b/extra/libreoffice-still/0001_drop_the_SolarMutex_before_QApplication.patch deleted file mode 100644 index a17c7530d..000000000 --- a/extra/libreoffice-still/0001_drop_the_SolarMutex_before_QApplication.patch +++ /dev/null @@ -1,76 +0,0 @@ -From db43e8a2a02adaa3571137b82855c01fad4c2534 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> -Date: Wed, 2 Feb 2022 16:21:43 +0000 -Subject: rhbz#2047319 drop the SolarMutex before QApplication::init() - -https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/24#note_383915 - -reproducible with with qt5-qtwayland-5.15.2-17.fc35.x86_64 and -export OOO_FORCE_DESKTOP=plasma5 -export SAL_USE_VCLPLUGIN=gtk3 - -Change-Id: Icdf6b8709865c723c266e6400169b33639a1b0e4 -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129428 -Tested-by: Jenkins -Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> ---- - shell/Library_kf5be.mk | 1 + - shell/source/backends/kf5be/kf5backend.cxx | 23 +++++++++++++++-------- - 2 files changed, 16 insertions(+), 8 deletions(-) - -diff --git a/shell/Library_kf5be.mk b/shell/Library_kf5be.mk -index 628145176e0f..157f8b9836f8 100644 ---- a/shell/Library_kf5be.mk -+++ b/shell/Library_kf5be.mk -@@ -20,6 +20,7 @@ $(eval $(call gb_Library_use_libraries,kf5be1,\ - cppu \ - cppuhelper \ - sal \ -+ vcl \ - )) - - $(eval $(call gb_Library_set_componentfile,kf5be1,shell/source/backends/kf5be/kf5be1)) -diff --git a/shell/source/backends/kf5be/kf5backend.cxx b/shell/source/backends/kf5be/kf5backend.cxx -index e9e10e60fd27..2b41414c54cd 100644 ---- a/shell/source/backends/kf5be/kf5backend.cxx -+++ b/shell/source/backends/kf5be/kf5backend.cxx -@@ -41,6 +41,7 @@ - #include <rtl/ustring.hxx> - #include <sal/types.h> - #include <uno/current_context.hxx> -+#include <vcl/svapp.hxx> - - #include <osl/process.h> - #include <osl/thread.h> -@@ -172,14 +173,20 @@ void initQApp(std::map<OUString, css::beans::Optional<css::uno::Any>>& rSettings - unsetenv("SESSION_MANAGER"); - } - -- std::unique_ptr<QApplication> app(new QApplication(nFakeArgc, pFakeArgv)); -- QObject::connect(app.get(), &QObject::destroyed, app.get(), [nFakeArgc, pFakeArgv]() { -- for (int i = 0; i < nFakeArgc; ++i) -- free(pFakeArgv[i]); -- delete[] pFakeArgv; -- }); -- -- readKDESettings(rSettings); -+ { -+ // rhbz#2047319 drop the SolarMutex during the execution of QApplication::init() -+ // https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/24#note_383915 -+ SolarMutexReleaser aReleaser; // rhbz#2047319 drop the SolarMutex during the execution -+ -+ std::unique_ptr<QApplication> app(new QApplication(nFakeArgc, pFakeArgv)); -+ QObject::connect(app.get(), &QObject::destroyed, app.get(), [nFakeArgc, pFakeArgv]() { -+ for (int i = 0; i < nFakeArgc; ++i) -+ free(pFakeArgv[i]); -+ delete[] pFakeArgv; -+ }); -+ -+ readKDESettings(rSettings); -+ } - - if (session_manager != nullptr) - { --- -cgit v1.2.1 - diff --git a/extra/libreoffice-still/PKGBUILD b/extra/libreoffice-still/PKGBUILD index c186cf5d1..476e34144 100644 --- a/extra/libreoffice-still/PKGBUILD +++ b/extra/libreoffice-still/PKGBUILD @@ -17,9 +17,9 @@ _google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 pkgbase=libreoffice-still pkgname=('libreoffice-still-sdk' 'libreoffice-still') -_LOver=7.2.7.2 -pkgver=7.2.7 -pkgrel=5 +_LOver=7.3.5.2 +pkgver=7.3.5 +pkgrel=2 arch=('x86_64') license=('LGPL3') url="https://www.libreoffice.org/" @@ -36,8 +36,9 @@ makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.7' 'libwpd>=0.9.2' 'lib 'apr' 'serf' 'ttf-liberation' 'ttf-dejavu' 'ttf-carlito' 'libxinerama' 'libpagemaker' 'glm' 'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liblangtag' 'liborcus' 'libexttextcat' 'libcmis' 'gobject-introspection' # 'libfbclient' - 'libtommath' 'libzmf' 'xmlsec' 'rxvt-unicode' #'gpgme' + 'libtommath' 'libzmf' 'xmlsec' 'rxvt-unicode' 'gpgme' 'libepubgen' 'libfreehand' 'libqxp' 'libstaroffice' 'boost' 'libnumbertext' + 'libcuckoo' 'abseil-cpp' 'clang' #'zxing-cpp' 'libffi' 'box2d' 'git' ) options=('!lto') # using --enable-lto (for parallel link-time optimization) @@ -54,23 +55,16 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc} ${_additional_source_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - ${_additional_source_url}/pdfium-4500.tar.bz2 + ${_additional_source_url}/pdfium-4699.tar.bz2 ${_additional_source_url}/dtoa-20180411.tgz ${_additional_source_url}/lxml-4.1.1.tgz - ${_additional_source_url}/zxing-cpp-1.1.1.tar.gz - ${_additional_source_url}/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz - ${_additional_source_url}/gpgme-1.13.1.tar.bz2 - ${_additional_source_url}/libgpg-error-1.37.tar.bz2 - ${_additional_source_url}/libassuan-2.5.3.tar.bz2 + ${_additional_source_url}/skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz + ${_additional_source_url}/zxing-cpp-1.2.0.tar.gz ${_additional_source_url2}/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar # for test suite ${_additional_source_url2}/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite ${_additional_source_url2}/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf ${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll - poppler-22.03.0.patch - poppler-22.04.0.patch make-pyuno-work-with-system-wide-module-install.diff - mdds-2.0-and-orcus-0.17.diff - 0001_drop_the_SolarMutex_before_QApplication.patch soffice-template.desktop.in libreoffice-still.sh libreoffice-still.csh) noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip @@ -81,25 +75,22 @@ noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - pdfium-4500.tar.bz2 + pdfium-4699.tar.bz2 dtoa-20180411.tgz lxml-4.1.1.tgz - zxing-cpp-1.1.1.tar.gz - skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz - gpgme-1.13.1.tar.bz2 - libgpg-error-1.37.tar.bz2 - libassuan-2.5.3.tar.bz2 + skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz + zxing-cpp-1.2.0.tar.gz 8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar # for test suite odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf 185d60944ea767075d27247c3162b3bc-unowinreg.dll ) validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org> -sha256sums=('6deaf83a0c2b83c5c8c53c2a9443e2ece51e19469494be2027d4fef3a61bc6a2' +sha256sums=('9b3e0db1ee153330ea05f04109bd817dbac2203d2eed83ef54be54d4c741e991' 'SKIP' - 'a4d87b16c05e892b741db9683474692c25907f8df162d5c27ba65bdc8fcb6fe2' + '9571c1953d7297d158dee8849f7e6315b102fb0cafb2280693e6064ef8013ca2' 'SKIP' - '2377014eea11b41e998545aae875ee32df097e869ea329f1be07a44c28595d04' + 'd2fe9df14d1d7bbf16dd4c7f2fc9331622619d18caadf612d932496f52e146b2' 'SKIP' '64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1' '1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753' @@ -109,24 +100,17 @@ sha256sums=('6deaf83a0c2b83c5c8c53c2a9443e2ece51e19469494be2027d4fef3a61bc6a2' 'd30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370' '1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133' '233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd' - '26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304' + 'ee80fe0a3b20ef5c5babc494cd655d1b1a0bdec710acb04524789df500c563bf' '0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4' '940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e' 'acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76' - 'e595b3fa2ec320beb0b28f6af56b1141853257c2611686685639cebb3b248c86' - 'abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d' - 'c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46' - 'b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763' - '91bcb0403866b4e7c4bc1cc52ed4c364a9b5414b3994f718c70303f7f765e702' + '97e859e8467eca9d2441cd23079b61c2c3863b5687620f18cc31a9f966740177' + '653d9e44195d86cf64a36af9ff3a1978ec5599df3882439fefa56e7064f55e8a' 'f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770' '984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504' 'f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140' 'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6' - 'e61e2a266c7a4374377475254a2f095c1ce2376980b301955a4e5a0d32d3c25b' - 'caaef7919c6296ab93c7d02607503f91ec965387d038779c0aba9fce78b8e456' 'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563' - 'fd84c4920b25a6ec4f5f08c852ae10a63a3d19c07d83916964f7fa23597d33dd' - '81a8551aaea0ab1750d36fb8bfbd04340a43eaab349a43c1384d21ef6504ab47' 'd0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879' 'cd1b25ff390e436c6bffa65c6e12382236e3ccbf8d3aae51b1b59bcaed79fd8a' 'de20f36d45f0fecc2d94176dd3ec7226ab07fa8ffb9b0bc73c200349a9273de1') @@ -135,6 +119,9 @@ prepare() { cd libreoffice-$_LOver + # Workaround to fix build with gpgme 1.18.0 + export ac_cv_lib_gpgmepp_progress_callback=yes + # move external sources into place mkdir "${srcdir}"/ext_sources && pushd "${srcdir}"/ext_sources for source in "${noextract[@]}"; do @@ -147,18 +134,9 @@ prepare() { rm "${srcdir}"/ext_sources/185d60944ea767075d27247c3162b3bc-unowinreg.dll cp -f "${srcdir}"/185d60944ea767075d27247c3162b3bc-unowinreg.dll "${srcdir}"/ext_sources - patch -Np1 -i "${srcdir}"/poppler-22.03.0.patch - patch -Np0 -i "${srcdir}"/poppler-22.04.0.patch - # fix not upstreamable pyuno paths - FS#54250 patch -Np1 -i "${srcdir}"/make-pyuno-work-with-system-wide-module-install.diff - # fix build with current system libixion/liborcus/mdds - patch -Np1 -i "${srcdir}"/mdds-2.0-and-orcus-0.17.diff - - # fix crash on start - FS#73471 - patch -Np1 -i "${srcdir}"/0001_drop_the_SolarMutex_before_QApplication.patch - #use the CFLAGS but remove the LibO overridden ones for i in $CFLAGS; do case "$i" in @@ -241,8 +219,9 @@ build() { --with-system-libwps \ --with-system-redland\ --with-system-libzmf \ - --without-system-gpgmepp \ + --with-system-gpgmepp \ --with-system-libstaroffice \ + --with-system-cuckoo \ --with-system-serf \ --with-jdk-home="/usr/lib/jvm/default" \ --with-ant-home="/usr/share/ant"\ @@ -308,8 +287,9 @@ package_libreoffice-still() { 'desktop-file-utils' 'shared-mime-info' 'libpagemaker' 'libxinerama' 'libabw' 'libmwaw' 'libe-book' 'libcups' 'liblangtag' 'libexttextcat' 'libcmis' 'liborcus' # 'libfbclient' - 'libtommath' 'libzmf' 'libatomic_ops' 'xmlsec' 'libnumbertext' #'gpgme' + 'libtommath' 'libzmf' 'libatomic_ops' 'xmlsec' 'libnumbertext' 'gpgme' 'libfreehand' 'libstaroffice' 'libepubgen' 'libqxp' 'libepoxy' 'box2d' + #'zxing-cpp' 'xdg-utils') optdepends=('java-runtime: adds java support' 'java-environment: required by extension-wiki-publisher and extension-nlpsolver' @@ -410,3 +390,4 @@ package_libreoffice-still() { 'sid','sk','sl','sq','sv','ta','tg','tr','ug','uk','vi','zh-CN','zh-TW'])" \ > "${pkgdir}"/usr/lib/libreoffice/help/languages.js } + diff --git a/extra/libreoffice-still/mdds-2.0-and-orcus-0.17.diff b/extra/libreoffice-still/mdds-2.0-and-orcus-0.17.diff deleted file mode 100644 index 32fb4b7b7..000000000 --- a/extra/libreoffice-still/mdds-2.0-and-orcus-0.17.diff +++ /dev/null @@ -1,4996 +0,0 @@ -From eb07a0e76fe240a184348d96a6cebf7c0a229ac0 Mon Sep 17 00:00:00 2001 -From: Kohei Yoshida <kohei@libreoffice.org> -Date: Mon, 1 Nov 2021 14:01:22 -0400 -Subject: Upgrade mdds and liborcus to 2.0.0 and 0.17.0, respectively. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I9e856fc2d61f1789a6f1702514837860539a0f49 -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124573 -Tested-by: Jenkins -Tested-by: René Engelhard <rene@debian.org> -Reviewed-by: Kohei Yoshida <kohei@libreoffice.org> ---- - RepositoryExternal.mk | 4 +- - bin/oss-fuzz-setup.sh | 2 +- - configure.ac | 4 +- - cui/source/dialogs/AdditionsDialog.cxx | 62 +- - download.lst | 8 +- - external/liborcus/ExternalPackage_liborcus.mk | 8 +- - external/liborcus/ExternalProject_liborcus.mk | 4 +- - external/liborcus/Library_orcus-parser.mk | 1 + - external/liborcus/UnpackedTarball_liborcus.mk | 9 +- - external/liborcus/allow-utf-8-in-xml-names.patch | 301 ----- - external/liborcus/boost-filesystem.patch.1 | 41 + - .../liborcus/inc/pch/precompiled_orcus-parser.hxx | 1 - - external/liborcus/inc/pch/precompiled_orcus.hxx | 1 - - external/liborcus/include.patch.0 | 30 - - external/liborcus/remove-unused-parameters.patch.1 | 1209 ++++++++++++++++++++ - external/liborcus/std-get-busted.patch.1 | 418 +++++++ - external/liborcus/unused-variables.patch.1 | 24 + - external/mdds/UnpackedTarball_mdds.mk | 6 +- - external/mdds/Wunused-but-set-variable.patch | 46 - - .../mdds/remove-more-unused-parameters.patch.1 | 42 + - external/mdds/remove-unused-parameters.patch.1 | 93 ++ - sc/inc/mtvelements.hxx | 22 +- - sc/source/filter/inc/orcusinterface.hxx | 50 +- - sc/source/filter/orcus/interface.cxx | 97 +- - sc/source/filter/orcus/orcusfiltersimpl.cxx | 8 +- - sc/source/filter/orcus/xmlcontext.cxx | 10 +- - sfx2/source/control/emojiview.cxx | 11 +- - solenv/flatpak-manifest.in | 12 +- - 28 files changed, 1973 insertions(+), 551 deletions(-) - delete mode 100644 external/liborcus/allow-utf-8-in-xml-names.patch - create mode 100644 external/liborcus/boost-filesystem.patch.1 - delete mode 100644 external/liborcus/include.patch.0 - create mode 100644 external/liborcus/remove-unused-parameters.patch.1 - create mode 100644 external/liborcus/std-get-busted.patch.1 - create mode 100644 external/liborcus/unused-variables.patch.1 - delete mode 100644 external/mdds/Wunused-but-set-variable.patch - create mode 100644 external/mdds/remove-more-unused-parameters.patch.1 - create mode 100644 external/mdds/remove-unused-parameters.patch.1 - -diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk -index c28b049caef8..a2a7212aa837 100644 ---- a/RepositoryExternal.mk -+++ b/RepositoryExternal.mk -@@ -3329,7 +3329,7 @@ $(call gb_LinkTarget_set_include,$(1),\ - ) - - $(call gb_LinkTarget_add_libs,$(1),\ -- -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.16 \ -+ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.17 \ - ) - - $(if $(SYSTEM_BOOST), \ -@@ -3348,7 +3348,7 @@ $(call gb_LinkTarget_set_include,$(1),\ - ) - - $(call gb_LinkTarget_add_libs,$(1),\ -- -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.16 \ -+ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.17 \ - ) - - endef -diff --git a/configure.ac b/configure.ac -index b8b3793b6204..a2a831da535a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -10299,7 +10299,7 @@ AC_SUBST(SYSTEM_BOOST) - dnl =================================================================== - dnl Check for system mdds - dnl =================================================================== --libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.5 >= 1.5.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"]) -+libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-2.0 >= 2.0.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"]) - - dnl =================================================================== - dnl Check for system glm -@@ -10643,7 +10643,7 @@ AC_SUBST(ENABLE_FUZZERS) - dnl =================================================================== - dnl Orcus - dnl =================================================================== --libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.16 >= 0.16.0]) -+libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.17 >= 0.17.0]) - if test "$with_system_orcus" != "yes"; then - if test "$SYSTEM_BOOST" = "TRUE"; then - # =========================================================== -diff --git a/cui/source/dialogs/AdditionsDialog.cxx b/cui/source/dialogs/AdditionsDialog.cxx -index ac633177ef36..ec173740bc63 100644 ---- a/cui/source/dialogs/AdditionsDialog.cxx -+++ b/cui/source/dialogs/AdditionsDialog.cxx -@@ -54,7 +54,6 @@ - #include <orcus/json_document_tree.hpp> - #include <orcus/json_parser.hpp> - #include <orcus/config.hpp> --#include <orcus/pstring.hpp> - - #define PAGE_SIZE 30 - -@@ -158,62 +157,37 @@ void parseResponse(const std::string& rResponse, std::vector<AdditionInfo>& aAdd - try - { - AdditionInfo aNewAddition = { -- OStringToOUString(std::string_view(arrayElement.child("id").string_value().get()), -+ OStringToOUString(arrayElement.child("id").string_value(), RTL_TEXTENCODING_UTF8), -+ OStringToOUString(arrayElement.child("name").string_value(), RTL_TEXTENCODING_UTF8), -+ OStringToOUString(arrayElement.child("author").string_value(), - RTL_TEXTENCODING_UTF8), -- OStringToOUString(std::string_view(arrayElement.child("name").string_value().get()), -+ OStringToOUString(arrayElement.child("url").string_value(), RTL_TEXTENCODING_UTF8), -+ OStringToOUString(arrayElement.child("screenshotURL").string_value(), - RTL_TEXTENCODING_UTF8), -- OStringToOUString( -- std::string_view(arrayElement.child("author").string_value().get()), -- RTL_TEXTENCODING_UTF8), -- OStringToOUString(std::string_view(arrayElement.child("url").string_value().get()), -+ OStringToOUString(arrayElement.child("extensionIntroduction").string_value(), -+ RTL_TEXTENCODING_UTF8), -+ OStringToOUString(arrayElement.child("extensionDescription").string_value(), - RTL_TEXTENCODING_UTF8), - OStringToOUString( -- std::string_view(arrayElement.child("screenshotURL").string_value().get()), -+ arrayElement.child("releases").child(0).child("compatibility").string_value(), - RTL_TEXTENCODING_UTF8), - OStringToOUString( -- std::string_view( -- arrayElement.child("extensionIntroduction").string_value().get()), -+ arrayElement.child("releases").child(0).child("releaseName").string_value(), - RTL_TEXTENCODING_UTF8), - OStringToOUString( -- std::string_view( -- arrayElement.child("extensionDescription").string_value().get()), -+ arrayElement.child("releases").child(0).child("license").string_value(), - RTL_TEXTENCODING_UTF8), -- OStringToOUString(std::string_view(arrayElement.child("releases") -- .child(0) -- .child("compatibility") -- .string_value() -- .get()), -+ OStringToOUString(arrayElement.child("commentNumber").string_value(), - RTL_TEXTENCODING_UTF8), -- OStringToOUString(std::string_view(arrayElement.child("releases") -- .child(0) -- .child("releaseName") -- .string_value() -- .get()), -+ OStringToOUString(arrayElement.child("commentURL").string_value(), - RTL_TEXTENCODING_UTF8), -- OStringToOUString(std::string_view(arrayElement.child("releases") -- .child(0) -- .child("license") -- .string_value() -- .get()), -+ OStringToOUString(arrayElement.child("rating").string_value(), -+ RTL_TEXTENCODING_UTF8), -+ OStringToOUString(arrayElement.child("downloadNumber").string_value(), - RTL_TEXTENCODING_UTF8), - OStringToOUString( -- std::string_view(arrayElement.child("commentNumber").string_value().get()), -- RTL_TEXTENCODING_UTF8), -- OStringToOUString( -- std::string_view(arrayElement.child("commentURL").string_value().get()), -- RTL_TEXTENCODING_UTF8), -- OStringToOUString( -- std::string_view(arrayElement.child("rating").string_value().get()), -- RTL_TEXTENCODING_UTF8), -- OStringToOUString( -- std::string_view(arrayElement.child("downloadNumber").string_value().get()), -- RTL_TEXTENCODING_UTF8), -- OStringToOUString(std::string_view(arrayElement.child("releases") -- .child(0) -- .child("downloadURL") -- .string_value() -- .get()), -- RTL_TEXTENCODING_UTF8) -+ arrayElement.child("releases").child(0).child("downloadURL").string_value(), -+ RTL_TEXTENCODING_UTF8) - }; - - aAdditions.push_back(aNewAddition); -diff --git a/download.lst b/download.lst -index 561d4e5f5908..fc95d14dcc95 100644 ---- a/download.lst -+++ b/download.lst -@@ -178,8 +178,8 @@ export LXML_SHA256SUM := 940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a - export LXML_TARBALL := lxml-4.1.1.tgz - export MARIADB_CONNECTOR_C_SHA256SUM := 431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b - export MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.1.8-src.tar.gz --export MDDS_SHA256SUM := a66a2a8293a3abc6cd9baff7c236156e2666935cbfb69a15d64d38141638fecf --export MDDS_TARBALL := mdds-1.7.0.tar.bz2 -+export MDDS_SHA256SUM := 5a0fb2dd88a6420e0a69ec4c7259bcd1fe8f4a80b232c150e11f3da4c68236d7 -+export MDDS_TARBALL := mdds-2.0.0.tar.bz2 - export MDNSRESPONDER_SHA256SUM := e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0 - export MDNSRESPONDER_TARBALL := mDNSResponder-878.200.35.tar.gz - export MSPUB_SHA256SUM := ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba -@@ -204,8 +204,8 @@ export OPENLDAP_SHA256SUM := cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb89 - export OPENLDAP_TARBALL := openldap-2.4.59.tgz - export OPENSSL_SHA256SUM := 0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 - export OPENSSL_TARBALL := openssl-1.1.1l.tar.gz --export ORCUS_SHA256SUM := c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4 --export ORCUS_TARBALL := liborcus-0.16.1.tar.bz2 -+export ORCUS_SHA256SUM := 2ef9d2b5ee374c683cf631b78356b110510ab895788a68d778e225d8c4176d1b -+export ORCUS_TARBALL := liborcus-0.17.0.tar.bz2 - export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d - export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz - export PDFIUM_SHA256SUM := 26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304 -diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk -index 747691809d2e..13d61a8fecbd 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.16.0.dylib,src/liborcus/.libs/liborcus-0.16.0.dylib)) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.16.0.dylib,src/parser/.libs/liborcus-parser-0.16.0.dylib)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.17.0.dylib,src/liborcus/.libs/liborcus-0.17.0.dylib)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.17.0.dylib,src/parser/.libs/liborcus-parser-0.17.0.dylib)) - else ifeq ($(DISABLE_DYNLOADING),) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.16.so.0,src/liborcus/.libs/liborcus-0.16.so.0.0.0)) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.16.so.0,src/parser/.libs/liborcus-parser-0.16.so.0.0.0)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.17.so.0,src/liborcus/.libs/liborcus-0.17.so.0.0.0)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.17.so.0,src/parser/.libs/liborcus-parser-0.17.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 c7dd76ebfee5..76a2a6afb1f2 100644 ---- a/external/liborcus/ExternalProject_liborcus.mk -+++ b/external/liborcus/ExternalProject_liborcus.mk -@@ -123,8 +123,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.16.0.dylib \ -- $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.16.0.dylib \ -+ $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.17.0.dylib \ -+ $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.17.0.dylib \ - ) \ - ) - $(call gb_Trace_EndRange,liborcus,EXTERNAL) -diff --git a/external/liborcus/Library_orcus-parser.mk b/external/liborcus/Library_orcus-parser.mk -index 4e46591b98fe..f26657756273 100644 ---- a/external/liborcus/Library_orcus-parser.mk -+++ b/external/liborcus/Library_orcus-parser.mk -@@ -62,6 +62,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus-parser,\ - UnpackedTarball/liborcus/src/parser/string_pool \ - UnpackedTarball/liborcus/src/parser/tokens \ - UnpackedTarball/liborcus/src/parser/types \ -+ UnpackedTarball/liborcus/src/parser/utf8 \ - UnpackedTarball/liborcus/src/parser/xml_namespace \ - UnpackedTarball/liborcus/src/parser/xml_writer \ - UnpackedTarball/liborcus/src/parser/yaml_parser_base \ -diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk -index 710d126a8c17..3d2cec42e55e 100644 ---- a/external/liborcus/UnpackedTarball_liborcus.mk -+++ b/external/liborcus/UnpackedTarball_liborcus.mk -@@ -29,12 +29,11 @@ - external/liborcus/gcc9.patch.0 \ - external/liborcus/libtool.patch.0 \ - external/liborcus/fix-pch.patch.0 \ -- external/liborcus/include.patch.0 \ - external/liborcus/liborcus_newline.patch.1 \ --)) -- --$(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ -- external/liborcus/allow-utf-8-in-xml-names.patch \ -+ external/liborcus/remove-unused-parameters.patch.1 \ -+ external/liborcus/unused-variables.patch.1 \ -+ external/liborcus/boost-filesystem.patch.1 \ -+ external/liborcus/std-get-busted.patch.1 \ - external/liborcus/forcepoint-83.patch.1 \ - external/liborcus/forcepoint-84.patch.1 \ - external/liborcus/forcepoint-87.patch.1 \ -diff --git a/external/liborcus/allow-utf-8-in-xml-names.patch b/external/liborcus/allow-utf-8-in-xml-names.patch -deleted file mode 100644 -index e3430881053d..000000000000 ---- a/external/liborcus/allow-utf-8-in-xml-names.patch -+++ /dev/null -@@ -1,301 +0,0 @@ --From fa9b6845ed583f5486372c6ffbc59e02a140d303 Mon Sep 17 00:00:00 2001 --From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@centrum.cz> --Date: Thu, 29 Apr 2021 19:12:20 +0200 --Subject: [PATCH] allow utf-8 in xml names (#137) -- --https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-NameStartChar --has a list of all allowed characters. ----- -- include/orcus/sax_parser_base.hpp | 3 + -- src/orcus_test_xml.cpp | 1 + -- src/parser/sax_parser_base.cpp | 201 ++++++++++++++++++++++++++++-- -- test/xml/non-ascii/check.txt | 4 + -- test/xml/non-ascii/input.xml | 4 + -- 5 files changed, 201 insertions(+), 12 deletions(-) -- create mode 100644 test/xml/non-ascii/check.txt -- create mode 100644 test/xml/non-ascii/input.xml -- --diff --git a/include/orcus/sax_parser_base.hpp b/include/orcus/sax_parser_base.hpp --index 9939e133..8394c07b 100644 ----- a/include/orcus/sax_parser_base.hpp --+++ b/include/orcus/sax_parser_base.hpp --@@ -218,6 +218,9 @@ protected: -- void element_name(parser_element& elem, std::ptrdiff_t begin_pos); -- void attribute_name(pstring& attr_ns, pstring& attr_name); -- void characters_with_encoded_char(cell_buffer& buf); --+ --+ int is_name_char(); --+ int is_name_start_char(); -- }; -- -- }} --diff --git a/src/orcus_test_xml.cpp b/src/orcus_test_xml.cpp --index 8a864d68..35f3dea7 100644 ----- a/src/orcus_test_xml.cpp --+++ b/src/orcus_test_xml.cpp --@@ -77,6 +77,7 @@ const char* sax_parser_test_dirs[] = { -- SRCDIR"/test/xml/no-decl-1/", -- SRCDIR"/test/xml/underscore-identifier/", -- SRCDIR"/test/xml/self-closing-root/", --+ SRCDIR"/test/xml/non-ascii/", -- }; -- -- const char* sax_parser_parse_only_test_dirs[] = { --diff --git a/src/parser/sax_parser_base.cpp b/src/parser/sax_parser_base.cpp --index 97aa34ec..db51ff94 100644 ----- a/src/parser/sax_parser_base.cpp --+++ b/src/parser/sax_parser_base.cpp --@@ -328,20 +328,182 @@ bool parser_base::value(pstring& str, bool decode) -- return transient_stream(); -- } -- --+// https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-NameStartChar --+// Return length of the character in bytes, otherwise 0. --+template< bool only_start_name > --+static --+int is_name_char_helper(const char* mp_char, const char* mp_end) --+{ --+ const unsigned char first = mp_char[0]; --+ // Note that ':' technically is an allowed name character, but it is handled separately --+ // e.g. in element_name(), so here pretend it isn't. --+ if (/*first == ':' ||*/ first == '_' || (first >= 'A' && first <= 'Z') || (first >= 'a' && first <= 'z')) --+ return 1; --+ if (!only_start_name && (first == '-' || first == '.' || (first >= '0' && first <= '9'))) --+ return 1; --+ --+ if (first < 0x7f) // other ascii characters are not allowed --+ return 0; --+ if (mp_end < mp_char + 1) --+ return 0; --+ const unsigned char second = mp_char[1]; --+ --+ // 0xb7 = 0xc2 0xb7 utf-8 --+ if (!only_start_name && first == 0xc2 && second == 0xb7) --+ return 2; --+ --+ // [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] --+ // 0xc0 = 0xc3 0x80 utf-8 --+ if (first < 0xc3) --+ return 0; --+ // xd7 = 0xc3 0x97 utf-8, 0xf7 = 0xc3 0xb7 utf-8 --+ if (first == 0xc3) --+ return second >= 0x80 && second <= 0xff && second != 0x97 && second != 0xb7 ? 2 : 0; --+ // 0x2ff = 0xcb 0xbf utf-8, 0x300 = 0xcc 0x80 utf-8 --+ if (first >= 0xc4 && first <= 0xcb) --+ return 2; --+ --+ // [#x0300-#x036F] --+ // 0x0300 = 0xcc 0x80 utf-8, 0x36f = 0xcd 0xaf utf-8 --+ if (!only_start_name && first == 0xcc) --+ return 2; --+ if (!only_start_name && first == 0xcd && second <= 0xaf) --+ return 2; --+ --+ // [#x370-#x37D] | [#x37F-#x1FFF] --+ // 0x370 = 0xcd 0xb0 utf-8, 0x37e = 0xcd 0xbe --+ if (first < 0xcd) --+ return 0; --+ if (first == 0xcd) --+ return second >= 0xb0 && second != 0xbe ? 2 : 0; --+ // 0x07ff = 0xdf 0xbf utf-8 (the last 2-byte utf-8) --+ if (first <= 0xdf) --+ return 2; --+ --+ if (first < 0xe0) --+ return 0; --+ if (mp_end < mp_char + 2) --+ return 0; --+ const unsigned char third = mp_char[2]; --+ --+ // 0x0800 = 0xe0 0xa0 0x80 utf-8, 0x1fff = 0xe1 0xbf 0xbf utf-8, 0x2000 = 0xe2 0x80 0x80 --+ if (first == 0xe0 || first == 0xe1) --+ return 3; --+ --+ // [#x200C-#x200D] --+ // 0x200c = 0xe2 0x80 0x8c utf-8, 0x200d = 0xe2 0x80 0x8d utf-8 --+ if (first < 0xe2) --+ return 0; --+ if (first == 0xe2 && second == 0x80 && (third == 0x8c || third == 0x8d)) --+ return 3; --+ --+ // [#x203F-#x2040] --+ // 0x203f = 0xe2 0x80 0xbf utf-8, 0x2040 = 0xe2 0x81 0x80 utf-8 --+ if (!only_start_name && first == 0xe2 && second == 0x80 && third == 0xbf) --+ return 3; --+ if (!only_start_name && first == 0xe2 && second == 0x81 && third == 0x80) --+ return 3; --+ --+ // [#x2070-#x218F] --+ // 0x2070 = 0xe2 0x81 0xb0 utf-8, 0x218f = 0xe2 0x86 0x8f utf-8 --+ if (first == 0xe2) --+ { --+ if (second < 0x81) --+ return 0; --+ if (second >= 0x81 && second < 0x86) --+ return 3; --+ if (second == 0x86 && third <= 0x8f) --+ return 3; --+ } --+ --+ // [#x2C00-#x2FEF] --+ // 0x2c00 = 0xe2 0xb0 0x80 utf-8, 0x2fef = 0xe2 0xbf 0xaf utf-8 --+ if (first == 0xe2) --+ { --+ if (second < 0xb0) --+ return 0; --+ if (second < 0xbf) --+ return 3; --+ if (second == 0xbf && third <= 0xaf) --+ return 3; --+ } --+ --+ // [#x3001-#xD7FF] --+ // 0x3001 = 0xe3 0x80 0x81 utf-8, 0xd7ff = 0xed 0x9f 0xbf utf-8, 0xd800 = 0xed 0xa0 0x80 utf-8 --+ if (first < 0xe3) --+ return 0; --+ if (first < 0xed) --+ return 3; --+ if (first == 0xed && second <= 0x9f) --+ return 3; --+ --+ // [#xF900-#xFDCF] --+ // 0xf900 = 0xef 0xa4 0x80 utf-8, 0xfdcf = 0xef 0xb7 0x8f utf-8 --+ if (first == 0xef) --+ { --+ if (second < 0xa4) --+ return 0; --+ if (second < 0xb7) --+ return 3; --+ if (second == 0xb7 && third <= 0x8f) --+ return 3; --+ } --+ --+ // [#xFDF0-#xFFFD] --+ // 0xfdf0 = 0xef 0xb7 0xb0 utf-8, 0xfffd = 0xef 0xbf 0xbd utf-8 --+ if (first == 0xef) --+ { --+ assert(second >= 0xb7); --+ if (second == 0xb7 && third < 0xb0) --+ return 0; --+ if (second < 0xbe) --+ return 3; --+ if (second == 0xbf && third <= 0xbd) --+ return 3; --+ } --+ --+ if (first < 0xf0) --+ return 0; --+ if (mp_end < mp_char + 3) --+ return 0; --+ // const unsigned char fourth = mp_char[3]; --+ --+ // [#x10000-#xEFFFF] --+ // 0x10000 = 0xf0 0x90 0x80 0x80 utf-8, 0xeffff = 0xf3 0xaf 0xbf 0xbf utf-8, --+ // 0xf0000 = 0xf3 0xb0 0x80 0x80 utf-8 --+ if (first >= 0xf0 && first < 0xf2) --+ return 4; --+ if (first == 0xf3 && second < 0xb0) --+ return 4; --+ --+ return 0; --+} --+ --+int parser_base::is_name_char() --+{ --+ return is_name_char_helper<false>(mp_char, mp_end); --+} --+ --+int parser_base::is_name_start_char() --+{ --+ return is_name_char_helper<true>(mp_char, mp_end); --+} --+ -- void parser_base::name(pstring& str) -- { -- const char* p0 = mp_char; --- char c = cur_char(); --- if (!is_alpha(c) && c != '_') --+ int skip = is_name_start_char(); --+ if (skip == 0) -- { -- ::std::ostringstream os; --- os << "name must begin with an alphabet, but got this instead '" << c << "'"; --+ os << "name must begin with an alphabet, but got this instead '" << cur_char() << "'"; -- throw malformed_xml_error(os.str(), offset()); -- } --+ next(skip); -- -- #if defined(__ORCUS_CPU_FEATURES) && defined(__SSE4_2__) -- --- const __m128i match = _mm_loadu_si128((const __m128i*)"azAZ09--__"); --+ const __m128i match = _mm_loadu_si128((const __m128i*)"azAZ09--__.."); -- const int mode = _SIDD_LEAST_SIGNIFICANT | _SIDD_CMP_RANGES | _SIDD_UBYTE_OPS | _SIDD_NEGATIVE_POLARITY; -- -- size_t n_total = available_size(); --@@ -351,20 +513,35 @@ void parser_base::name(pstring& str) -- __m128i char_block = _mm_loadu_si128((const __m128i*)mp_char); -- -- int n = std::min<size_t>(16u, n_total); --- int r = _mm_cmpestri(match, 10, char_block, n, mode); --+ int r = _mm_cmpestri(match, 12, char_block, n, mode); -- mp_char += r; // Move the current char position. --+ n_total -= r; -- --- if (r < 16) --- // No need to move to the next segment. Stop here. --- break; --+ if (r < 16 && n_total) --+ { --+ // There is a character that does not match the SSE-based ASCII-only check. --+ // It may either by an ascii character that is not allowed, in which case stop, --+ // or it may possibly be an allowed utf-8 character, in which case move over it --+ // using the slow function. --+ skip = is_name_char(); --+ if(skip == 0) --+ break; --+ next(skip); --+ n_total -= skip; --+ } -- --- // Skip 16 chars to the next segment. --- n_total -= 16; -- } --+ cur_char_checked(); // check end of xml stream -- -- #else --- while (is_alpha(c) || is_numeric(c) || is_name_char(c)) --- c = next_char_checked(); --+ for(;;) --+ { --+ cur_char_checked(); // check end of xml stream --+ skip = is_name_char(); --+ if(skip == 0) --+ break; --+ next(skip); --+ } -- #endif -- -- str = pstring(p0, mp_char-p0); --diff --git a/test/xml/non-ascii/check.txt b/test/xml/non-ascii/check.txt --new file mode 100644 --index 00000000..77b7c003 ----- /dev/null --+++ b/test/xml/non-ascii/check.txt --@@ -0,0 +1,4 @@ --+/Myšička --+/Myšička@jméno="Žužla" --+/Myšička/Nožičky --+/Myšička/Nožičky"4" --diff --git a/test/xml/non-ascii/input.xml b/test/xml/non-ascii/input.xml --new file mode 100644 --index 00000000..c516744b ----- /dev/null --+++ b/test/xml/non-ascii/input.xml --@@ -0,0 +1,4 @@ --+<?xml version="1.0" encoding="UTF-8"?> --+<Myšička jméno="Žužla"> --+ <Nožičky>4</Nožičky> --+</Myšička> ---- --2.26.2 -- -diff --git a/external/liborcus/boost-filesystem.patch.1 b/external/liborcus/boost-filesystem.patch.1 -new file mode 100644 -index 000000000000..14128b4e1c67 ---- /dev/null -+++ b/external/liborcus/boost-filesystem.patch.1 -@@ -0,0 +1,41 @@ -+From e44737bad582fa2a05a23820e49d7930db710412 Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <kohei.yoshida@gmail.com> -+Date: Tue, 2 Nov 2021 21:33:19 -0400 -+Subject: [PATCH] Try using boost::filesystem instead of std::filesystem. -+ -+std::filesystem still seems unreliable. -+--- -+ src/parser/stream.cpp | 6 +++--- -+ 1 file changed, 3 insertions(+), 3 deletions(-) -+ -+diff --git a/src/parser/stream.cpp b/src/parser/stream.cpp -+index 09855300..00395f59 100644 -+--- a/src/parser/stream.cpp -++++ b/src/parser/stream.cpp -+@@ -17,12 +17,12 @@ -+ #include <locale> -+ #include <codecvt> -+ #include <iostream> -+-#include <filesystem> -+ -++#include <boost/filesystem.hpp> -+ #include <boost/interprocess/file_mapping.hpp> -+ #include <boost/interprocess/mapped_region.hpp> -+ -+-namespace fs = std::filesystem; -++namespace fs = boost::filesystem; -+ namespace bip = boost::interprocess; -+ -+ namespace orcus { -+@@ -162,7 +162,7 @@ struct file_content::impl -+ impl() : content_size(0), content(nullptr) {} -+ -+ impl(std::string_view filepath) : -+- content_size(fs::file_size(filepath)), -++ content_size(fs::file_size(std::string{filepath}.c_str())), -+ mapped_file(std::string{filepath}.c_str(), bip::read_only), -+ mapped_region(mapped_file, bip::read_only, 0, content_size), -+ content(nullptr) -+-- -+2.25.1 -+ -diff --git a/external/liborcus/inc/pch/precompiled_orcus-parser.hxx b/external/liborcus/inc/pch/precompiled_orcus-parser.hxx -index 1427148445d1..a8047d5c9e0a 100644 ---- a/external/liborcus/inc/pch/precompiled_orcus-parser.hxx -+++ b/external/liborcus/inc/pch/precompiled_orcus-parser.hxx -@@ -69,7 +69,6 @@ - #include <orcus/json_parser_thread.hpp> - #include <orcus/parser_base.hpp> - #include <orcus/parser_global.hpp> --#include <orcus/pstring.hpp> - #include <orcus/sax_parser_base.hpp> - #include <orcus/sax_token_parser.hpp> - #include <orcus/sax_token_parser_thread.hpp> -diff --git a/external/liborcus/inc/pch/precompiled_orcus.hxx b/external/liborcus/inc/pch/precompiled_orcus.hxx -index 9edb13aec79b..9543b44eb7c5 100644 ---- a/external/liborcus/inc/pch/precompiled_orcus.hxx -+++ b/external/liborcus/inc/pch/precompiled_orcus.hxx -@@ -81,7 +81,6 @@ - #include <orcus/orcus_xml.hpp> - #include <orcus/parser_base.hpp> - #include <orcus/parser_global.hpp> --#include <orcus/pstring.hpp> - #include <orcus/sax_ns_parser.hpp> - #include <orcus/sax_parser.hpp> - #include <orcus/sax_parser_base.hpp> -diff --git a/external/liborcus/include.patch.0 b/external/liborcus/include.patch.0 -deleted file mode 100644 -index a3275b1b13fa..000000000000 ---- a/external/liborcus/include.patch.0 -+++ /dev/null -@@ -1,30 +0,0 @@ ----- src/liborcus/orcus_xlsx.cpp --+++ src/liborcus/orcus_xlsx.cpp --@@ -32,6 +32,7 @@ -- -- #include <cstdlib> -- #include <iostream> --+#include <limits> -- #include <string> -- #include <cstring> -- #include <sstream> ----- src/liborcus/xls_xml_context.cpp --+++ src/liborcus/xls_xml_context.cpp --@@ -16,6 +16,7 @@ -- #include <mdds/sorted_string_map.hpp> -- -- #include <iostream> --+#include <limits> -- -- using namespace std; -- namespace ss = orcus::spreadsheet; ----- src/liborcus/xlsx_revision_context.cpp --+++ src/liborcus/xlsx_revision_context.cpp --@@ -16,6 +16,7 @@ -- #include "orcus/global.hpp" -- -- #include <iostream> --+#include <limits> -- -- using namespace std; -- -diff --git a/external/liborcus/remove-unused-parameters.patch.1 b/external/liborcus/remove-unused-parameters.patch.1 -new file mode 100644 -index 000000000000..251ed804acaf ---- /dev/null -+++ b/external/liborcus/remove-unused-parameters.patch.1 -@@ -0,0 +1,1209 @@ -+From 5bb64db5ecfd1dc3be3304092f4bdebff54deae5 Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <kohei.yoshida@gmail.com> -+Date: Tue, 2 Nov 2021 19:33:29 -0400 -+Subject: [PATCH] Remove unused parameter warnings. -+ -+--- -+ doc_example/json_parser_1.cpp | 4 +- -+ ...preadsheet_doc_2_sheets_no_string_pool.cpp | 22 ++++----- -+ .../spreadsheet_doc_2_sheets_with_formula.cpp | 47 +++++++++---------- -+ ...eadsheet_doc_2_sheets_with_string_pool.cpp | 40 +++++++--------- -+ doc_example/xml_mapping_1.cpp | 2 +- -+ src/liborcus/css_document_tree.cpp | 3 ++ -+ src/liborcus/dom_tree.cpp | 2 +- -+ src/liborcus/gnumeric_cell_context_test.cpp | 14 +++--- -+ src/liborcus/json_document_tree.cpp | 6 +-- -+ src/liborcus/json_structure_mapper.cpp | 2 +- -+ src/liborcus/json_structure_tree.cpp | 4 +- -+ src/liborcus/mock_spreadsheet.cpp | 14 +++--- -+ src/liborcus/ods_dde_links_context.cpp | 10 ++-- -+ src/liborcus/opc_context.cpp | 16 +++---- -+ src/liborcus/orcus_json.cpp | 4 +- -+ src/liborcus/orcus_xml_map_def.cpp | 4 +- -+ src/liborcus/spreadsheet_interface.cpp | 4 +- -+ src/liborcus/xls_xml_context.cpp | 12 ++--- -+ src/liborcus/xls_xml_detection_handler.cpp | 2 +- -+ src/liborcus/xlsx_drawing_context.cpp | 2 +- -+ src/liborcus/xlsx_sheet_context.cpp | 2 +- -+ src/liborcus/xlsx_sheet_context_test.cpp | 8 ++-- -+ src/liborcus/xlsx_table_context.cpp | 2 +- -+ src/liborcus/xml_structure_tree.cpp | 6 +-- -+ src/liborcus/xpath_parser_test.cpp | 2 +- -+ src/orcus_env_dump.cpp | 2 +- -+ src/orcus_test_json_mapped.cpp | 2 +- -+ src/orcus_test_xml.cpp | 2 +- -+ src/orcus_test_xml_mapped.cpp | 2 +- -+ src/parser/sax_token_parser_test.cpp | 2 +- -+ src/parser/sax_token_parser_thread.cpp | 2 +- -+ src/parser/utf8.cpp | 2 +- -+ src/parser/utf8_test.cpp | 2 +- -+ src/parser/xml_writer_test.cpp | 2 +- -+ src/python/cell.cpp | 2 +- -+ src/python/document.cpp | 4 +- -+ src/python/formula_tokens.cpp | 2 +- -+ src/python/global.cpp | 2 +- -+ src/python/json.cpp | 4 +- -+ src/python/named_expression.cpp | 2 +- -+ src/python/named_expressions.cpp | 4 +- -+ src/python/sheet.cpp | 6 +-- -+ src/python/sheet_rows.cpp | 2 +- -+ src/spreadsheet/factory_sheet.cpp | 18 +++---- -+ src/spreadsheet/sheet_impl.cpp | 2 +- -+ 45 files changed, 143 insertions(+), 157 deletions(-) -+ -+diff --git a/doc_example/json_parser_1.cpp b/doc_example/json_parser_1.cpp -+index 6fc6de12..832e5176 100644 -+--- a/doc_example/json_parser_1.cpp -++++ b/doc_example/json_parser_1.cpp -+@@ -8,12 +8,12 @@ using namespace std; -+ class json_parser_handler : public orcus::json_handler -+ { -+ public: -+- void object_key(const char* p, size_t len, bool transient) -++ void object_key(const char* p, size_t len, bool /*transient*/) -+ { -+ cout << "object key: " << std::string_view(p, len) << endl; -+ } -+ -+- void string(const char* p, size_t len, bool transient) -++ void string(const char* p, size_t len, bool /*transient*/) -+ { -+ cout << "string: " << std::string_view(p, len) << endl; -+ } -+diff --git a/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp b/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp -+index 63ffacc3..0aa86caf 100644 -+--- a/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp -++++ b/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp -+@@ -64,22 +64,17 @@ public: -+ } -+ -+ // We don't implement these methods for now. -+- virtual void set_auto(ss::row_t row, ss::col_t col, std::string_view s) override {} -++ virtual void set_auto(ss::row_t, ss::col_t, std::string_view) override {} -+ -+- virtual void set_bool(ss::row_t row, ss::col_t col, bool value) override {} -++ virtual void set_bool(ss::row_t, ss::col_t, bool) override {} -+ -+- virtual void set_date_time( -+- ss::row_t row, ss::col_t col, -+- int year, int month, int day, int hour, int minute, double second) override {} -++ virtual void set_date_time(ss::row_t, ss::col_t, int, int, int, int, int, double) override {} -+ -+- virtual void set_format(ss::row_t row, ss::col_t col, std::size_t xf_index) override {} -++ virtual void set_format(ss::row_t, ss::col_t, std::size_t) override {} -+ -+- virtual void set_format( -+- ss::row_t row_start, ss::col_t col_start, ss::row_t row_end, ss::col_t col_end, -+- std::size_t xf_index) override {} -++ virtual void set_format(ss::row_t, ss::col_t, ss::row_t, ss::col_t, std::size_t) override {} -+ -+- virtual void fill_down_cells( -+- ss::row_t src_row, ss::col_t src_col, ss::row_t range_size) override {} -++ virtual void fill_down_cells(ss::row_t, ss::col_t, ss::row_t) override {} -+ }; -+ //!code-end: my_sheet -+ -+@@ -89,14 +84,13 @@ class my_import_factory : public ss::iface::import_factory -+ std::vector<std::unique_ptr<my_sheet>> m_sheets; -+ -+ public: -+- virtual ss::iface::import_sheet* append_sheet( -+- ss::sheet_t sheet_index, std::string_view name) override -++ virtual ss::iface::import_sheet* append_sheet(ss::sheet_t, std::string_view) override -+ { -+ m_sheets.push_back(std::make_unique<my_sheet>(m_sheets.size())); -+ return m_sheets.back().get(); -+ } -+ -+- virtual ss::iface::import_sheet* get_sheet(std::string_view name) override -++ virtual ss::iface::import_sheet* get_sheet(std::string_view) override -+ { -+ // TODO : implement this. -+ return nullptr; -+diff --git a/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp b/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp -+index 1c3f3d5b..11e1932e 100644 -+--- a/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp -++++ b/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp -+@@ -87,15 +87,15 @@ public: -+ m_formula.grammar = grammar; -+ } -+ -+- virtual void set_shared_formula_index(std::size_t index) override {} -++ virtual void set_shared_formula_index(std::size_t) override {} -+ -+- virtual void set_result_string(std::string_view value) override {} -++ virtual void set_result_string(std::string_view) override {} -+ -+- virtual void set_result_value(double value) override {} -++ virtual void set_result_value(double) override {} -+ -+ virtual void set_result_empty() override {} -+ -+- virtual void set_result_bool(bool value) override {} -++ virtual void set_result_bool(bool) override {} -+ -+ virtual void commit() override -+ { -+@@ -154,22 +154,17 @@ public: -+ } -+ -+ // We don't implement these methods for now. -+- virtual void set_auto(ss::row_t row, ss::col_t col, std::string_view s) override {} -++ virtual void set_auto(ss::row_t, ss::col_t, std::string_view) override {} -+ -+- virtual void set_bool(ss::row_t row, ss::col_t col, bool value) override {} -++ virtual void set_bool(ss::row_t, ss::col_t, bool) override {} -+ -+- virtual void set_date_time( -+- ss::row_t row, ss::col_t col, -+- int year, int month, int day, int hour, int minute, double second) override {} -++ virtual void set_date_time(ss::row_t, ss::col_t, int, int, int, int, int, double) override {} -+ -+- virtual void set_format(ss::row_t row, ss::col_t col, std::size_t xf_index) override {} -++ virtual void set_format(ss::row_t, ss::col_t, std::size_t) override {} -+ -+- virtual void set_format( -+- ss::row_t row_start, ss::col_t col_start, ss::row_t row_end, ss::col_t col_end, -+- std::size_t xf_index) override {} -++ virtual void set_format(ss::row_t, ss::col_t, ss::row_t, ss::col_t, std::size_t) override {} -+ -+- virtual void fill_down_cells( -+- ss::row_t src_row, ss::col_t src_col, ss::row_t range_size) override {} -++ virtual void fill_down_cells(ss::row_t, ss::col_t, ss::row_t) override {} -+ -+ virtual ss::iface::import_formula* get_formula() override -+ { -+@@ -208,21 +203,21 @@ public: -+ } -+ -+ // The following methods are for formatted text segments, which we ignore for now. -+- virtual void set_segment_bold(bool b) override {} -++ virtual void set_segment_bold(bool) override {} -+ -+- virtual void set_segment_font(std::size_t font_index) override {} -++ virtual void set_segment_font(std::size_t) override {} -+ -+ virtual void set_segment_font_color( -+- ss::color_elem_t alpha, -+- ss::color_elem_t red, -+- ss::color_elem_t green, -+- ss::color_elem_t blue) override {} -++ ss::color_elem_t, -++ ss::color_elem_t, -++ ss::color_elem_t, -++ ss::color_elem_t) override {} -+ -+- virtual void set_segment_font_name(std::string_view s) override {} -++ virtual void set_segment_font_name(std::string_view) override {} -+ -+- virtual void set_segment_font_size(double point) override {} -++ virtual void set_segment_font_size(double) override {} -+ -+- virtual void set_segment_italic(bool b) override {} -++ virtual void set_segment_italic(bool) override {} -+ -+ virtual void append_segment(std::string_view s) override -+ { -+@@ -256,14 +251,14 @@ public: -+ return &m_shared_strings; -+ } -+ -+- virtual ss::iface::import_sheet* append_sheet(ss::sheet_t sheet_index, std::string_view name) override -++ virtual ss::iface::import_sheet* append_sheet(ss::sheet_t, std::string_view) override -+ { -+ // Pass the string pool to each sheet instance. -+ m_sheets.push_back(std::make_unique<my_sheet>(m_sheets.size(), m_string_pool)); -+ return m_sheets.back().get(); -+ } -+ -+- virtual ss::iface::import_sheet* get_sheet(std::string_view name) override -++ virtual ss::iface::import_sheet* get_sheet(std::string_view) override -+ { -+ // TODO : implement this. -+ return nullptr; -+diff --git a/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp b/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp -+index ff69c835..0153dd08 100644 -+--- a/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp -++++ b/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp -+@@ -70,22 +70,17 @@ public: -+ } -+ -+ // We don't implement these methods for now. -+- virtual void set_auto(ss::row_t row, ss::col_t col, std::string_view s) override {} -++ virtual void set_auto(ss::row_t, ss::col_t, std::string_view) override {} -+ -+- virtual void set_bool(ss::row_t row, ss::col_t col, bool value) override {} -++ virtual void set_bool(ss::row_t, ss::col_t, bool) override {} -+ -+- virtual void set_date_time( -+- ss::row_t row, ss::col_t col, -+- int year, int month, int day, int hour, int minute, double second) override {} -++ virtual void set_date_time(ss::row_t, ss::col_t, int, int, int, int, int, double) override {} -+ -+- virtual void set_format(ss::row_t row, ss::col_t col, std::size_t xf_index) override {} -++ virtual void set_format(ss::row_t, ss::col_t, std::size_t) override {} -+ -+- virtual void set_format( -+- ss::row_t row_start, ss::col_t col_start, ss::row_t row_end, ss::col_t col_end, -+- std::size_t xf_index) override {} -++ virtual void set_format(ss::row_t, ss::col_t, ss::row_t, ss::col_t, std::size_t) override {} -+ -+- virtual void fill_down_cells( -+- ss::row_t src_row, ss::col_t src_col, ss::row_t range_size) override {} -++ virtual void fill_down_cells(ss::row_t, ss::col_t, ss::row_t) override {} -+ }; -+ -+ //!code-start: my_shared_strings -+@@ -119,21 +114,21 @@ public: -+ } -+ -+ // The following methods are for formatted text segments, which we ignore for now. -+- virtual void set_segment_bold(bool b) override {} -++ virtual void set_segment_bold(bool) override {} -+ -+- virtual void set_segment_font(std::size_t font_index) override {} -++ virtual void set_segment_font(std::size_t) override {} -+ -+ virtual void set_segment_font_color( -+- ss::color_elem_t alpha, -+- ss::color_elem_t red, -+- ss::color_elem_t green, -+- ss::color_elem_t blue) override {} -++ ss::color_elem_t, -++ ss::color_elem_t, -++ ss::color_elem_t, -++ ss::color_elem_t) override {} -+ -+- virtual void set_segment_font_name(std::string_view s) override {} -++ virtual void set_segment_font_name(std::string_view) override {} -+ -+- virtual void set_segment_font_size(double point) override {} -++ virtual void set_segment_font_size(double) override {} -+ -+- virtual void set_segment_italic(bool b) override {} -++ virtual void set_segment_italic(bool) override {} -+ -+ virtual void append_segment(std::string_view s) override -+ { -+@@ -169,15 +164,14 @@ public: -+ return &m_shared_strings; -+ } -+ -+- virtual ss::iface::import_sheet* append_sheet( -+- ss::sheet_t sheet_index, std::string_view name) override -++ virtual ss::iface::import_sheet* append_sheet(ss::sheet_t, std::string_view) override -+ { -+ // Pass the string pool to each sheet instance. -+ m_sheets.push_back(std::make_unique<my_sheet>(m_sheets.size(), m_string_pool)); -+ return m_sheets.back().get(); -+ } -+ -+- virtual ss::iface::import_sheet* get_sheet(std::string_view name) override -++ virtual ss::iface::import_sheet* get_sheet(std::string_view) override -+ { -+ // TODO : implement this. -+ return nullptr; -+diff --git a/doc_example/xml_mapping_1.cpp b/doc_example/xml_mapping_1.cpp -+index f23d620c..33d6ff22 100644 -+--- a/doc_example/xml_mapping_1.cpp -++++ b/doc_example/xml_mapping_1.cpp -+@@ -118,7 +118,7 @@ void run_xmlns_different_ns_same_alias() -+ cout << (alias_1 == alias_2 ? "same" : "different") << endl; -+ } -+ -+-int main(int argc, char** argv) -++int main() -+ { -+ run_xmlns_example(); -+ run_xmlns_stacked(); -+diff --git a/src/liborcus/css_document_tree.cpp b/src/liborcus/css_document_tree.cpp -+index 5f84c013..46bf7e91 100644 -+--- a/src/liborcus/css_document_tree.cpp -++++ b/src/liborcus/css_document_tree.cpp -+@@ -54,6 +54,9 @@ public: -+ { -+ #if ORCUS_DEBUG_CSS_DOCTREE -+ cout << "@" << string(p, n).c_str(); -++#else -++ (void)p; -++ (void)n; -+ #endif -+ } -+ -+diff --git a/src/liborcus/dom_tree.cpp b/src/liborcus/dom_tree.cpp -+index 51db6ef8..64ecf8ef 100644 -+--- a/src/liborcus/dom_tree.cpp -++++ b/src/liborcus/dom_tree.cpp -+@@ -527,7 +527,7 @@ void document_tree::impl::end_element(const sax_ns_parser_element& elem) -+ m_elem_stack.pop_back(); -+ } -+ -+-void document_tree::impl::characters(const pstring& val, bool transient) -++void document_tree::impl::characters(const pstring& val, bool /*transient*/) -+ { -+ if (m_elem_stack.empty()) -+ // No root element has been encountered. Ignore this. -+diff --git a/src/liborcus/gnumeric_cell_context_test.cpp b/src/liborcus/gnumeric_cell_context_test.cpp -+index fc543096..aeec16bd 100644 -+--- a/src/liborcus/gnumeric_cell_context_test.cpp -++++ b/src/liborcus/gnumeric_cell_context_test.cpp -+@@ -41,19 +41,19 @@ public: -+ assert(formula == "=arrayFormula"); -+ } -+ -+- virtual void set_result_bool(row_t row, col_t col, bool value) override -++ virtual void set_result_bool(row_t, col_t, bool) override -+ { -+ } -+ -+- virtual void set_result_empty(row_t row, col_t col) override -++ virtual void set_result_empty(row_t, col_t) override -+ { -+ } -+ -+- virtual void set_result_string(row_t row, col_t col, std::string_view) override -++ virtual void set_result_string(row_t, col_t, std::string_view) override -+ { -+ } -+ -+- virtual void set_result_value(row_t row, col_t col, double value) override -++ virtual void set_result_value(row_t, col_t, double) override -+ { -+ } -+ -+@@ -77,11 +77,11 @@ public: -+ assert(formula == "=formula"); -+ } -+ -+- virtual void set_shared_formula_index(size_t index) override -++ virtual void set_shared_formula_index(size_t) override -+ { -+ } -+ -+- virtual void set_result_bool(bool value) override -++ virtual void set_result_bool(bool) override -+ { -+ } -+ -+@@ -93,7 +93,7 @@ public: -+ { -+ } -+ -+- virtual void set_result_value(double value) override -++ virtual void set_result_value(double) override -+ { -+ } -+ -+diff --git a/src/liborcus/json_document_tree.cpp b/src/liborcus/json_document_tree.cpp -+index 4eedea47..c163a364 100644 -+--- a/src/liborcus/json_document_tree.cpp -++++ b/src/liborcus/json_document_tree.cpp -+@@ -1217,7 +1217,7 @@ array::array(std::initializer_list<detail::init::node> vs) -+ array::~array() {} -+ -+ object::object() {} -+-object::object(object&& other) {} -++object::object(object&& /*other*/) {} -+ object::~object() {} -+ -+ namespace { -+@@ -1388,7 +1388,7 @@ struct node::impl -+ m_value_array(std::move(array.m_vs)) -+ {} -+ -+- impl(json::object obj) : -++ impl(json::object /*obj*/) : -+ m_type(detail::node_t::object) {} -+ }; -+ -+@@ -1634,7 +1634,7 @@ document_tree::document_tree(array vs) : mp_impl(std::make_unique<impl>()) -+ } -+ } -+ -+-document_tree::document_tree(object obj) : mp_impl(std::make_unique<impl>()) -++document_tree::document_tree(object /*obj*/) : mp_impl(std::make_unique<impl>()) -+ { -+ mp_impl->m_root = mp_impl->m_res.obj_pool.construct(detail::node_t::object); -+ mp_impl->m_root->value.object = mp_impl->m_res.obj_pool_jvo.construct(); -+diff --git a/src/liborcus/json_structure_mapper.cpp b/src/liborcus/json_structure_mapper.cpp -+index 111d1674..09a9e97e 100644 -+--- a/src/liborcus/json_structure_mapper.cpp -++++ b/src/liborcus/json_structure_mapper.cpp -+@@ -40,7 +40,7 @@ void structure_mapper::push_range() -+ m_current_range.row_groups.clear(); -+ } -+ -+-void structure_mapper::traverse(size_t pos) -++void structure_mapper::traverse(size_t /*pos*/) -+ { -+ json::structure_tree::node_properties node = m_walker.get_node(); -+ -+diff --git a/src/liborcus/json_structure_tree.cpp b/src/liborcus/json_structure_tree.cpp -+index 5c9d600c..3ae8ecc0 100644 -+--- a/src/liborcus/json_structure_tree.cpp -++++ b/src/liborcus/json_structure_tree.cpp -+@@ -235,12 +235,12 @@ struct structure_tree::impl -+ push_value(); -+ } -+ -+- void string(const char* p, size_t len, bool transient) -++ void string(const char* /*p*/, size_t /*len*/, bool /*transient*/) -+ { -+ push_value(); -+ } -+ -+- void number(double val) -++ void number(double /*val*/) -+ { -+ push_value(); -+ } -+diff --git a/src/liborcus/mock_spreadsheet.cpp b/src/liborcus/mock_spreadsheet.cpp -+index 3bde38ff..4042bdc9 100644 -+--- a/src/liborcus/mock_spreadsheet.cpp -++++ b/src/liborcus/mock_spreadsheet.cpp -+@@ -211,22 +211,22 @@ import_formula::~import_formula() -+ { -+ } -+ -+-void import_formula::set_position(row_t row, col_t col) -++void import_formula::set_position(row_t, col_t) -+ { -+ assert(false); -+ } -+ -+-void import_formula::set_formula(formula_grammar_t grammar, std::string_view) -++void import_formula::set_formula(formula_grammar_t, std::string_view) -+ { -+ assert(false); -+ } -+ -+-void import_formula::set_shared_formula_index(size_t index) -++void import_formula::set_shared_formula_index(size_t) -+ { -+ assert(false); -+ } -+ -+-void import_formula::set_result_value(double value) -++void import_formula::set_result_value(double) -+ { -+ assert(false); -+ } -+@@ -236,7 +236,7 @@ void import_formula::set_result_string(std::string_view) -+ assert(false); -+ } -+ -+-void import_formula::set_result_bool(bool value) -++void import_formula::set_result_bool(bool) -+ { -+ assert(false); -+ } -+@@ -257,7 +257,7 @@ import_sheet::~import_sheet() -+ { -+ } -+ -+-void import_sheet::set_auto(row_t, col_t, std::string_view s) -++void import_sheet::set_auto(row_t, col_t, std::string_view) -+ { -+ assert(false); -+ } -+@@ -292,7 +292,7 @@ void import_sheet::set_format(row_t, col_t, row_t, col_t, size_t) -+ assert(false); -+ } -+ -+-void import_sheet::fill_down_cells(row_t src_row, col_t src_col, row_t range_size) -++void import_sheet::fill_down_cells(row_t, col_t, row_t) -+ { -+ assert(false); -+ } -+diff --git a/src/liborcus/ods_dde_links_context.cpp b/src/liborcus/ods_dde_links_context.cpp -+index db7ab672..783b106f 100644 -+--- a/src/liborcus/ods_dde_links_context.cpp -++++ b/src/liborcus/ods_dde_links_context.cpp -+@@ -14,21 +14,21 @@ ods_dde_links_context::ods_dde_links_context(session_context& session_cxt, const -+ -+ ods_dde_links_context::~ods_dde_links_context() {} -+ -+-bool ods_dde_links_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const -++bool ods_dde_links_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -+ { -+ return true; -+ } -+ -+-xml_context_base* ods_dde_links_context::create_child_context(xmlns_id_t ns, xml_token_t name) -++xml_context_base* ods_dde_links_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -+ { -+ return nullptr; -+ } -+ -+-void ods_dde_links_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base *child) -++void ods_dde_links_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -+ { -+ } -+ -+-void ods_dde_links_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t> &attrs) -++void ods_dde_links_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& /*attrs*/) -+ { -+ xml_token_pair_t parent = push_stack(ns, name); -+ (void)parent; -+@@ -41,7 +41,7 @@ bool ods_dde_links_context::end_element(xmlns_id_t ns, xml_token_t name) -+ return pop_stack(ns, name); -+ } -+ -+-void ods_dde_links_context::characters(const pstring &str, bool transient) -++void ods_dde_links_context::characters(const pstring& /*str*/, bool /*transient*/) -+ { -+ } -+ -+diff --git a/src/liborcus/opc_context.cpp b/src/liborcus/opc_context.cpp -+index ef1a591f..d3cddabd 100644 -+--- a/src/liborcus/opc_context.cpp -++++ b/src/liborcus/opc_context.cpp -+@@ -90,17 +90,17 @@ opc_content_types_context::~opc_content_types_context() -+ { -+ } -+ -+-bool opc_content_types_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const -++bool opc_content_types_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -+ { -+ return true; -+ } -+ -+-xml_context_base* opc_content_types_context::create_child_context(xmlns_id_t ns, xml_token_t name) -++xml_context_base* opc_content_types_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -+ { -+ return nullptr; -+ } -+ -+-void opc_content_types_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base *child) -++void opc_content_types_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -+ { -+ } -+ -+@@ -153,7 +153,7 @@ bool opc_content_types_context::end_element(xmlns_id_t ns, xml_token_t name) -+ return pop_stack(ns, name); -+ } -+ -+-void opc_content_types_context::characters(const pstring &str, bool transient) -++void opc_content_types_context::characters(const pstring& /*str*/, bool /*transient*/) -+ { -+ } -+ -+@@ -256,17 +256,17 @@ opc_relations_context::~opc_relations_context() -+ { -+ } -+ -+-bool opc_relations_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const -++bool opc_relations_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -+ { -+ return true; -+ } -+ -+-xml_context_base* opc_relations_context::create_child_context(xmlns_id_t ns, xml_token_t name) -++xml_context_base* opc_relations_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -+ { -+ return nullptr; -+ } -+ -+-void opc_relations_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base *child) -++void opc_relations_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -+ { -+ } -+ -+@@ -302,7 +302,7 @@ bool opc_relations_context::end_element(xmlns_id_t ns, xml_token_t name) -+ return pop_stack(ns, name); -+ } -+ -+-void opc_relations_context::characters(const pstring &str, bool transient) -++void opc_relations_context::characters(const pstring& /*str*/, bool /*transient*/) -+ { -+ } -+ -+diff --git a/src/liborcus/orcus_json.cpp b/src/liborcus/orcus_json.cpp -+index 2b5967d5..69672190 100644 -+--- a/src/liborcus/orcus_json.cpp -++++ b/src/liborcus/orcus_json.cpp -+@@ -137,7 +137,7 @@ public: -+ push_node(json_map_tree::input_node_type::object); -+ } -+ -+- void object_key(const char* p, size_t len, bool transient) -++ void object_key(const char* p, size_t len, bool /*transient*/) -+ { -+ m_walker.set_object_key(p, len); -+ } -+@@ -168,7 +168,7 @@ public: -+ pop_node(json_map_tree::input_node_type::value); -+ } -+ -+- void string(const char* p, size_t len, bool transient) -++ void string(const char* p, size_t len, bool /*transient*/) -+ { -+ push_node(json_map_tree::input_node_type::value); -+ commit_value(json_value(p, len)); -+diff --git a/src/liborcus/orcus_xml_map_def.cpp b/src/liborcus/orcus_xml_map_def.cpp -+index 4c70e060..889dbcb0 100644 -+--- a/src/liborcus/orcus_xml_map_def.cpp -++++ b/src/liborcus/orcus_xml_map_def.cpp -+@@ -43,9 +43,9 @@ public: -+ xml_map_sax_handler(orcus_xml& app) : m_app(app) {} -+ -+ void doctype(const sax::doctype_declaration&) {} -+- void start_declaration(const pstring& name) {} -++ void start_declaration(const pstring& /*name*/) {} -+ -+- void end_declaration(const pstring& name) -++ void end_declaration(const pstring& /*name*/) -+ { -+ m_attrs.clear(); -+ } -+diff --git a/src/liborcus/spreadsheet_interface.cpp b/src/liborcus/spreadsheet_interface.cpp -+index 87103233..985caf45 100644 -+--- a/src/liborcus/spreadsheet_interface.cpp -++++ b/src/liborcus/spreadsheet_interface.cpp -+@@ -124,13 +124,13 @@ import_reference_resolver* import_factory::get_reference_resolver(formula_ref_co -+ } -+ -+ import_pivot_cache_definition* import_factory::create_pivot_cache_definition( -+- orcus::spreadsheet::pivot_cache_id_t cache_id) -++ orcus::spreadsheet::pivot_cache_id_t /*cache_id*/) -+ { -+ return nullptr; -+ } -+ -+ import_pivot_cache_records* import_factory::create_pivot_cache_records( -+- orcus::spreadsheet::pivot_cache_id_t cache_id) -++ orcus::spreadsheet::pivot_cache_id_t /*cache_id*/) -+ { -+ return nullptr; -+ } -+diff --git a/src/liborcus/xls_xml_context.cpp b/src/liborcus/xls_xml_context.cpp -+index f5b8fe26..b2d6d398 100644 -+--- a/src/liborcus/xls_xml_context.cpp -++++ b/src/liborcus/xls_xml_context.cpp -+@@ -90,17 +90,17 @@ xls_xml_data_context::xls_xml_data_context( -+ -+ xls_xml_data_context::~xls_xml_data_context() {} -+ -+-bool xls_xml_data_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const -++bool xls_xml_data_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -+ { -+ return true; -+ } -+ -+-xml_context_base* xls_xml_data_context::create_child_context(xmlns_id_t ns, xml_token_t name) -++xml_context_base* xls_xml_data_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -+ { -+ return nullptr; -+ } -+ -+-void xls_xml_data_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base* child) -++void xls_xml_data_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -+ { -+ } -+ -+@@ -254,7 +254,7 @@ void xls_xml_data_context::reset() -+ } -+ -+ void xls_xml_data_context::start_element_data( -+- const xml_token_pair_t& parent, const xml_attrs_t& attrs) -++ const xml_token_pair_t& /*parent*/, const xml_attrs_t& attrs) -+ { -+ m_cell_type = ct_unknown; -+ m_cell_string.clear(); -+@@ -776,7 +776,7 @@ xml_context_base* xls_xml_context::create_child_context(xmlns_id_t ns, xml_token -+ return nullptr; -+ } -+ -+-void xls_xml_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base* child) -++void xls_xml_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -+ { -+ } -+ -+@@ -1217,7 +1217,7 @@ void xls_xml_context::characters(const pstring& str, bool /*transient*/) -+ } -+ } -+ -+-void xls_xml_context::start_element_borders(const xml_token_pair_t& parent, const xml_attrs_t& attrs) -++void xls_xml_context::start_element_borders(const xml_token_pair_t& parent, const xml_attrs_t& /*attrs*/) -+ { -+ xml_element_expected(parent, NS_xls_xml_ss, XML_Style); -+ m_current_style->borders.clear(); -+diff --git a/src/liborcus/xls_xml_detection_handler.cpp b/src/liborcus/xls_xml_detection_handler.cpp -+index aaa1b148..2b18c8ee 100644 -+--- a/src/liborcus/xls_xml_detection_handler.cpp -++++ b/src/liborcus/xls_xml_detection_handler.cpp -+@@ -36,7 +36,7 @@ public: -+ return nullptr; -+ } -+ -+- virtual void start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& attrs) -++ virtual void start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& /*attrs*/) -+ { -+ xml_token_pair_t parent = push_stack(ns, name); -+ if (ns == NS_xls_xml_ss) -+diff --git a/src/liborcus/xlsx_drawing_context.cpp b/src/liborcus/xlsx_drawing_context.cpp -+index f7dc31ab..380d7852 100644 -+--- a/src/liborcus/xlsx_drawing_context.cpp -++++ b/src/liborcus/xlsx_drawing_context.cpp -+@@ -41,7 +41,7 @@ void xlsx_drawing_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*na -+ { -+ } -+ -+-void xlsx_drawing_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& attrs) -++void xlsx_drawing_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& /*attrs*/) -+ { -+ xml_token_pair_t parent = push_stack(ns, name); -+ -+diff --git a/src/liborcus/xlsx_sheet_context.cpp b/src/liborcus/xlsx_sheet_context.cpp -+index 669f604f..50018c32 100644 -+--- a/src/liborcus/xlsx_sheet_context.cpp -++++ b/src/liborcus/xlsx_sheet_context.cpp -+@@ -845,7 +845,7 @@ void xlsx_sheet_context::push_raw_cell_value() -+ } -+ -+ void xlsx_sheet_context::push_raw_cell_result( -+- range_formula_results& res, size_t row_offset, size_t col_offset, xlsx_session_data& session_data) const -++ range_formula_results& res, size_t row_offset, size_t col_offset, xlsx_session_data& /*session_data*/) const -+ { -+ if (m_cur_value.empty()) -+ return; -+diff --git a/src/liborcus/xlsx_sheet_context_test.cpp b/src/liborcus/xlsx_sheet_context_test.cpp -+index 9cb0d2a5..11ec8b71 100644 -+--- a/src/liborcus/xlsx_sheet_context_test.cpp -++++ b/src/liborcus/xlsx_sheet_context_test.cpp -+@@ -64,19 +64,19 @@ public: -+ assert(formula == "A1:A2"); -+ } -+ -+- virtual void set_result_bool(row_t row, col_t col, bool value) override -++ virtual void set_result_bool(row_t, col_t, bool) override -+ { -+ } -+ -+- virtual void set_result_empty(row_t row, col_t col) override -++ virtual void set_result_empty(row_t, col_t) override -+ { -+ } -+ -+- virtual void set_result_string(row_t row, col_t col, std::string_view) override -++ virtual void set_result_string(row_t, col_t, std::string_view) override -+ { -+ } -+ -+- virtual void set_result_value(row_t row, col_t col, double value) override -++ virtual void set_result_value(row_t, col_t, double) override -+ { -+ } -+ -+diff --git a/src/liborcus/xlsx_table_context.cpp b/src/liborcus/xlsx_table_context.cpp -+index e135f44d..d8c360df 100644 -+--- a/src/liborcus/xlsx_table_context.cpp -++++ b/src/liborcus/xlsx_table_context.cpp -+@@ -317,7 +317,7 @@ bool xlsx_table_context::end_element(xmlns_id_t ns, xml_token_t name) -+ return pop_stack(ns, name); -+ } -+ -+-void xlsx_table_context::characters(const pstring& str, bool transient) -++void xlsx_table_context::characters(const pstring& /*str*/, bool /*transient*/) -+ { -+ } -+ -+diff --git a/src/liborcus/xml_structure_tree.cpp b/src/liborcus/xml_structure_tree.cpp -+index 9eaf3c07..5185049e 100644 -+--- a/src/liborcus/xml_structure_tree.cpp -++++ b/src/liborcus/xml_structure_tree.cpp -+@@ -125,11 +125,11 @@ public: -+ -+ void doctype(const sax::doctype_declaration&) {} -+ -+- void start_declaration(const pstring& name) -++ void start_declaration(const pstring& /*name*/) -+ { -+ } -+ -+- void end_declaration(const pstring& name) -++ void end_declaration(const pstring& /*name*/) -+ { -+ m_attrs.clear(); -+ } -+@@ -185,7 +185,7 @@ public: -+ m_stack.push_back(ref); -+ } -+ -+- void end_element(const sax_ns_parser_element& elem) -++ void end_element(const sax_ns_parser_element& /*elem*/) -+ { -+ if (m_stack.empty()) -+ throw general_error("Element stack is empty."); -+diff --git a/src/liborcus/xpath_parser_test.cpp b/src/liborcus/xpath_parser_test.cpp -+index 12242f62..f67c0dc6 100644 -+--- a/src/liborcus/xpath_parser_test.cpp -++++ b/src/liborcus/xpath_parser_test.cpp -+@@ -64,7 +64,7 @@ void test_attributes() -+ assert(token.attribute); -+ } -+ -+-int main(int argc, char** argv) -++int main() -+ { -+ test_elements(); -+ test_attributes(); -+diff --git a/src/orcus_env_dump.cpp b/src/orcus_env_dump.cpp -+index ad60927a..99f53718 100644 -+--- a/src/orcus_env_dump.cpp -++++ b/src/orcus_env_dump.cpp -+@@ -13,7 +13,7 @@ -+ using std::cout; -+ using std::endl; -+ -+-int main(int argc, char** argv) -++int main() -+ { -+ cout << "CPU flags:" << endl; -+ cout << " SSE 4.2: " << orcus::detail::cpu::has_sse42() << endl; -+diff --git a/src/orcus_test_json_mapped.cpp b/src/orcus_test_json_mapped.cpp -+index ed10a842..c504e156 100644 -+--- a/src/orcus_test_json_mapped.cpp -++++ b/src/orcus_test_json_mapped.cpp -+@@ -88,7 +88,7 @@ void test_invalid_map_definition() -+ } -+ } -+ -+-int main(int argc, char** argv) -++int main() -+ { -+ test_mapped_json_import(); -+ test_invalid_map_definition(); -+diff --git a/src/orcus_test_xml.cpp b/src/orcus_test_xml.cpp -+index 2a44a8ac..de5197cf 100644 -+--- a/src/orcus_test_xml.cpp -++++ b/src/orcus_test_xml.cpp -+@@ -85,7 +85,7 @@ const char* sax_parser_parse_only_test_dirs[] = { -+ SRCDIR"/test/xml/parse-only/rss/" -+ }; -+ -+-void parse_file(dom::document_tree& tree, const char* filepath, string& strm) -++void parse_file(dom::document_tree& tree, const char* filepath, std::string& /*strm*/) -+ { -+ cout << "testing " << filepath << endl; -+ file_content content(filepath); -+diff --git a/src/orcus_test_xml_mapped.cpp b/src/orcus_test_xml_mapped.cpp -+index b90ea020..8e18cfda 100644 -+--- a/src/orcus_test_xml_mapped.cpp -++++ b/src/orcus_test_xml_mapped.cpp -+@@ -66,7 +66,7 @@ void test_mapped_xml_import() -+ { SRCDIR"/test/xml-mapped/nested-repeats-4", false }, -+ }; -+ -+- auto dump_xml_structure = [](string& dump_content, string& strm, const char* filepath, xmlns_context& cxt) -++ auto dump_xml_structure = [](std::string& dump_content, std::string& /*strm*/, const char* filepath, xmlns_context& cxt) -+ { -+ file_content content(filepath); -+ dom::document_tree tree(cxt); -+diff --git a/src/parser/sax_token_parser_test.cpp b/src/parser/sax_token_parser_test.cpp -+index 2647444c..6ff8c932 100644 -+--- a/src/parser/sax_token_parser_test.cpp -++++ b/src/parser/sax_token_parser_test.cpp -+@@ -146,7 +146,7 @@ void test_unicode_string() -+ { -+ } -+ -+- void characters(std::string_view val, bool transient) -++ void characters(std::string_view val, bool /*transient*/) -+ { -+ std::cout << "charachters:" << std::endl; -+ std::cout << val << std::endl; -+diff --git a/src/parser/sax_token_parser_thread.cpp b/src/parser/sax_token_parser_thread.cpp -+index b9166e3c..d21ae6d7 100644 -+--- a/src/parser/sax_token_parser_thread.cpp -++++ b/src/parser/sax_token_parser_thread.cpp -+@@ -86,7 +86,7 @@ struct parser_thread::impl -+ m_token_buffer.abort(); -+ } -+ -+- void declaration(const orcus::xml_declaration_t& decl) -++ void declaration(const orcus::xml_declaration_t& /*decl*/) -+ { -+ } -+ -+diff --git a/src/parser/utf8.cpp b/src/parser/utf8.cpp -+index f3b264a7..e02d2244 100644 -+--- a/src/parser/utf8.cpp -++++ b/src/parser/utf8.cpp -+@@ -231,7 +231,7 @@ bool parse_3b_second_char(uint8_t c1, uint8_t c2, uint8_t c3) -+ } -+ -+ // [#x10000-#xEFFFF]: F0 90 80 80 -> F3 AF BF BF -+-bool parse_4b_char(uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4) -++bool parse_4b_char(uint8_t c1, uint8_t c2, uint8_t /*c3*/, uint8_t /*c4*/) -+ { -+ // F0 90 80 80 -> F3 AF BF BF -+ // - F0 90 xx xx -> F0 xx xx xx -+diff --git a/src/parser/utf8_test.cpp b/src/parser/utf8_test.cpp -+index 78b7656a..88dcd3e8 100644 -+--- a/src/parser/utf8_test.cpp -++++ b/src/parser/utf8_test.cpp -+@@ -159,7 +159,7 @@ void test_xml_name_char() -+ assert(res); -+ } -+ -+-int main(int argc, char** argv) -++int main() -+ { -+ test_xml_name_start_char(); -+ test_xml_name_char(); -+diff --git a/src/parser/xml_writer_test.cpp b/src/parser/xml_writer_test.cpp -+index e5a22357..8687db32 100644 -+--- a/src/parser/xml_writer_test.cpp -++++ b/src/parser/xml_writer_test.cpp -+@@ -28,7 +28,7 @@ void test_encoded_content() -+ { -+ std::ostringstream os_content; -+ -+- void characters(std::string_view val, bool transient) -++ void characters(std::string_view val, bool /*transient*/) -+ { -+ os_content << val; -+ } -+diff --git a/src/python/cell.cpp b/src/python/cell.cpp -+index 536b5c4d..16374b8f 100644 -+--- a/src/python/cell.cpp -++++ b/src/python/cell.cpp -+@@ -115,7 +115,7 @@ int tp_init(pyobj_cell* self, PyObject* args, PyObject* kwargs) -+ return 0; -+ } -+ -+-PyObject* cell_get_formula_tokens(PyObject* self, PyObject* args, PyObject* kwargs) -++PyObject* cell_get_formula_tokens(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ pyobj_cell* obj = reinterpret_cast<pyobj_cell*>(self); -+ cell_data& data = *obj->data; -+diff --git a/src/python/document.cpp b/src/python/document.cpp -+index b06463bc..02a2dc49 100644 -+--- a/src/python/document.cpp -++++ b/src/python/document.cpp -+@@ -69,12 +69,12 @@ PyObject* tp_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwargs*/) -+ return reinterpret_cast<PyObject*>(self); -+ } -+ -+-int tp_init(pyobj_document* self, PyObject* /*args*/, PyObject* /*kwargs*/) -++int tp_init(pyobj_document* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ return 0; -+ } -+ -+-PyObject* doc_get_named_expressions(PyObject* self, PyObject* args, PyObject* kwargs) -++PyObject* doc_get_named_expressions(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ const ss::document& doc = *t(self)->data->m_doc; -+ const ixion::model_context& cxt = doc.get_model_context(); -+diff --git a/src/python/formula_tokens.cpp b/src/python/formula_tokens.cpp -+index 569d1a7a..3eece2d4 100644 -+--- a/src/python/formula_tokens.cpp -++++ b/src/python/formula_tokens.cpp -+@@ -56,7 +56,7 @@ void tp_dealloc(pyobj_formula_tokens* self) -+ Py_TYPE(self)->tp_free(reinterpret_cast<PyObject*>(self)); -+ } -+ -+-int tp_init(pyobj_formula_tokens* self, PyObject* /*args*/, PyObject* /*kwargs*/) -++int tp_init(pyobj_formula_tokens* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ return 0; -+ } -+diff --git a/src/python/global.cpp b/src/python/global.cpp -+index 7a21f960..f8623e0d 100644 -+--- a/src/python/global.cpp -++++ b/src/python/global.cpp -+@@ -16,7 +16,7 @@ void set_python_exception(PyObject* type, const std::exception& e) -+ { -+ std::ostringstream os; -+ os << "C++ exception caught: " << e.what(); -+- PyErr_SetString(PyExc_RuntimeError, os.str().data()); -++ PyErr_SetString(type, os.str().data()); -+ } -+ -+ PyObject* get_python_enum_value(const char* enum_class_name, const char* value_name) -+diff --git a/src/python/json.cpp b/src/python/json.cpp -+index fdeea10c..f22cf666 100644 -+--- a/src/python/json.cpp -++++ b/src/python/json.cpp -+@@ -177,7 +177,7 @@ public: -+ } -+ } -+ -+- void object_key(const char* p, size_t len, bool transient) -++ void object_key(const char* p, size_t len, bool /*transient*/) -+ { -+ parser_stack& cur = m_stack.back(); -+ cur.key = PyUnicode_FromStringAndSize(p, len); -+@@ -213,7 +213,7 @@ public: -+ push_value(Py_None); -+ } -+ -+- void string(const char* p, size_t len, bool transient) -++ void string(const char* p, size_t len, bool /*transient*/) -+ { -+ push_value(PyUnicode_FromStringAndSize(p, len)); -+ } -+diff --git a/src/python/named_expression.cpp b/src/python/named_expression.cpp -+index 8edeeacf..1402daa0 100644 -+--- a/src/python/named_expression.cpp -++++ b/src/python/named_expression.cpp -+@@ -81,7 +81,7 @@ PyObject* tp_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwargs*/) -+ return reinterpret_cast<PyObject*>(self); -+ } -+ -+-PyObject* ne_get_formula_tokens(PyObject* self, PyObject* args, PyObject* kwargs) -++PyObject* ne_get_formula_tokens(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ named_exp_data& data = *t(self)->data; -+ if (!data.tokens) -+diff --git a/src/python/named_expressions.cpp b/src/python/named_expressions.cpp -+index 235389ac..6faffee5 100644 -+--- a/src/python/named_expressions.cpp -++++ b/src/python/named_expressions.cpp -+@@ -44,7 +44,7 @@ inline pyobj_named_exps* t(PyObject* self) -+ return reinterpret_cast<pyobj_named_exps*>(self); -+ } -+ -+-PyObject* named_exps_names(PyObject* self, PyObject* args, PyObject* kwargs) -++PyObject* named_exps_names(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ named_exps_data& data = *t(self)->data; -+ PyObject* s = PySet_New(nullptr); -+@@ -64,7 +64,7 @@ void tp_dealloc(pyobj_named_exps* self) -+ Py_TYPE(self)->tp_free(reinterpret_cast<PyObject*>(self)); -+ } -+ -+-int tp_init(pyobj_named_exps* self, PyObject* /*args*/, PyObject* /*kwargs*/) -++int tp_init(pyobj_named_exps* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ return 0; -+ } -+diff --git a/src/python/sheet.cpp b/src/python/sheet.cpp -+index 0ccc39bd..38b96241 100644 -+--- a/src/python/sheet.cpp -++++ b/src/python/sheet.cpp -+@@ -85,12 +85,12 @@ PyObject* tp_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwargs*/) -+ return reinterpret_cast<PyObject*>(self); -+ } -+ -+-int tp_init(pyobj_sheet* self, PyObject* /*args*/, PyObject* /*kwargs*/) -++int tp_init(pyobj_sheet* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ return 0; -+ } -+ -+-PyObject* sheet_get_rows(PyObject* self, PyObject* args, PyObject* kwargs) -++PyObject* sheet_get_rows(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ PyTypeObject* sr_type = get_sheet_rows_type(); -+ -+@@ -210,7 +210,7 @@ PyObject* sheet_write(PyObject* self, PyObject* args, PyObject* kwargs) -+ return Py_None; -+ } -+ -+-PyObject* sheet_get_named_expressions(PyObject* self, PyObject* args, PyObject* kwargs) -++PyObject* sheet_get_named_expressions(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ const ss::document& doc = *t(self)->data->m_doc; -+ ss::sheet_t si = t(self)->data->m_sheet->get_index(); -+diff --git a/src/python/sheet_rows.cpp b/src/python/sheet_rows.cpp -+index 7fa869ea..be495894 100644 -+--- a/src/python/sheet_rows.cpp -++++ b/src/python/sheet_rows.cpp -+@@ -49,7 +49,7 @@ PyObject* sheet_rows_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwa -+ return reinterpret_cast<PyObject*>(self); -+ } -+ -+-int sheet_rows_init(pyobj_sheet_rows* self, PyObject* /*args*/, PyObject* /*kwargs*/) -++int sheet_rows_init(pyobj_sheet_rows* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -+ { -+ return 0; -+ } -+diff --git a/src/spreadsheet/factory_sheet.cpp b/src/spreadsheet/factory_sheet.cpp -+index 3e04295c..61541174 100644 -+--- a/src/spreadsheet/factory_sheet.cpp -++++ b/src/spreadsheet/factory_sheet.cpp -+@@ -74,19 +74,19 @@ void import_data_table::reset() -+ { -+ } -+ -+-void import_data_table::set_type(data_table_type_t type) -++void import_data_table::set_type(data_table_type_t /*type*/) -+ { -+ } -+ -+-void import_data_table::set_range(const range_t& range) -++void import_data_table::set_range(const range_t& /*range*/) -+ { -+ } -+ -+-void import_data_table::set_first_reference(std::string_view ref, bool deleted) -++void import_data_table::set_first_reference(std::string_view /*ref*/, bool /*deleted*/) -+ { -+ } -+ -+-void import_data_table::set_second_reference(std::string_view ref, bool deleted) -++void import_data_table::set_second_reference(std::string_view /*ref*/, bool /*deleted*/) -+ { -+ } -+ -+@@ -193,7 +193,7 @@ void import_array_formula::set_range(const range_t& range) -+ } -+ } -+ -+-void import_array_formula::set_formula(formula_grammar_t grammar, std::string_view formula) -++void import_array_formula::set_formula(formula_grammar_t /*grammar*/, std::string_view formula) -+ { -+ const ixion::formula_name_resolver* resolver = -+ m_doc.get_formula_name_resolver(spreadsheet::formula_ref_context_t::global); -+@@ -223,12 +223,12 @@ void import_array_formula::set_result_value(row_t row, col_t col, double value) -+ m_result_mtx.set(row, col, value); -+ } -+ -+-void import_array_formula::set_result_string(row_t row, col_t col, std::string_view value) -++void import_array_formula::set_result_string(row_t /*row*/, col_t /*col*/, std::string_view /*value*/) -+ { -+ // TODO : handle this -+ } -+ -+-void import_array_formula::set_result_empty(row_t row, col_t col) -++void import_array_formula::set_result_empty(row_t /*row*/, col_t /*col*/) -+ { -+ // TODO : handle this -+ } -+@@ -282,7 +282,7 @@ void import_formula::set_position(row_t row, col_t col) -+ m_col = col; -+ } -+ -+-void import_formula::set_formula(formula_grammar_t grammar, std::string_view formula) -++void import_formula::set_formula(formula_grammar_t /*grammar*/, std::string_view formula) -+ { -+ if (m_row < 0 || m_col < 0) -+ return; -+@@ -331,7 +331,7 @@ void import_formula::set_result_string(std::string_view value) -+ } -+ -+ void import_formula::set_result_empty() {} -+-void import_formula::set_result_bool(bool value) {} -++void import_formula::set_result_bool(bool /*value*/) {} -+ -+ void import_formula::commit() -+ { -+diff --git a/src/spreadsheet/sheet_impl.cpp b/src/spreadsheet/sheet_impl.cpp -+index 72e521c5..c2e7ecb6 100644 -+--- a/src/spreadsheet/sheet_impl.cpp -++++ b/src/spreadsheet/sheet_impl.cpp -+@@ -12,7 +12,7 @@ -+ -+ namespace orcus { namespace spreadsheet { -+ -+-sheet_impl::sheet_impl(document& doc, sheet& sh, sheet_t sheet_index) : -++sheet_impl::sheet_impl(document& doc, sheet& /*sh*/, sheet_t sheet_index) : -+ m_doc(doc), -+ m_col_widths(0, m_doc.get_sheet_size().columns, get_default_column_width()), -+ m_row_heights(0, m_doc.get_sheet_size().rows, get_default_row_height()), -+-- -+2.25.1 -+ -diff --git a/external/liborcus/std-get-busted.patch.1 b/external/liborcus/std-get-busted.patch.1 -new file mode 100644 -index 000000000000..40b839f65f47 ---- /dev/null -+++ b/external/liborcus/std-get-busted.patch.1 -@@ -0,0 +1,418 @@ -+From f917ed284c52ae12fb0d752c17141f355158470e Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <kohei.yoshida@gmail.com> -+Date: Tue, 2 Nov 2021 22:07:51 -0400 -+Subject: [PATCH] std::get<T>(...) may be flaky with some version of clang. -+ -+As workaround, use boost::variant and boost::get. -+ -+c.f. https://stackoverflow.com/questions/52521388/stdvariantget-does-not-compile-with-apple-llvm-10-0 -+--- -+ include/orcus/config.hpp | 4 ++-- -+ include/orcus/css_selector.hpp | 5 +++-- -+ include/orcus/json_parser_thread.hpp | 4 ++-- -+ include/orcus/sax_token_parser_thread.hpp | 5 +++-- -+ include/orcus/spreadsheet/pivot.hpp | 7 ++++--- -+ include/orcus/threaded_json_parser.hpp | 8 ++++---- -+ include/orcus/threaded_sax_token_parser.hpp | 8 ++++---- -+ src/liborcus/css_document_tree.cpp | 2 +- -+ src/liborcus/css_selector.cpp | 12 ++++++------ -+ src/liborcus/orcus_csv.cpp | 4 ++-- -+ src/orcus_csv_main.cpp | 2 +- -+ src/orcus_test_csv.cpp | 8 ++++---- -+ src/orcus_test_xlsx.cpp | 4 ++-- -+ src/parser/json_parser_thread.cpp | 8 ++++---- -+ src/python/sheet_rows.cpp | 3 +++ -+ 15 files changed, 45 insertions(+), 39 deletions(-) -+ -+diff --git a/include/orcus/config.hpp b/include/orcus/config.hpp -+index 17743e6a..fe9a7d81 100644 -+--- a/include/orcus/config.hpp -++++ b/include/orcus/config.hpp -+@@ -12,7 +12,7 @@ -+ #include "orcus/types.hpp" -+ -+ #include <string> -+-#include <variant> -++#include <boost/variant.hpp> -+ -+ namespace orcus { -+ -+@@ -37,7 +37,7 @@ struct ORCUS_DLLPUBLIC config -+ }; -+ -+ // TODO: add config for other formats as needed. -+- using data_type = std::variant<csv_config>; -++ using data_type = boost::variant<csv_config>; -+ -+ /** -+ * Enable or disable runtime debug output to stdout or stderr. -+diff --git a/include/orcus/css_selector.hpp b/include/orcus/css_selector.hpp -+index 1e41d544..dafeddf5 100644 -+--- a/include/orcus/css_selector.hpp -++++ b/include/orcus/css_selector.hpp -+@@ -12,11 +12,12 @@ -+ #include "css_types.hpp" -+ -+ #include <ostream> -+-#include <variant> -+ #include <vector> -+ #include <unordered_set> -+ #include <unordered_map> -+ -++#include <boost/variant.hpp> -++ -+ namespace orcus { -+ -+ struct ORCUS_DLLPUBLIC css_simple_selector_t -+@@ -73,7 +74,7 @@ struct ORCUS_DLLPUBLIC css_selector_t -+ */ -+ struct ORCUS_DLLPUBLIC css_property_value_t -+ { -+- using value_type = std::variant<std::string_view, css::rgba_color_t, css::hsla_color_t>; -++ using value_type = boost::variant<std::string_view, css::rgba_color_t, css::hsla_color_t>; -+ -+ css::property_value_t type; -+ value_type value; -+diff --git a/include/orcus/json_parser_thread.hpp b/include/orcus/json_parser_thread.hpp -+index 8328ef11..565008da 100644 -+--- a/include/orcus/json_parser_thread.hpp -++++ b/include/orcus/json_parser_thread.hpp -+@@ -14,7 +14,7 @@ -+ #include <memory> -+ #include <vector> -+ #include <ostream> -+-#include <variant> -++#include <boost/variant.hpp> -+ -+ namespace orcus { -+ -+@@ -47,7 +47,7 @@ enum class parse_token_t -+ -+ struct ORCUS_PSR_DLLPUBLIC parse_token -+ { -+- using value_type = std::variant<std::string_view, parse_error_value_t, double>; -++ using value_type = boost::variant<std::string_view, parse_error_value_t, double>; -+ -+ parse_token_t type; -+ value_type value; -+diff --git a/include/orcus/sax_token_parser_thread.hpp b/include/orcus/sax_token_parser_thread.hpp -+index b3645735..e0842013 100644 -+--- a/include/orcus/sax_token_parser_thread.hpp -++++ b/include/orcus/sax_token_parser_thread.hpp -+@@ -12,10 +12,11 @@ -+ #include "types.hpp" -+ -+ #include <memory> -+-#include <variant> -+ #include <vector> -+ #include <ostream> -+ -++#include <boost/variant.hpp> -++ -+ namespace orcus { -+ -+ class tokens; -+@@ -36,7 +37,7 @@ enum class parse_token_t -+ -+ struct ORCUS_PSR_DLLPUBLIC parse_token -+ { -+- using value_type = std::variant<std::string_view, parse_error_value_t, const xml_token_element_t*>; -++ using value_type = boost::variant<std::string_view, parse_error_value_t, const xml_token_element_t*>; -+ -+ parse_token_t type; -+ value_type value; -+diff --git a/include/orcus/spreadsheet/pivot.hpp b/include/orcus/spreadsheet/pivot.hpp -+index dee25596..fa091160 100644 -+--- a/include/orcus/spreadsheet/pivot.hpp -++++ b/include/orcus/spreadsheet/pivot.hpp -+@@ -15,9 +15,10 @@ -+ #include <memory> -+ #include <vector> -+ #include <limits> -+-#include <variant> -+ #include <optional> -+ -++#include <boost/variant.hpp> -++ -+ namespace ixion { -+ -+ struct abs_range_t; -+@@ -36,7 +37,7 @@ using pivot_cache_indices_t = std::vector<size_t>; -+ -+ struct ORCUS_SPM_DLLPUBLIC pivot_cache_record_value_t -+ { -+- using value_type = std::variant<bool, double, std::size_t, std::string_view, date_time_t>; -++ using value_type = boost::variant<bool, double, std::size_t, std::string_view, date_time_t>; -+ -+ enum class record_type -+ { -+@@ -66,7 +67,7 @@ using pivot_cache_record_t = std::vector<pivot_cache_record_value_t>; -+ -+ struct ORCUS_SPM_DLLPUBLIC pivot_cache_item_t -+ { -+- using value_type = std::variant<bool, double, std::string_view, date_time_t, error_value_t>; -++ using value_type = boost::variant<bool, double, std::string_view, date_time_t, error_value_t>; -+ -+ enum class item_type -+ { -+diff --git a/include/orcus/threaded_json_parser.hpp b/include/orcus/threaded_json_parser.hpp -+index 51cdaced..3bf6e591 100644 -+--- a/include/orcus/threaded_json_parser.hpp -++++ b/include/orcus/threaded_json_parser.hpp -+@@ -151,23 +151,23 @@ void threaded_json_parser<_Handler>::process_tokens(json::parse_tokens_t& tokens -+ m_handler.null(); -+ break; -+ case json::parse_token_t::number: -+- m_handler.number(std::get<double>(t.value)); -++ m_handler.number(boost::get<double>(t.value)); -+ break; -+ case json::parse_token_t::object_key: -+ { -+- auto s = std::get<std::string_view>(t.value); -++ auto s = boost::get<std::string_view>(t.value); -+ m_handler.object_key(s.data(), s.size(), false); -+ break; -+ } -+ case json::parse_token_t::string: -+ { -+- auto s = std::get<std::string_view>(t.value); -++ auto s = boost::get<std::string_view>(t.value); -+ m_handler.string(s.data(), s.size(), false); -+ break; -+ } -+ case json::parse_token_t::parse_error: -+ { -+- auto v = std::get<parse_error_value_t>(t.value); -++ auto v = boost::get<parse_error_value_t>(t.value); -+ throw json::parse_error(std::string{v.str}, v.offset); -+ } -+ case json::parse_token_t::unknown: -+diff --git a/include/orcus/threaded_sax_token_parser.hpp b/include/orcus/threaded_sax_token_parser.hpp -+index 59ea967a..1b389be2 100644 -+--- a/include/orcus/threaded_sax_token_parser.hpp -++++ b/include/orcus/threaded_sax_token_parser.hpp -+@@ -131,25 +131,25 @@ void threaded_sax_token_parser<_Handler>::process_tokens(const sax::parse_tokens -+ { -+ case sax::parse_token_t::start_element: -+ { -+- const auto* elem = std::get<const xml_token_element_t*>(t.value); -++ const auto* elem = boost::get<const xml_token_element_t*>(t.value); -+ m_handler.start_element(*elem); -+ break; -+ } -+ case sax::parse_token_t::end_element: -+ { -+- const auto* elem = std::get<const xml_token_element_t*>(t.value); -++ const auto* elem = boost::get<const xml_token_element_t*>(t.value); -+ m_handler.end_element(*elem); -+ break; -+ } -+ case sax::parse_token_t::characters: -+ { -+- auto s = std::get<std::string_view>(t.value); -++ auto s = boost::get<std::string_view>(t.value); -+ m_handler.characters(s, false); -+ break; -+ } -+ case sax::parse_token_t::parse_error: -+ { -+- auto v = std::get<parse_error_value_t>(t.value); -++ auto v = boost::get<parse_error_value_t>(t.value); -+ throw sax::malformed_xml_error(std::string{v.str}, v.offset); -+ } -+ default: -+diff --git a/src/liborcus/css_document_tree.cpp b/src/liborcus/css_document_tree.cpp -+index 46bf7e91..4b44edff 100644 -+--- a/src/liborcus/css_document_tree.cpp -++++ b/src/liborcus/css_document_tree.cpp -+@@ -317,7 +317,7 @@ public: -+ { -+ // String value needs interning. -+ css_property_value_t interned = v; -+- auto s = std::get<std::string_view>(v.value); -++ auto s = boost::get<std::string_view>(v.value); -+ interned.value = m_sp.intern(s).first; -+ m_dest.push_back(interned); -+ break; -+diff --git a/src/liborcus/css_selector.cpp b/src/liborcus/css_selector.cpp -+index b7b63f37..de522062 100644 -+--- a/src/liborcus/css_selector.cpp -++++ b/src/liborcus/css_selector.cpp -+@@ -155,7 +155,7 @@ std::ostream& operator<< (std::ostream& os, const css_property_value_t& v) -+ { -+ case css::property_value_t::hsl: -+ { -+- auto c = std::get<css::hsla_color_t>(v.value); -++ auto c = boost::get<css::hsla_color_t>(v.value); -+ os << "hsl(" -+ << (int)c.hue << sep -+ << (int)c.saturation << sep -+@@ -165,7 +165,7 @@ std::ostream& operator<< (std::ostream& os, const css_property_value_t& v) -+ } -+ case css::property_value_t::hsla: -+ { -+- auto c = std::get<css::hsla_color_t>(v.value); -++ auto c = boost::get<css::hsla_color_t>(v.value); -+ os << "hsla(" -+ << (int)c.hue << sep -+ << (int)c.saturation << sep -+@@ -176,7 +176,7 @@ std::ostream& operator<< (std::ostream& os, const css_property_value_t& v) -+ } -+ case css::property_value_t::rgb: -+ { -+- auto c = std::get<css::rgba_color_t>(v.value); -++ auto c = boost::get<css::rgba_color_t>(v.value); -+ os << "rgb(" -+ << (int)c.red << sep -+ << (int)c.green << sep -+@@ -186,7 +186,7 @@ std::ostream& operator<< (std::ostream& os, const css_property_value_t& v) -+ } -+ case css::property_value_t::rgba: -+ { -+- auto c = std::get<css::rgba_color_t>(v.value); -++ auto c = boost::get<css::rgba_color_t>(v.value); -+ os << "rgba(" -+ << (int)c.red << sep -+ << (int)c.green << sep -+@@ -196,10 +196,10 @@ std::ostream& operator<< (std::ostream& os, const css_property_value_t& v) -+ break; -+ } -+ case css::property_value_t::string: -+- os << std::get<std::string_view>(v.value); -++ os << boost::get<std::string_view>(v.value); -+ break; -+ case css::property_value_t::url: -+- os << "url(" << std::get<std::string_view>(v.value) << ")"; -++ os << "url(" << boost::get<std::string_view>(v.value) << ")"; -+ break; -+ case css::property_value_t::none: -+ default: -+diff --git a/src/liborcus/orcus_csv.cpp b/src/liborcus/orcus_csv.cpp -+index 5c71bcf5..637308ab 100644 -+--- a/src/liborcus/orcus_csv.cpp -++++ b/src/liborcus/orcus_csv.cpp -+@@ -63,7 +63,7 @@ public: -+ // 0. -+ if (m_row >= mp_sheet->get_sheet_size().rows) -+ { -+- auto csv = std::get<config::csv_config>(m_app_config.data); -++ auto csv = boost::get<config::csv_config>(m_app_config.data); -+ -+ if (!csv.split_to_multiple_sheets) -+ throw max_row_size_reached(); -+@@ -93,7 +93,7 @@ public: -+ -+ void cell(const char* p, size_t n, bool transient) -+ { -+- auto csv = std::get<config::csv_config>(m_app_config.data); -++ auto csv = boost::get<config::csv_config>(m_app_config.data); -+ -+ if (m_sheet == 0 && size_t(m_row) < csv.header_row_size) -+ { -+diff --git a/src/orcus_csv_main.cpp b/src/orcus_csv_main.cpp -+index 4f6d7173..446f2684 100644 -+--- a/src/orcus_csv_main.cpp -++++ b/src/orcus_csv_main.cpp -+@@ -45,7 +45,7 @@ public: -+ -+ virtual void map_to_config(config& opt, const po::variables_map& vm) override -+ { -+- auto csv = std::get<config::csv_config>(opt.data); -++ auto csv = boost::get<config::csv_config>(opt.data); -+ -+ if (vm.count("row-header")) -+ csv.header_row_size = vm["row-header"].as<size_t>(); -+diff --git a/src/orcus_test_csv.cpp b/src/orcus_test_csv.cpp -+index 310ace9d..0b9ba994 100644 -+--- a/src/orcus_test_csv.cpp -++++ b/src/orcus_test_csv.cpp -+@@ -95,8 +95,8 @@ void test_csv_import_split_sheet() -+ std::cout << "checking " << path << "..." << std::endl; -+ -+ config conf(format_t::csv); -+- std::get<config::csv_config>(conf.data).header_row_size = 0; -+- std::get<config::csv_config>(conf.data).split_to_multiple_sheets = true; -++ boost::get<config::csv_config>(conf.data).header_row_size = 0; -++ boost::get<config::csv_config>(conf.data).split_to_multiple_sheets = true; -+ -+ // Set the row size to 11 to make sure the split occurs. -+ spreadsheet::range_size_t ss{11, 4}; -+@@ -126,7 +126,7 @@ void test_csv_import_split_sheet() -+ path = dir; -+ path.append("input.csv"); -+ doc.clear(); -+- std::get<config::csv_config>(conf.data).header_row_size = 1; -++ boost::get<config::csv_config>(conf.data).header_row_size = 1; -+ { -+ spreadsheet::import_factory factory(doc); -+ orcus_csv app(&factory); -+@@ -149,7 +149,7 @@ void test_csv_import_split_sheet() -+ -+ // Re-import it again, but this time disable the splitting. The data should -+ // get trucated on the first sheet. -+- std::get<config::csv_config>(conf.data).split_to_multiple_sheets = false; -++ boost::get<config::csv_config>(conf.data).split_to_multiple_sheets = false; -+ -+ path = dir; -+ path.append("input.csv"); -+diff --git a/src/orcus_test_xlsx.cpp b/src/orcus_test_xlsx.cpp -+index 807c61e4..632fb1e7 100644 -+--- a/src/orcus_test_xlsx.cpp -++++ b/src/orcus_test_xlsx.cpp -+@@ -1154,8 +1154,8 @@ void test_xlsx_pivot_group_by_numbers() -+ for (const pivot_cache_item_t& item : fld->items) -+ { -+ assert(item.type == pivot_cache_item_t::item_type::numeric); -+- assert(*fld->min_value <= std::get<double>(item.value)); -+- assert(std::get<double>(item.value) <= *fld->max_value); -++ assert(*fld->min_value <= boost::get<double>(item.value)); -++ assert(boost::get<double>(item.value) <= *fld->max_value); -+ } -+ -+ // This field is also gruop field with 7 numeric intervals of width 2. -+diff --git a/src/parser/json_parser_thread.cpp b/src/parser/json_parser_thread.cpp -+index 36bbe6e6..65fb6255 100644 -+--- a/src/parser/json_parser_thread.cpp -++++ b/src/parser/json_parser_thread.cpp -+@@ -237,19 +237,19 @@ std::ostream& operator<< (std::ostream& os, const parse_tokens_t& tokens) -+ os << "- null" << endl; -+ break; -+ case parse_token_t::number: -+- os << "- number (v=" << std::get<double>(t.value) << ")" << endl; -++ os << "- number (v=" << boost::get<double>(t.value) << ")" << endl; -+ break; -+ case parse_token_t::object_key: -+- os << "- object_key (v=" << std::get<std::string_view>(t.value) << ")" << endl; -++ os << "- object_key (v=" << boost::get<std::string_view>(t.value) << ")" << endl; -+ break; -+ case parse_token_t::parse_error: -+ { -+- auto v = std::get<parse_error_value_t>(t.value); -++ auto v = boost::get<parse_error_value_t>(t.value); -+ os << "- parse_error (v=" << v.str << ", offset=" << v.offset << ")" << endl; -+ break; -+ } -+ case parse_token_t::string: -+- os << "- string (" << std::get<std::string_view>(t.value) << ")" << endl; -++ os << "- string (" << boost::get<std::string_view>(t.value) << ")" << endl; -+ break; -+ case parse_token_t::unknown: -+ os << "- unknown" << endl; -+diff --git a/src/python/sheet_rows.cpp b/src/python/sheet_rows.cpp -+index be495894..0d21ba71 100644 -+--- a/src/python/sheet_rows.cpp -++++ b/src/python/sheet_rows.cpp -+@@ -135,7 +135,10 @@ PyObject* sheet_rows_iternext(PyObject* self) -+ break; -+ } -+ case ixion::celltype_t::unknown: -++ { -++ PyErr_SetString(PyExc_RuntimeError, "Unknown cell type."); -+ break; -++ } -+ } -+ -+ if (!obj) -+-- -+2.25.1 -+ -diff --git a/external/liborcus/unused-variables.patch.1 b/external/liborcus/unused-variables.patch.1 -new file mode 100644 -index 000000000000..77b88fae288c ---- /dev/null -+++ b/external/liborcus/unused-variables.patch.1 -@@ -0,0 +1,24 @@ -+From 5fccafa297ce2439ee850e13ccbeea3edb1750af Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <kohei.yoshida@gmail.com> -+Date: Tue, 2 Nov 2021 20:42:45 -0400 -+Subject: [PATCH] Unused variables. -+ -+--- -+ include/orcus/sax_parser.hpp | 1 - -+ 1 file changed, 1 deletion(-) -+ -+diff --git a/include/orcus/sax_parser.hpp b/include/orcus/sax_parser.hpp -+index 24b1e8ea..15e8d917 100644 -+--- a/include/orcus/sax_parser.hpp -++++ b/include/orcus/sax_parser.hpp -+@@ -539,7 +539,6 @@ template<typename _Handler, typename _Config> -+ void sax_parser<_Handler,_Config>::attribute() -+ { -+ sax::parser_attribute attr; -+- std::string_view attr_ns_name, attr_name, attr_value; -+ attribute_name(attr.ns, attr.name); -+ -+ #if ORCUS_DEBUG_SAX_PARSER -+-- -+2.25.1 -+ -diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk -index 3c664336430b..cf5bd48a1eb6 100644 ---- a/external/mdds/UnpackedTarball_mdds.mk -+++ b/external/mdds/UnpackedTarball_mdds.mk -@@ -13,11 +13,9 @@ $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL))) - - $(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0)) - --# * external/mdds/Wunused-but-set-variable.patch upstream at --# <https://gitlab.com/mdds/mdds/-/merge_requests/29> "-Werror,-Wunused-but-set-variable (Clang 13 --# trunk)": - $(eval $(call gb_UnpackedTarball_add_patches,mdds,\ -- external/mdds/Wunused-but-set-variable.patch \ -+ external/mdds/remove-unused-parameters.patch.1 \ -+ external/mdds/remove-more-unused-parameters.patch.1 \ - )) - - # vim: set noet sw=4 ts=4: -diff --git a/external/mdds/Wunused-but-set-variable.patch b/external/mdds/Wunused-but-set-variable.patch -deleted file mode 100644 -index ba28cb18eded..000000000000 ---- a/external/mdds/Wunused-but-set-variable.patch -+++ /dev/null -@@ -1,46 +0,0 @@ ----- include/mdds/multi_type_vector_def.inl --+++ include/mdds/multi_type_vector_def.inl --@@ -843,18 +843,12 @@ -- typename multi_type_vector<_CellBlockFunc, _EventFunc>::iterator -- multi_type_vector<_CellBlockFunc, _EventFunc>::push_back_empty() -- { --- size_type last_block_size = 0; --- if (!m_blocks.empty()) --- last_block_size = m_blocks.back().m_size; --- -- size_type block_index = m_blocks.size(); --- size_type start_pos = m_cur_size; -- -- if (!append_empty(1)) -- { -- // Last empty block has been extended. -- --block_index; --- start_pos -= last_block_size; -- } -- -- // Get the iterator of the last block. --@@ -3923,8 +3917,6 @@ -- size_type offset = start_row - start_row_in_block1; -- size_type end_row_in_block2 = start_row_in_block2 + blk2->m_size - 1; -- --- size_type start_row_itr = start_row_in_block1; --- -- // Initially set to erase blocks between block 1 and block 2 non-inclusive at either end. -- typename blocks_type::iterator it_erase_begin = m_blocks.begin() + block_index1 + 1; -- typename blocks_type::iterator it_erase_end = m_blocks.begin() + block_index2; --@@ -3948,7 +3940,6 @@ -- data_blk.mp_data = blk0->mp_data; -- blk0->mp_data = nullptr; -- --- start_row_itr -= blk0->m_size; -- data_blk.m_size += blk0->m_size; -- data_blk.m_position = blk0->m_position; -- --@@ -3967,7 +3958,6 @@ -- element_block_func::resize_block(*blk1->mp_data, offset); -- } -- blk1->m_size = offset; --- start_row_itr += offset; -- } -- -- if (blk0_copied) -diff --git a/external/mdds/remove-more-unused-parameters.patch.1 b/external/mdds/remove-more-unused-parameters.patch.1 -new file mode 100644 -index 000000000000..c0c29471c9ed ---- /dev/null -+++ b/external/mdds/remove-more-unused-parameters.patch.1 -@@ -0,0 +1,42 @@ -+From cc24c84d35274aead5afe574c87ecd6368aa5e2a Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <kohei.yoshida@gmail.com> -+Date: Tue, 2 Nov 2021 18:24:30 -0400 -+Subject: [PATCH] More unused parameters. -+ -+I personally cannot reproduce the warnings. But The android x86 build -+of LibreOffice generates the following build warnings: -+ -+In file included from /home/tdf/lode/jenkins/workspace/android_x86/svl/source/misc/gridprinter.cxx:16: -+In file included from /home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/mdds/include/mdds/multi_type_matrix.hpp:37: -+In file included from /home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector.hpp:31: -+In file included from /home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/main.hpp:35: -+/home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/./block_util.hpp:49:27: error: unused parameter 'block_store' [-Werror,-Wunused-parameter] -+ void operator()(Blks& block_store, int64_t start_block_index, int64_t delta) const -+ ^ -+/home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/./block_util.hpp:49:48: error: unused parameter 'start_block_index' [-Werror,-Wunused-parameter] -+ void operator()(Blks& block_store, int64_t start_block_index, int64_t delta) const -+ ^ -+/home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/mdds/include/mdds/./multi_type_vector/soa/./block_util.hpp:49:75: error: unused parameter 'delta' [-Werror,-Wunused-parameter] -+ void operator()(Blks& block_store, int64_t start_block_index, int64_t delta) const -+ ^ -+3 errors generated. -+--- -+ include/mdds/multi_type_vector/soa/block_util.hpp | 2 +- -+ 1 file changed, 1 insertion(+), 1 deletion(-) -+ -+diff --git a/include/mdds/multi_type_vector/soa/block_util.hpp b/include/mdds/multi_type_vector/soa/block_util.hpp -+index d10ee67..73ba27c 100644 -+--- a/include/mdds/multi_type_vector/soa/block_util.hpp -++++ b/include/mdds/multi_type_vector/soa/block_util.hpp -+@@ -46,7 +46,7 @@ namespace detail { -+ template<typename Blks, lu_factor_t F> -+ struct adjust_block_positions -+ { -+- void operator()(Blks& block_store, int64_t start_block_index, int64_t delta) const -++ void operator()(Blks& /*block_store*/, int64_t /*start_block_index*/, int64_t /*delta*/) const -+ { -+ static_assert(invalid_static_int<F>, "The loop-unrolling factor must be one of 0, 4, 8, 16, or 32."); -+ } -+-- -+2.25.1 -+ -diff --git a/external/mdds/remove-unused-parameters.patch.1 b/external/mdds/remove-unused-parameters.patch.1 -new file mode 100644 -index 000000000000..ebfc94fbf107 ---- /dev/null -+++ b/external/mdds/remove-unused-parameters.patch.1 -@@ -0,0 +1,93 @@ -+From 695e4c73fb55b1002237b0a22f13162c5c91aa68 Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <kohei.yoshida@gmail.com> -+Date: Mon, 1 Nov 2021 14:54:36 -0400 -+Subject: [PATCH] Remove unused parameter warnings in public headers. -+ -+--- -+ include/mdds/multi_type_vector/util.hpp | 10 ++++++++-- -+ include/mdds/trie_map_def.inl | 12 ++++++------ -+ 2 files changed, 14 insertions(+), 8 deletions(-) -+ -+diff --git a/include/mdds/multi_type_vector/util.hpp b/include/mdds/multi_type_vector/util.hpp -+index d21e302..a1cb1f9 100644 -+--- a/include/mdds/multi_type_vector/util.hpp -++++ b/include/mdds/multi_type_vector/util.hpp -+@@ -51,7 +51,10 @@ struct empty_event_func -+ * -+ * @param block pointer to the acquired element block instance. -+ */ -+- void element_block_acquired(const base_element_block* block) {} -++ void element_block_acquired(const base_element_block* block) -++ { -++ (void)block; -++ } -+ -+ /** -+ * Callback function for element block release events. This gets called -+@@ -61,7 +64,10 @@ struct empty_event_func -+ * -+ * @param block pointer to the element block instance being released. -+ */ -+- void element_block_released(const base_element_block* block) {} -++ void element_block_released(const base_element_block* block) -++ { -++ (void)block; -++ } -+ }; -+ -+ /** -+diff --git a/include/mdds/trie_map_def.inl b/include/mdds/trie_map_def.inl -+index 49e6de0..be18aec 100644 -+--- a/include/mdds/trie_map_def.inl -++++ b/include/mdds/trie_map_def.inl -+@@ -1004,7 +1004,7 @@ packed_trie_map<_KeyTrait,_ValueT>::packed_trie_map(const packed_trie_map& other -+ { -+ packed_trie_map& m_parent; -+ -+- void node(const uintptr_t* node_pos, key_unit_type c, size_t depth, size_t index_size) -++ void node(const uintptr_t* node_pos, key_unit_type /*c*/, size_t /*depth*/, size_t /*index_size*/) -+ { -+ uintptr_t value_ptr = *node_pos; -+ -+@@ -1315,13 +1315,13 @@ void packed_trie_map<_KeyTrait,_ValueT>::save_state(std::ostream& os) const -+ } -+ -+ /** first element in the buffer. */ -+- void root_offset(size_t i, const uintptr_t& v) const -++ void root_offset(size_t /*i*/, const uintptr_t& v) const -+ { -+ write(v); -+ } -+ -+ /** first element in each node section. */ -+- void node_value(size_t i, const uintptr_t& v) const -++ void node_value(size_t /*i*/, const uintptr_t& v) const -+ { -+ const value_type* p = reinterpret_cast<const value_type*>(v); -+ if (p) -+@@ -1348,19 +1348,19 @@ void packed_trie_map<_KeyTrait,_ValueT>::save_state(std::ostream& os) const -+ * second element in each node section that stores the size of -+ * the child data sub-section. -+ */ -+- void node_index_size(size_t i, const uintptr_t& v) const -++ void node_index_size(size_t /*i*/, const uintptr_t& v) const -+ { -+ write(v); -+ } -+ -+ /** element that stores the key value for child node. */ -+- void node_child_key(size_t i, const uintptr_t& v) const -++ void node_child_key(size_t /*i*/, const uintptr_t& v) const -+ { -+ write(v); -+ } -+ -+ /** element that stores the relative offset of the child node. */ -+- void node_child_offset(size_t i, const uintptr_t& v) const -++ void node_child_offset(size_t /*i*/, const uintptr_t& v) const -+ { -+ write(v); -+ } -+-- -+2.25.1 -+ -diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx -index a6c4d5ffa7c7..636706e0c234 100644 ---- a/sc/inc/mtvelements.hxx -+++ b/sc/inc/mtvelements.hxx -@@ -24,10 +24,10 @@ - #define MDDS_MULTI_TYPE_VECTOR_DEBUG 1 - #endif - --#include <mdds/multi_type_vector_macro.hpp> --#include <mdds/multi_type_vector.hpp> --#include <mdds/multi_type_vector_custom_func1.hpp> --#include <mdds/multi_type_vector_custom_func3.hpp> -+#include <mdds/multi_type_vector/macro.hpp> -+#include <mdds/multi_type_vector/soa/main.hpp> -+#include <mdds/multi_type_vector/custom_func1.hpp> -+#include <mdds/multi_type_vector/custom_func3.hpp> - - #include <unordered_map> - #include <memory> -@@ -97,21 +97,27 @@ public: - void element_block_released(const mdds::mtv::base_element_block* block); - }; - -+struct CellStoreTrait -+{ -+ using event_func = CellStoreEvent; -+ static constexpr mdds::mtv::lu_factor_t loop_unrolling = mdds::mtv::lu_factor_t::lu16; -+}; -+ - /// Cell note container - typedef mdds::mtv::custom_block_func1<sc::cellnote_block> CNoteFunc; --typedef mdds::multi_type_vector<CNoteFunc> CellNoteStoreType; -+typedef mdds::mtv::soa::multi_type_vector<CNoteFunc> CellNoteStoreType; - - /// Broadcaster storage container - typedef mdds::mtv::custom_block_func1<sc::broadcaster_block> BCBlkFunc; --typedef mdds::multi_type_vector<BCBlkFunc> BroadcasterStoreType; -+typedef mdds::mtv::soa::multi_type_vector<BCBlkFunc> BroadcasterStoreType; - - /// Cell text attribute container. - typedef mdds::mtv::custom_block_func1<sc::celltextattr_block> CTAttrFunc; --typedef mdds::multi_type_vector<CTAttrFunc> CellTextAttrStoreType; -+typedef mdds::mtv::soa::multi_type_vector<CTAttrFunc> CellTextAttrStoreType; - - /// Cell container - typedef mdds::mtv::custom_block_func3<sc::string_block, sc::edittext_block, sc::formula_block> CellFunc; --typedef mdds::multi_type_vector<CellFunc, CellStoreEvent> CellStoreType; -+typedef mdds::mtv::soa::multi_type_vector<CellFunc, CellStoreTrait> CellStoreType; - - /** - * Store position data for column array storage. -diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx -index 060456733fbc..935854c46e3f 100644 ---- a/sc/source/filter/inc/orcusinterface.hxx -+++ b/sc/source/filter/inc/orcusinterface.hxx -@@ -75,8 +75,8 @@ class ScOrcusRefResolver : public orcus::spreadsheet::iface::import_reference_re - public: - ScOrcusRefResolver( const ScOrcusGlobalSettings& rGS ); - -- orcus::spreadsheet::src_address_t resolve_address(const char* p, size_t n) override; -- orcus::spreadsheet::src_range_t resolve_range(const char* p, size_t n) override; -+ orcus::spreadsheet::src_address_t resolve_address(std::string_view address) override; -+ orcus::spreadsheet::src_range_t resolve_range(std::string_view range) override; - }; - - class ScOrcusNamedExpression : public orcus::spreadsheet::iface::import_named_expression -@@ -94,8 +94,8 @@ public: - void reset(); - - virtual void set_base_position(const orcus::spreadsheet::src_address_t& pos) override; -- virtual void set_named_expression(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) override; -- virtual void set_named_range(const char* p_name, size_t n_name, const char* p_range, size_t n_range) override; -+ virtual void set_named_expression(std::string_view name, std::string_view expression) override; -+ virtual void set_named_range(std::string_view name, std::string_view range) override; - virtual void commit() override; - }; - -@@ -107,19 +107,19 @@ class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_str - public: - ScOrcusSharedStrings(ScOrcusFactory& rFactory); - -- virtual size_t append(const char* s, size_t n) override; -- virtual size_t add(const char* s, size_t n) override; -+ virtual size_t append(std::string_view s) override; -+ virtual size_t add(std::string_view s) override; - - virtual void set_segment_bold(bool b) override; - virtual void set_segment_italic(bool b) override; - virtual void set_segment_font(size_t font_index) override; -- virtual void set_segment_font_name(const char* s, size_t n) override; -+ virtual void set_segment_font_name(std::string_view s) override; - virtual void set_segment_font_size(double point) override; - virtual void set_segment_font_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; -- virtual void append_segment(const char* s, size_t n) override; -+ virtual void append_segment(std::string_view s) override; - - virtual size_t commit_segments() override; - }; -@@ -133,7 +133,7 @@ public: - virtual 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; - -- virtual void set_formula(const char* p, size_t n) override; -+ virtual void set_formula(std::string_view formula) override; - - virtual void set_condition_type(orcus::spreadsheet::condition_type_t type) override; - -@@ -141,7 +141,7 @@ public: - - virtual void commit_condition() override; - -- virtual void set_icon_name(const char* p, size_t n) override; -+ virtual void set_icon_name(std::string_view name) override; - - virtual void set_databar_gradient(bool gradient) override; - -@@ -169,7 +169,7 @@ public: - - virtual void commit_entry() override; - -- virtual void set_range(const char* p, size_t n) override; -+ virtual void set_range(std::string_view range) override; - - virtual void set_range(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start, - orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end) override; -@@ -197,7 +197,7 @@ public: - - virtual void set_column(orcus::spreadsheet::col_t col) override; - -- virtual void append_column_match_value(const char* p, size_t n) override; -+ virtual void append_column_match_value(std::string_view value) override; - - virtual void commit_column() override; - -@@ -243,7 +243,7 @@ class ScOrcusFormula : public orcus::spreadsheet::iface::import_formula - bool mbShared; - - ResultType meResType; -- size_t mnResult; // result string index. -+ OUString maResult; // result string. - double mfResult; - - void reset(); -@@ -253,10 +253,10 @@ public: - virtual ~ScOrcusFormula() override; - - virtual void set_position(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override; -- virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; -+ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, std::string_view formula) override; - virtual void set_shared_formula_index(size_t index) override; - virtual void set_result_value(double value) override; -- virtual void set_result_string(size_t sindex) override; -+ virtual void set_result_string(std::string_view value) override; - virtual void set_result_empty() override; - virtual void set_result_bool(bool value) override; - virtual void commit() override; -@@ -282,9 +282,9 @@ public: - virtual ~ScOrcusArrayFormula() override; - - virtual void set_range(const orcus::spreadsheet::range_t& range) override; -- virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; -+ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, std::string_view formula) override; - virtual void set_result_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) override; -- virtual void set_result_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override; -+ virtual void set_result_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, std::string_view value) override; - virtual void set_result_empty(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override; - virtual void set_result_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override; - virtual void commit() override; -@@ -326,8 +326,8 @@ public: - virtual orcus::spreadsheet::iface::import_array_formula* get_array_formula() override; - - // Orcus import interface -- virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override; -- virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override; -+ virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, std::string_view value) override; -+ virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::string_id_t sindex) override; - virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) override; - virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override; - virtual void set_date_time( -@@ -491,7 +491,7 @@ public: - virtual void set_font_count(size_t n) override; - virtual void set_font_bold(bool b) override; - virtual void set_font_italic(bool b) override; -- virtual void set_font_name(const char* s, size_t n) override; -+ virtual void set_font_name(std::string_view name) override; - virtual void set_font_size(double point) override; - virtual void set_font_underline(orcus::spreadsheet::underline_t e) override; - virtual void set_font_underline_width(orcus::spreadsheet::underline_width_t e) override; -@@ -542,7 +542,7 @@ public: - // number format - virtual void set_number_format_count(size_t n) override; - virtual void set_number_format_identifier(size_t n) override; -- virtual void set_number_format_code(const char* s, size_t n) override; -+ virtual void set_number_format_code(std::string_view s) override; - virtual size_t commit_number_format() override; - - // cell style xf -@@ -574,10 +574,10 @@ public: - // cell style entry - - virtual void set_cell_style_count(size_t n) override; -- virtual void set_cell_style_name(const char* s, size_t n) override; -+ virtual void set_cell_style_name(std::string_view name) override; - virtual void set_cell_style_xf(size_t index) override; - virtual void set_cell_style_builtin(size_t index) override; -- virtual void set_cell_style_parent_name(const char* s, size_t n) override; -+ virtual void set_cell_style_parent_name(std::string_view name) override; - virtual size_t commit_cell_style() override; - }; - -@@ -639,8 +639,8 @@ public: - ScOrcusFactory(ScDocument& rDoc, bool bSkipDefaultStyles=false); - - virtual orcus::spreadsheet::iface::import_sheet* append_sheet( -- orcus::spreadsheet::sheet_t sheet_index, const char *sheet_name, size_t sheet_name_length) override; -- virtual orcus::spreadsheet::iface::import_sheet* get_sheet(const char *sheet_name, size_t sheet_name_length) override; -+ orcus::spreadsheet::sheet_t sheet_index, std::string_view sheet_name) override; -+ virtual orcus::spreadsheet::iface::import_sheet* get_sheet(std::string_view sheet_name) override; - virtual orcus::spreadsheet::iface::import_sheet* get_sheet(orcus::spreadsheet::sheet_t sheet_index) override; - virtual orcus::spreadsheet::iface::import_global_settings* get_global_settings() override; - virtual orcus::spreadsheet::iface::import_shared_strings* get_shared_strings() override; -diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx -index 0947b5dd650c..63926a72fc59 100644 ---- a/sc/source/filter/orcus/interface.cxx -+++ b/sc/source/filter/orcus/interface.cxx -@@ -161,9 +161,9 @@ orcus::spreadsheet::formula_grammar_t ScOrcusGlobalSettings::get_default_formula - ScOrcusRefResolver::ScOrcusRefResolver( const ScOrcusGlobalSettings& rGS ) : - mrGlobalSettings(rGS) {} - --os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n) -+os::src_address_t ScOrcusRefResolver::resolve_address(std::string_view address) - { -- OUString aStr(p, n, mrGlobalSettings.getTextEncoding()); -+ OUString aStr(address.data(), address.size(), mrGlobalSettings.getTextEncoding()); - - ScAddress aAddr; - aAddr.Parse(aStr, mrGlobalSettings.getDoc().getDoc(), -@@ -173,7 +173,7 @@ os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n) - if (!aAddr.IsValid()) - { - std::ostringstream os; -- os << "'" << std::string(p, n) << "' is not a valid address expression."; -+ os << "'" << address << "' is not a valid address expression."; - throw orcus::invalid_arg_error(os.str()); - } - -@@ -185,9 +185,9 @@ os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n) - return ret; - } - --os::src_range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n) -+os::src_range_t ScOrcusRefResolver::resolve_range(std::string_view range) - { -- OUString aStr(p, n, mrGlobalSettings.getTextEncoding()); -+ OUString aStr(range.data(), range.size(), mrGlobalSettings.getTextEncoding()); - - ScRange aRange; - aRange.Parse(aStr, mrGlobalSettings.getDoc().getDoc(), -@@ -197,7 +197,7 @@ os::src_range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n) - if (!aRange.IsValid()) - { - std::ostringstream os; -- os << "'" << std::string(p, n) << "' is not a valid range expression."; -+ os << "'" << range << "' is not a valid range expression."; - throw orcus::invalid_arg_error(os.str()); - } - -@@ -232,13 +232,13 @@ void ScOrcusNamedExpression::set_base_position(const orcus::spreadsheet::src_add - maBasePos.SetRow(pos.row); - } - --void ScOrcusNamedExpression::set_named_expression(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) -+void ScOrcusNamedExpression::set_named_expression(std::string_view name, std::string_view expression) - { -- maName = OUString(p_name, n_name, mrGlobalSettings.getTextEncoding()); -- maExpr = OUString(p_exp, n_exp, mrGlobalSettings.getTextEncoding()); -+ maName = OUString(name.data(), name.size(), mrGlobalSettings.getTextEncoding()); -+ maExpr = OUString(expression.data(), expression.size(), mrGlobalSettings.getTextEncoding()); - } - --void ScOrcusNamedExpression::set_named_range(const char* /*p_name*/, size_t /*n_name*/, const char* /*p_range*/, size_t /*n_range*/) -+void ScOrcusNamedExpression::set_named_range(std::string_view /*name*/, std::string_view /*range*/) - { - throw std::runtime_error("ScOrcusNamedExpression::set_named_range not implemented yet."); - } -@@ -309,9 +309,9 @@ ScOrcusFactory::ScOrcusFactory(ScDocument& rDoc, bool bSkipDefaultStyles) : - mnProgress(0) {} - - orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::append_sheet( -- orcus::spreadsheet::sheet_t sheet_index, const char* sheet_name, size_t sheet_name_length) -+ orcus::spreadsheet::sheet_t sheet_index, std::string_view sheet_name) - { -- OUString aTabName(sheet_name, sheet_name_length, maGlobalSettings.getTextEncoding()); -+ OUString aTabName(sheet_name.data(), sheet_name.size(), maGlobalSettings.getTextEncoding()); - - if (sheet_index == 0) - { -@@ -345,9 +345,9 @@ public: - - } - --orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(const char* sheet_name, size_t sheet_name_length) -+orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(std::string_view sheet_name) - { -- OUString aTabName(sheet_name, sheet_name_length, maGlobalSettings.getTextEncoding()); -+ OUString aTabName(sheet_name.data(), sheet_name.size(), maGlobalSettings.getTextEncoding()); - SCTAB nTab = maDoc.getSheetIndex(aTabName); - if (nTab < 0) - // Sheet by that name not found. -@@ -777,7 +777,7 @@ void ScOrcusConditionalFormat::set_condition_type(os::condition_type_t /*type*/) - SAL_INFO("sc.orcus.condformat", "set_condition_type"); - } - --void ScOrcusConditionalFormat::set_formula(const char* /*p*/, size_t /*n*/) -+void ScOrcusConditionalFormat::set_formula(std::string_view /*formula*/) - { - SAL_INFO("sc.orcus.condformat", "set_formula"); - } -@@ -793,7 +793,7 @@ void ScOrcusConditionalFormat::commit_condition() - SAL_INFO("sc.orcus.condformat", "commit_condition"); - } - --void ScOrcusConditionalFormat::set_icon_name(const char* /*p*/, size_t /*n*/) -+void ScOrcusConditionalFormat::set_icon_name(std::string_view /*name*/) - { - assert(meEntryType == ScFormatEntry::Type::Iconset); - SAL_INFO("sc.orcus.condformat", "set_icon_name"); -@@ -887,7 +887,7 @@ void ScOrcusConditionalFormat::commit_entry() - SAL_INFO("sc.orcus.condformat", "commit_entry"); - } - --void ScOrcusConditionalFormat::set_range(const char* /*p*/, size_t /*n*/) -+void ScOrcusConditionalFormat::set_range(std::string_view /*range*/) - { - SAL_INFO("sc.orcus.condformat", "set_range"); - } -@@ -930,7 +930,7 @@ void ScOrcusFormula::reset() - mnSharedFormulaIndex = 0; - mbShared = false; - meResType = ResultType::NotSet; -- mnResult = 0; -+ maResult.clear(); - mfResult = 0.0; - } - -@@ -942,7 +942,6 @@ ScOrcusFormula::ScOrcusFormula( ScOrcusSheet& rSheet ) : - mnSharedFormulaIndex(0), - mbShared(false), - meResType(ResultType::NotSet), -- mnResult(0), - mfResult(0.0) {} - - ScOrcusFormula::~ScOrcusFormula() {} -@@ -953,9 +952,9 @@ void ScOrcusFormula::set_position(os::row_t row, os::col_t col) - mnRow = row; - } - --void ScOrcusFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n) -+void ScOrcusFormula::set_formula(os::formula_grammar_t grammar, std::string_view formula) - { -- maFormula = OUString(p, n, mrSheet.getFactory().getGlobalSettings().getTextEncoding()); -+ maFormula = OUString(formula.data(), formula.size(), mrSheet.getFactory().getGlobalSettings().getTextEncoding()); - meGrammar = getCalcGrammarFromOrcus(grammar); - } - -@@ -971,10 +970,10 @@ void ScOrcusFormula::set_result_value(double value) - mfResult = value; - } - --void ScOrcusFormula::set_result_string(size_t sindex) -+void ScOrcusFormula::set_result_string(std::string_view value) - { - meResType = ResultType::String; -- mnResult = sindex; -+ maResult = OUString(value.data(), value.size(), mrSheet.getFactory().getGlobalSettings().getTextEncoding()); - } - - void ScOrcusFormula::set_result_empty() -@@ -1028,9 +1027,7 @@ void ScOrcusFormula::commit() - { - case ResultType::String: - { -- const OUString* pStr = rFactory.getString(mnResult); -- if (pStr) -- rFactory.pushFormulaResult(aPos, *pStr); -+ rFactory.pushFormulaResult(aPos, maResult); - break; - } - case ResultType::Value: -@@ -1073,10 +1070,10 @@ void ScOrcusArrayFormula::set_range(const os::range_t& range) - mnRowRange = range.last.row - range.first.column + 1; - } - --void ScOrcusArrayFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n) -+void ScOrcusArrayFormula::set_formula(os::formula_grammar_t grammar, std::string_view formula) - { - meGrammar = getCalcGrammarFromOrcus(grammar); -- maFormula = OUString(p, n, mrSheet.getFactory().getGlobalSettings().getTextEncoding()); -+ maFormula = OUString(formula.data(), formula.size(), mrSheet.getFactory().getGlobalSettings().getTextEncoding()); - } - - void ScOrcusArrayFormula::set_result_value(os::row_t /*row*/, os::col_t /*col*/, double /*value*/) -@@ -1084,7 +1081,7 @@ void ScOrcusArrayFormula::set_result_value(os::row_t /*row*/, os::col_t /*col*/, - // TODO : implement result cache for matrix - } - --void ScOrcusArrayFormula::set_result_string(os::row_t /*row*/, os::col_t /*col*/, size_t /*sindex*/) -+void ScOrcusArrayFormula::set_result_string(os::row_t /*row*/, os::col_t /*col*/, std::string_view /*value*/) - { - // TODO : implement result cache for matrix - } -@@ -1158,16 +1155,16 @@ os::iface::import_array_formula* ScOrcusSheet::get_array_formula() - return &maArrayFormula; - } - --void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n) -+void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, std::string_view value) - { -- OUString aVal(p, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aVal(value.data(), value.size(), mrFactory.getGlobalSettings().getTextEncoding()); - mrFactory.pushCellStoreAutoToken(ScAddress(col, row, mnTab), aVal); - cellInserted(); - } - --void ScOrcusSheet::set_string(os::row_t row, os::col_t col, size_t sindex) -+void ScOrcusSheet::set_string(os::row_t row, os::col_t col, os::string_id_t sindex) - { -- mrFactory.pushCellStoreToken(ScAddress(col, row, mnTab), uint32_t(sindex)); -+ mrFactory.pushCellStoreToken(ScAddress(col, row, mnTab), sindex); - cellInserted(); - } - -@@ -1257,15 +1254,15 @@ ScOrcusFactory& ScOrcusSheet::getFactory() - ScOrcusSharedStrings::ScOrcusSharedStrings(ScOrcusFactory& rFactory) : - mrFactory(rFactory) {} - --size_t ScOrcusSharedStrings::append(const char* s, size_t n) -+size_t ScOrcusSharedStrings::append(std::string_view s) - { -- OUString aNewString(s, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aNewString(s.data(), s.size(), mrFactory.getGlobalSettings().getTextEncoding()); - return mrFactory.appendString(aNewString); - } - --size_t ScOrcusSharedStrings::add(const char* s, size_t n) -+size_t ScOrcusSharedStrings::add(std::string_view s) - { -- OUString aNewString(s, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aNewString(s.data(), s.size(), mrFactory.getGlobalSettings().getTextEncoding()); - return mrFactory.addString(aNewString); - } - -@@ -1281,7 +1278,7 @@ void ScOrcusSharedStrings::set_segment_italic(bool /*b*/) - { - } - --void ScOrcusSharedStrings::set_segment_font_name(const char* /*s*/, size_t /*n*/) -+void ScOrcusSharedStrings::set_segment_font_name(std::string_view /*s*/) - { - } - -@@ -1296,9 +1293,9 @@ void ScOrcusSharedStrings::set_segment_font_color(orcus::spreadsheet::color_elem - { - } - --void ScOrcusSharedStrings::append_segment(const char* s, size_t n) -+void ScOrcusSharedStrings::append_segment(std::string_view s) - { -- maCurSegment.append(s, n); -+ maCurSegment.append(s.data(), s.size()); - } - - size_t ScOrcusSharedStrings::commit_segments() -@@ -1610,9 +1607,9 @@ void ScOrcusStyles::set_font_italic(bool b) - maCurrentFont.mbHasFontAttr = true; - } - --void ScOrcusStyles::set_font_name(const char* s, size_t n) -+void ScOrcusStyles::set_font_name(std::string_view name) - { -- OUString aName(s, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aName(name.data(), name.size(), mrFactory.getGlobalSettings().getTextEncoding()); - maCurrentFont.maName = aName; - maCurrentFont.mbHasFontAttr = true; - } -@@ -1985,9 +1982,9 @@ void ScOrcusStyles::set_number_format_identifier(size_t) - { - } - --void ScOrcusStyles::set_number_format_code(const char* s, size_t n) -+void ScOrcusStyles::set_number_format_code(std::string_view s) - { -- OUString aCode(s, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aCode(s.data(), s.size(), mrFactory.getGlobalSettings().getTextEncoding()); - maCurrentNumberFormat.maCode = aCode; - maCurrentNumberFormat.mbHasNumberFormatAttr = true; - } -@@ -2141,9 +2138,9 @@ void ScOrcusStyles::set_cell_style_count(size_t /*n*/) - // needed at all? - } - --void ScOrcusStyles::set_cell_style_name(const char* s, size_t n) -+void ScOrcusStyles::set_cell_style_name(std::string_view name) - { -- OUString aName(s, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aName(name.data(), name.size(), mrFactory.getGlobalSettings().getTextEncoding()); - maCurrentCellStyle.maName = aName; - } - -@@ -2158,9 +2155,9 @@ void ScOrcusStyles::set_cell_style_builtin(size_t index) - maCurrentCellStyle.mnBuiltInId = index; - } - --void ScOrcusStyles::set_cell_style_parent_name(const char* s, size_t n) -+void ScOrcusStyles::set_cell_style_parent_name(std::string_view name) - { -- OUString aParentName(s, n, mrFactory.getGlobalSettings().getTextEncoding()); -+ OUString aParentName(name.data(), name.size(), mrFactory.getGlobalSettings().getTextEncoding()); - maCurrentCellStyle.maParentName = aParentName; - } - -@@ -2215,9 +2212,9 @@ void ScOrcusAutoFilter::set_column(orcus::spreadsheet::col_t col) - SAL_INFO("sc.orcus.autofilter", "set_column: " << col); - } - --void ScOrcusAutoFilter::append_column_match_value(const char* p, size_t n) -+void ScOrcusAutoFilter::append_column_match_value(std::string_view value) - { -- OUString aString(p, n, mrGlobalSettings.getTextEncoding()); -+ OUString aString(value.data(), value.size(), mrGlobalSettings.getTextEncoding()); - SAL_INFO("sc.orcus.autofilter", "append_column_match_value: " << aString); - } - -diff --git a/sc/source/filter/orcus/orcusfiltersimpl.cxx b/sc/source/filter/orcus/orcusfiltersimpl.cxx -index f063bd3b5524..db2d5705d51e 100644 ---- a/sc/source/filter/orcus/orcusfiltersimpl.cxx -+++ b/sc/source/filter/orcus/orcusfiltersimpl.cxx -@@ -70,7 +70,7 @@ bool loadFileContent(SfxMedium& rMedium, orcus::iface::import_filter& filter) - - try - { -- filter.read_stream(aBuffer.getStr(), aBuffer.getLength()); -+ filter.read_stream(aBuffer); - } - catch (const std::exception& e) - { -@@ -148,14 +148,14 @@ bool ScOrcusFiltersImpl::importODS_Styles(ScDocument& rDoc, OUString& aPath) con - if (GetShortPathNameW(o3tl::toW(aPath.getStr()), buf, std::size(buf)) == 0) - throw; - aPath8 = OUStringToOString(o3tl::toU(buf), osl_getThreadTextEncoding()); -- content = std::make_unique<orcus::file_content>(aPath8.getStr()); -+ content = std::make_unique<orcus::file_content>(aPath8); - } - #else -- auto content = std::make_unique<orcus::file_content>(aPath8.getStr()); -+ auto content = std::make_unique<orcus::file_content>(aPath8); - #endif - ScOrcusFactory aFactory(rDoc); - ScOrcusStyles aStyles(aFactory); -- orcus::import_ods::read_styles(content->data(), content->size(), &aStyles); -+ orcus::import_ods::read_styles(content->str(), &aStyles); - } - catch (const std::exception& e) - { -diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx -index 1f3ee58220a0..9c73a75436bf 100644 ---- a/sc/source/filter/orcus/xmlcontext.cxx -+++ b/sc/source/filter/orcus/xmlcontext.cxx -@@ -63,7 +63,7 @@ OUString toString(const orcus::xml_structure_tree::entity_name& entity, const or - aBuf.appendAscii(aShortName.c_str()); - aBuf.append(':'); - } -- aBuf.append(OUString(entity.name.get(), entity.name.size(), RTL_TEXTENCODING_UTF8)); -+ aBuf.append(OUString(entity.name.data(), entity.name.size(), RTL_TEXTENCODING_UTF8)); - return aBuf.makeStringAndClear(); - } - -@@ -175,7 +175,7 @@ void ScOrcusXMLContextImpl::loadXMLStructure(weld::TreeView& rTreeCtrl, ScOrcusX - orcus::xml_structure_tree aXmlTree(cxt); - try - { -- aXmlTree.parse(&aStrm[0], aStrm.size()); -+ aXmlTree.parse(aStrm); - - TreeUpdateSwitch aSwitch(rTreeCtrl); - rTreeCtrl.clear(); -@@ -265,14 +265,14 @@ void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam) - std::for_each(rLink.maFieldPaths.begin(), rLink.maFieldPaths.end(), - [&filter](const OString& rFieldPath) - { -- filter.append_field_link(rFieldPath.getStr(), orcus::pstring()); -+ filter.append_field_link(rFieldPath, std::string_view()); - } - ); - - std::for_each(rLink.maRowGroups.begin(), rLink.maRowGroups.end(), - [&filter] (const OString& rRowGroup) - { -- filter.set_range_row_group(rRowGroup.getStr()); -+ filter.set_range_row_group(rRowGroup); - } - ); - -@@ -280,7 +280,7 @@ void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam) - } - - orcus::file_content content(path); -- filter.read_stream(content.data(), content.size()); -+ filter.read_stream(content.str()); - - aFactory.finalize(); - } -diff --git a/sfx2/source/control/emojiview.cxx b/sfx2/source/control/emojiview.cxx -index 7475263044e2..f125552296e4 100644 ---- a/sfx2/source/control/emojiview.cxx -+++ b/sfx2/source/control/emojiview.cxx -@@ -21,7 +21,6 @@ - - #include <orcus/json_document_tree.hpp> - #include <orcus/config.hpp> --#include <orcus/pstring.hpp> - #include <string> - #include <string_view> - #include <fstream> -@@ -122,7 +121,7 @@ void EmojiView::Populate() - aEmojiInfo.load(msJSONData, config); - - node root = aEmojiInfo.get_document_root(); -- std::vector<orcus::pstring> keys = root.keys(); -+ std::vector<std::string_view> keys = root.keys(); - - for (auto const& key : keys) - { -@@ -131,7 +130,7 @@ void EmojiView::Populate() - if(value.type() == orcus::json::node_t::object) - { - // iterate each element to get the keys -- std::vector<orcus::pstring> aEmojiParams = value.keys(); -+ std::vector<std::string_view> aEmojiParams = value.keys(); - OUString sTitle, sCategory, sName; - bool bDuplicate = false; - -@@ -142,15 +141,15 @@ void EmojiView::Populate() - // get values of parameters in AppendItem() function - if(emojiParam == "unicode") - { -- sTitle = OStringToOUString(std::string_view( prop.string_value().get(), prop.string_value().size() ), RTL_TEXTENCODING_UTF8); -+ sTitle = OStringToOUString(prop.string_value(), RTL_TEXTENCODING_UTF8); - } - else if(emojiParam == "category") - { -- sCategory = OStringToOUString(std::string_view( prop.string_value().get(), prop.string_value().size() ), RTL_TEXTENCODING_UTF8); -+ sCategory = OStringToOUString(prop.string_value(), RTL_TEXTENCODING_UTF8); - } - else if(emojiParam == "name") - { -- sName = OStringToOUString(std::string_view( prop.string_value().get(), prop.string_value().size() ), RTL_TEXTENCODING_UTF8); -+ sName = OStringToOUString(prop.string_value(), RTL_TEXTENCODING_UTF8); - } - else if(emojiParam == "duplicate") - { -diff --git a/solenv/flatpak-manifest.in b/solenv/flatpak-manifest.in -index 295b31b1d3ae..1460ae5b9a5d 100644 ---- a/solenv/flatpak-manifest.in -+++ b/solenv/flatpak-manifest.in -@@ -397,11 +397,11 @@ - "dest-filename": "mariadb-connector-c-3.1.8-src.tar.gz" - }, - { -- "url": "https://dev-www.libreoffice.org/src/mdds-1.7.0.tar.bz2", -- "sha256": "a66a2a8293a3abc6cd9baff7c236156e2666935cbfb69a15d64d38141638fecf", -+ "url": "https://dev-www.libreoffice.org/src/mdds-2.0.0.tar.bz2", -+ "sha256": "5a0fb2dd88a6420e0a69ec4c7259bcd1fe8f4a80b232c150e11f3da4c68236d7", - "type": "file", - "dest": "external/tarballs", -- "dest-filename": "mdds-1.7.0.tar.bz2" -+ "dest-filename": "mdds-2.0.0.tar.bz2" - }, - { - "url": "https://dev-www.libreoffice.org/src/neon-0.31.2.tar.gz", -@@ -425,11 +425,11 @@ - "dest-filename": "openldap-2.4.59.tgz" - }, - { -- "url": "https://dev-www.libreoffice.org/src/liborcus-0.16.1.tar.bz2", -- "sha256": "c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4", -+ "url": "https://dev-www.libreoffice.org/src/liborcus-0.17.0.tar.bz2", -+ "sha256": "2ef9d2b5ee374c683cf631b78356b110510ab895788a68d778e225d8c4176d1b", - "type": "file", - "dest": "external/tarballs", -- "dest-filename": "liborcus-0.16.1.tar.bz2" -+ "dest-filename": "liborcus-0.17.0.tar.bz2" - }, - { - "url": "https://dev-www.libreoffice.org/src/poppler-21.11.0.tar.xz", --- -cgit v1.2.1 - -From 23214f1c14c4d3981dad90b6e3ba6e4ca2c8c30e Mon Sep 17 00:00:00 2001 -From: Kohei Yoshida <kohei@libreoffice.org> -Date: Thu, 4 Nov 2021 09:58:35 -0400 -Subject: Blind fix for ubusan error - -from https://ci.libreoffice.org/job/lo_ubsan/2189/ - - [_RUN_____] Test::testCellBroadcaster -[...] - ==24129==ERROR: AddressSanitizer: heap-use-after-free on address 0x61700006c470 at pc 0x2ab6e05145e4 bp 0x7ffecaa28d70 sp 0x7ffecaa28d68 - READ of size 8 at 0x61700006c470 thread T0 - #0 0x2ab6e05145e3 in sc::CellStoreEvent::element_block_released(mdds::mtv::base_element_block const*) /sc/source/core/data/mtvelements.cxx:47:13 - #1 0x2ab6de749427 in mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreTrait>::delete_element_block(unsigned long) /workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:403:17 - #2 0x2ab6de74921b in mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreTrait>::delete_element_blocks(unsigned long, unsigned long) /workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:412:9 - #3 0x2ab6de733225 in mdds::mtv::soa::multi_type_vector<mdds::mtv::custom_block_func3<mdds::mtv::default_element_block<52, svl::SharedString>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell> >, sc::CellStoreTrait>::clear() /workdir/UnpackedTarball/mdds/include/mdds/multi_type_vector/soa/main_def.inl:1088:5 - #4 0x2ab6df024987 in ScColumn::FreeAll() /sc/source/core/data/column3.cxx:161:13 - #5 0x2ab6decff134 in ScColumn::~ScColumn() /sc/source/core/data/column.cxx:97:5 - #6 0x2ab6decf708a in o3tl::default_delete<ScColumn>::operator()(ScColumn*) /include/o3tl/deleter.hxx:55:38 - #7 0x2ab6decf5999 in std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> >::reset(ScColumn*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:376:4 - #8 0x2ab6decf4c8e in ScColContainer::Clear() /sc/source/core/data/colcontainer.cxx:42:21 - #9 0x2ab6decf4a84 in ScColContainer::~ScColContainer() /sc/source/core/data/colcontainer.cxx:33:5 - #10 0x2ab6e070e3c6 in ScTable::~ScTable() /sc/source/core/data/table1.cxx:344:1 - #11 0x2ab6df50abba in o3tl::default_delete<ScTable>::operator()(ScTable*) /include/o3tl/deleter.hxx:55:38 - #12 0x2ab6df4c3483 in std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >::~unique_ptr() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:268:4 - #13 0x2ab6df4dc87c in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:98:19 - #14 0x2ab6df4dc7c6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:108:6 - #15 0x2ab6df4dc744 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:136:7 - #16 0x2ab6df4dc488 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:206:7 - #17 0x2ab6df50df73 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::_M_erase_at_end(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1513:2 - #18 0x2ab6df70f5b0 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1248:9 - #19 0x2ab6df70b5d4 in std::__debug::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/debug/vector:699:9 - #20 0x2ab6df704cb2 in ScDocument::Clear(bool) /sc/source/core/data/documen9.cxx:506:12 - #21 0x2ab6df490652 in ScDocument::~ScDocument() /sc/source/core/data/documen2.cxx:363:5 - #22 0x2ab6e363315d in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2925:1 - #23 0x2ab6e363333b in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 - #24 0x2ab6e3633514 in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 - #25 0x2ab6de4f105d in SvRefBase::ReleaseRef() /include/tools/ref.hxx:163:29 - #26 0x2ab6de4a6259 in tools::SvRef<ScDocShell>::clear() /include/tools/ref.hxx:64:22 - #27 0x2ab6de2b1aaa in Test::closeDocShell(tools::SvRef<ScDocShell>&) /sc/qa/unit/ucalc.cxx:365:18 - #28 0x2ab6de2b2102 in Test::tearDown() /sc/qa/unit/ucalc.cxx:380:5 - #29 0x2ab6de543787 in CppUnit::TestCaller<Test>::tearDown() /workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:185:15 - #30 0x2ab69335765a in CppUnit::TestCaseMethodFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 - #31 0x2ab6ae4f3957 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /test/source/vclbootstrapprotector.cxx:46:14 - #32 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 - #33 0x2ab6a2974ff7 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:78:12 - #34 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 - #35 0x2ab69f4479c2 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:62:16 - #36 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 - #37 0x2ab6932bfff4 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 - #38 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 - #39 0x2ab69332272c in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 - #40 0x2ab6933c1b39 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 - #41 0x2ab693356092 in CppUnit::TestCase::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:95:11 - #42 0x2ab693359af2 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 - #43 0x2ab693358cea in CppUnit::TestComposite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 - #44 0x2ab693359af2 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 - #45 0x2ab693358cea in CppUnit::TestComposite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 - #46 0x2ab6933ef6ce in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 - #47 0x2ab6933c059e in CppUnit::TestResult::runTest(CppUnit::Test*) /workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 - #48 0x2ab6933f062b in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 - #49 0x4ff1d5 in (anonymous namespace)::ProtectedFixtureFunctor::run() const /sal/cppunittester/cppunittester.cxx:329:20 - #50 0x4fbbc5 in main2() /sal/cppunittester/cppunittester.cxx:478:16 - #51 0x4fa052 in sal_main() /sal/cppunittester/cppunittester.cxx:614:14 - #52 0x4f9e9e in main /sal/cppunittester/cppunittester.cxx:609:1 - #53 0x2ab69517d554 in __libc_start_main (/lib64/libc.so.6+0x22554) - #54 0x425894 in _start (/workdir/LinkTarget/Executable/cppunittester+0x425894) - - 0x61700006c470 is located 752 bytes inside of 768-byte region [0x61700006c180,0x61700006c480) - freed by thread T0 here: - #0 0x4f7548 in operator delete(void*, unsigned long) /home/tdf/lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_new_delete.cc:172 - #1 0x2ab6decf709b in o3tl::default_delete<ScColumn>::operator()(ScColumn*) /include/o3tl/deleter.hxx:55:38 - #2 0x2ab6decf5999 in std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn> >::reset(ScColumn*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:376:4 - #3 0x2ab6decf4c8e in ScColContainer::Clear() /sc/source/core/data/colcontainer.cxx:42:21 - #4 0x2ab6decf4a84 in ScColContainer::~ScColContainer() /sc/source/core/data/colcontainer.cxx:33:5 - #5 0x2ab6e070e3c6 in ScTable::~ScTable() /sc/source/core/data/table1.cxx:344:1 - #6 0x2ab6df50abba in o3tl::default_delete<ScTable>::operator()(ScTable*) /include/o3tl/deleter.hxx:55:38 - #7 0x2ab6df4c3483 in std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >::~unique_ptr() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:268:4 - #8 0x2ab6df4dc87c in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:98:19 - #9 0x2ab6df4dc7c6 in void std::_Destroy_aux<false>::__destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:108:6 - #10 0x2ab6df4dc744 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*>(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:136:7 - #11 0x2ab6df4dc488 in void std::_Destroy<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > >&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_construct.h:206:7 - #12 0x2ab6df50df73 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::_M_erase_at_end(std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >*) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1513:2 - #13 0x2ab6df70f5b0 in std::__cxx1998::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_vector.h:1248:9 - #14 0x2ab6df70b5d4 in std::__debug::vector<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> >, std::allocator<std::unique_ptr<ScTable, o3tl::default_delete<ScTable> > > >::clear() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/debug/vector:699:9 - #15 0x2ab6df704cb2 in ScDocument::Clear(bool) /sc/source/core/data/documen9.cxx:506:12 - #16 0x2ab6df490652 in ScDocument::~ScDocument() /sc/source/core/data/documen2.cxx:363:5 - #17 0x2ab6e363315d in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2925:1 - #18 0x2ab6e363333b in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 - #19 0x2ab6e3633514 in ScDocShell::~ScDocShell() /sc/source/ui/docshell/docsh.cxx:2894:1 - #20 0x2ab6de4f105d in SvRefBase::ReleaseRef() /include/tools/ref.hxx:163:29 - #21 0x2ab6de4a6259 in tools::SvRef<ScDocShell>::clear() /include/tools/ref.hxx:64:22 - #22 0x2ab6de2b1aaa in Test::closeDocShell(tools::SvRef<ScDocShell>&) /sc/qa/unit/ucalc.cxx:365:18 - #23 0x2ab6de2b2102 in Test::tearDown() /sc/qa/unit/ucalc.cxx:380:5 - #24 0x2ab6de543787 in CppUnit::TestCaller<Test>::tearDown() /workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:185:15 - #25 0x2ab69335765a in CppUnit::TestCaseMethodFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 - #26 0x2ab6ae4f3957 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /test/source/vclbootstrapprotector.cxx:46:14 - #27 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 - #28 0x2ab6a2974ff7 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) /unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:78:12 - #29 0x2ab693328cd7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const /workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 - -during CppunitTest_sc_ucalc - -Change-Id: I778984beb9d1e355d3b8f9617b193424f332a32e -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124709 -Tested-by: Jenkins -Reviewed-by: Kohei Yoshida <kohei@libreoffice.org> ---- - sc/inc/column.hxx | 2 -- - sc/inc/mtvelements.hxx | 3 +++ - sc/source/core/data/column.cxx | 3 +-- - sc/source/core/data/column3.cxx | 2 ++ - sc/source/core/data/mtvelements.cxx | 5 +++++ - 5 files changed, 11 insertions(+), 4 deletions(-) - -diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx -index 6300fe70bca1..4c08e7b41479 100644 ---- a/sc/inc/column.hxx -+++ b/sc/inc/column.hxx -@@ -123,8 +123,6 @@ class ScColumn - // Broadcasters for formula cells. - sc::BroadcasterStoreType maBroadcasters; - -- sc::CellStoreEvent maCellsEvent; -- - // Cell values. - sc::CellStoreType maCells; - -diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx -index 636706e0c234..05a0970bd64d 100644 ---- a/sc/inc/mtvelements.hxx -+++ b/sc/inc/mtvelements.hxx -@@ -95,6 +95,9 @@ public: - - void element_block_acquired(const mdds::mtv::base_element_block* block); - void element_block_released(const mdds::mtv::base_element_block* block); -+ -+ /** Stop processing events. */ -+ void stop(); - }; - - struct CellStoreTrait -diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx -index 4bd91f60f3a0..3b148dda6b88 100644 ---- a/sc/source/core/data/column.cxx -+++ b/sc/source/core/data/column.cxx -@@ -82,8 +82,7 @@ ScColumn::ScColumn(ScSheetLimits const & rSheetLimits) : - maCellTextAttrs(rSheetLimits.GetMaxRowCount()), - maCellNotes(rSheetLimits.GetMaxRowCount()), - maBroadcasters(rSheetLimits.GetMaxRowCount()), -- maCellsEvent(this), -- maCells(maCellsEvent), -+ maCells(sc::CellStoreEvent(this)), - mnBlkCountFormula(0), - nCol( 0 ), - nTab( 0 ), -diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx -index 9bbd9c1bca77..4a062a476a32 100644 ---- a/sc/source/core/data/column3.cxx -+++ b/sc/source/core/data/column3.cxx -@@ -156,6 +156,8 @@ void ScColumn::Delete( SCROW nRow ) - - void ScColumn::FreeAll() - { -+ maCells.event_handler().stop(); -+ - auto maxRowCount = GetDoc().GetSheetLimits().GetMaxRowCount(); - // Keep a logical empty range of 0-rDoc.MaxRow() at all times. - maCells.clear(); -diff --git a/sc/source/core/data/mtvelements.cxx b/sc/source/core/data/mtvelements.cxx -index c7d7e52bfccf..ee6c9cf1499c 100644 ---- a/sc/source/core/data/mtvelements.cxx -+++ b/sc/source/core/data/mtvelements.cxx -@@ -51,6 +51,11 @@ void CellStoreEvent::element_block_released(const mdds::mtv::base_element_block* - } - } - -+void CellStoreEvent::stop() -+{ -+ mpCol = nullptr; -+} -+ - ColumnBlockPositionSet::ColumnBlockPositionSet(ScDocument& rDoc) : mrDoc(rDoc) {} - - ColumnBlockPosition* ColumnBlockPositionSet::getBlockPosition(SCTAB nTab, SCCOL nCol) --- -cgit v1.2.1 - -From 037d5454a39260635aeb7064ac32c7a485af8197 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> -Date: Wed, 17 Nov 2021 10:27:03 +0000 -Subject: crashtesting: crash on passing null to std::string_view -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -with many documents, e.g. moz377878-1.xhtml - -https: //gitlab.com/orcus/orcus/-/merge_requests/113 -Change-Id: I085543ebb28c02a1c0ec487b357f6e0a83004363 -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125378 -Tested-by: Caolán McNamara <caolanm@redhat.com> -Reviewed-by: Caolán McNamara <caolanm@redhat.com> ---- - external/liborcus/UnpackedTarball_liborcus.mk | 4 ++++ - ...crash-on-passing-null-to-std-string_vie.patch.1 | 27 ++++++++++++++++++++++ - 2 files changed, 31 insertions(+) - create mode 100644 external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 - -diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk -index 3d2cec42e55e..86c30431e05d 100644 ---- a/external/liborcus/UnpackedTarball_liborcus.mk -+++ b/external/liborcus/UnpackedTarball_liborcus.mk -@@ -15,6 +15,9 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,liborcus,1)) - - $(eval $(call gb_UnpackedTarball_update_autoconf_configs,liborcus)) - -+# crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 submitted as -+# https://gitlab.com/orcus/orcus/-/merge_requests/113 -+ - $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ - external/liborcus/rpath.patch.0 \ - external/liborcus/gcc9.patch.0 \ -@@ -37,6 +37,7 @@ - external/liborcus/unused-variables.patch.1 \ - external/liborcus/boost-filesystem.patch.1 \ - external/liborcus/std-get-busted.patch.1 \ -+ external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 \ - external/liborcus/forcepoint-83.patch.1 \ - external/liborcus/forcepoint-84.patch.1 \ - external/liborcus/forcepoint-87.patch.1 \ -diff --git a/external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 b/external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 -new file mode 100644 -index 000000000000..97e7b8366fde ---- /dev/null -+++ b/external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 -@@ -0,0 +1,27 @@ -+From ed21a93e132b968d8cd91aa080e1f90e980267c7 Mon Sep 17 00:00:00 2001 -+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> -+Date: Wed, 17 Nov 2021 10:21:32 +0000 -+Subject: [PATCH] crashtesting: crash on passing null to std::string_view -+ -+with many documents, e.g. moz377878-1.xhtml -+--- -+ src/parser/xml_namespace.cpp | 3 ++- -+ 1 file changed, 2 insertions(+), 1 deletion(-) -+ -+diff --git a/src/parser/xml_namespace.cpp b/src/parser/xml_namespace.cpp -+index 07942563..66077d9c 100644 -+--- a/src/parser/xml_namespace.cpp -++++ b/src/parser/xml_namespace.cpp -+@@ -223,7 +223,8 @@ xmlns_id_t xmlns_context::push(std::string_view key, std::string_view uri) -+ #endif -+ mp_impl->m_trim_all_ns = true; -+ -+- std::string_view uri_interned = mp_impl->repo->intern(uri); -++ xmlns_id_t id = mp_impl->repo->intern(uri); -++ std::string_view uri_interned = id ? std::string_view(id) : std::string_view(); -+ -+ if (key.empty()) -+ { -+-- -+2.33.1 -+ --- -cgit v1.2.1 - -From dd4d715ef775db456c0c9653a3d9f9b439e82e8e Mon Sep 17 00:00:00 2001 -From: Kohei Yoshida <kohei@libreoffice.org> -Date: Fri, 10 Dec 2021 22:02:24 -0500 -Subject: Update liborcus to 0.17.2. - -Change-Id: I76c0d57da63c1e35f80b13071793dbbb27cb218a -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126655 -Tested-by: Jenkins -Reviewed-by: Kohei Yoshida <kohei@libreoffice.org> -(cherry picked from commit aadbac5467bb6ab768f87ed6ec003c55159d54aa) -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126886 ---- - download.lst | 4 +- - external/liborcus/Library_orcus.mk | 3 + - external/liborcus/UnpackedTarball_liborcus.mk | 4 - - external/liborcus/boost-filesystem.patch.1 | 41 - - ...crash-on-passing-null-to-std-string_vie.patch.1 | 27 - - external/liborcus/remove-unused-parameters.patch.1 | 1209 -------------------- - external/liborcus/unused-variables.patch.1 | 24 - - external/liborcus/windows-constants-hack.patch | 4 +- - sc/source/filter/orcus/interface.cxx | 7 +- - 9 files changed, 10 insertions(+), 1313 deletions(-) - delete mode 100644 external/liborcus/boost-filesystem.patch.1 - delete mode 100644 external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 - delete mode 100644 external/liborcus/remove-unused-parameters.patch.1 - delete mode 100644 external/liborcus/unused-variables.patch.1 - -diff --git a/download.lst b/download.lst -index 8dd656fd5de9..b2ca26814d5b 100644 ---- a/download.lst -+++ b/download.lst -@@ -204,8 +204,8 @@ export OPENLDAP_SHA256SUM := 99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217 - export OPENLDAP_TARBALL := openldap-2.4.59.tgz - export OPENSSL_SHA256SUM := 0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1 - export OPENSSL_TARBALL := openssl-1.1.1l.tar.gz --export ORCUS_SHA256SUM := 2ef9d2b5ee374c683cf631b78356b110510ab895788a68d778e225d8c4176d1b --export ORCUS_TARBALL := liborcus-0.17.0.tar.bz2 -+export ORCUS_SHA256SUM := 2a86c405a5929f749b27637509596421d46805753364ab258b035fd01fbde143 -+export ORCUS_TARBALL := liborcus-0.17.2.tar.bz2 - export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d - export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz - export PDFIUM_SHA256SUM := 26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304 -diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk -index 0a0ca582882a..3c318797a031 100644 ---- a/external/liborcus/Library_orcus.mk -+++ b/external/liborcus/Library_orcus.mk -@@ -132,12 +132,15 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ - UnpackedTarball/liborcus/src/liborcus/xlsx_workbook_context \ - UnpackedTarball/liborcus/src/liborcus/xml_context_base \ - UnpackedTarball/liborcus/src/liborcus/xml_context_global \ -+ UnpackedTarball/liborcus/src/liborcus/xml_element_validator \ -+ UnpackedTarball/liborcus/src/liborcus/xml_empty_context \ - UnpackedTarball/liborcus/src/liborcus/xml_map_tree \ - UnpackedTarball/liborcus/src/liborcus/xml_simple_stream_handler \ - UnpackedTarball/liborcus/src/liborcus/xml_stream_handler \ - UnpackedTarball/liborcus/src/liborcus/xml_stream_parser \ - UnpackedTarball/liborcus/src/liborcus/xml_structure_mapper \ - UnpackedTarball/liborcus/src/liborcus/xml_structure_tree \ -+ UnpackedTarball/liborcus/src/liborcus/xml_util \ - UnpackedTarball/liborcus/src/liborcus/xpath_parser \ - UnpackedTarball/liborcus/src/liborcus/yaml_document_tree \ - )) -diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk -index 86c30431e05d..87e462e33d91 100644 ---- a/external/liborcus/UnpackedTarball_liborcus.mk -+++ b/external/liborcus/UnpackedTarball_liborcus.mk -@@ -33,11 +33,7 @@ - external/liborcus/libtool.patch.0 \ - external/liborcus/fix-pch.patch.0 \ - external/liborcus/liborcus_newline.patch.1 \ -- external/liborcus/remove-unused-parameters.patch.1 \ -- external/liborcus/unused-variables.patch.1 \ -- external/liborcus/boost-filesystem.patch.1 \ - external/liborcus/std-get-busted.patch.1 \ -- external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 \ - external/liborcus/forcepoint-83.patch.1 \ - external/liborcus/forcepoint-84.patch.1 \ - external/liborcus/forcepoint-87.patch.1 \ -diff --git a/external/liborcus/boost-filesystem.patch.1 b/external/liborcus/boost-filesystem.patch.1 -deleted file mode 100644 -index 14128b4e1c67..000000000000 ---- a/external/liborcus/boost-filesystem.patch.1 -+++ /dev/null -@@ -1,41 +0,0 @@ --From e44737bad582fa2a05a23820e49d7930db710412 Mon Sep 17 00:00:00 2001 --From: Kohei Yoshida <kohei.yoshida@gmail.com> --Date: Tue, 2 Nov 2021 21:33:19 -0400 --Subject: [PATCH] Try using boost::filesystem instead of std::filesystem. -- --std::filesystem still seems unreliable. ----- -- src/parser/stream.cpp | 6 +++--- -- 1 file changed, 3 insertions(+), 3 deletions(-) -- --diff --git a/src/parser/stream.cpp b/src/parser/stream.cpp --index 09855300..00395f59 100644 ----- a/src/parser/stream.cpp --+++ b/src/parser/stream.cpp --@@ -17,12 +17,12 @@ -- #include <locale> -- #include <codecvt> -- #include <iostream> ---#include <filesystem> -- --+#include <boost/filesystem.hpp> -- #include <boost/interprocess/file_mapping.hpp> -- #include <boost/interprocess/mapped_region.hpp> -- ---namespace fs = std::filesystem; --+namespace fs = boost::filesystem; -- namespace bip = boost::interprocess; -- -- namespace orcus { --@@ -162,7 +162,7 @@ struct file_content::impl -- impl() : content_size(0), content(nullptr) {} -- -- impl(std::string_view filepath) : --- content_size(fs::file_size(filepath)), --+ content_size(fs::file_size(std::string{filepath}.c_str())), -- mapped_file(std::string{filepath}.c_str(), bip::read_only), -- mapped_region(mapped_file, bip::read_only, 0, content_size), -- content(nullptr) ---- --2.25.1 -- -diff --git a/external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 b/external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 -deleted file mode 100644 -index 97e7b8366fde..000000000000 ---- a/external/liborcus/crashtesting-crash-on-passing-null-to-std-string_vie.patch.1 -+++ /dev/null -@@ -1,27 +0,0 @@ --From ed21a93e132b968d8cd91aa080e1f90e980267c7 Mon Sep 17 00:00:00 2001 --From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> --Date: Wed, 17 Nov 2021 10:21:32 +0000 --Subject: [PATCH] crashtesting: crash on passing null to std::string_view -- --with many documents, e.g. moz377878-1.xhtml ----- -- src/parser/xml_namespace.cpp | 3 ++- -- 1 file changed, 2 insertions(+), 1 deletion(-) -- --diff --git a/src/parser/xml_namespace.cpp b/src/parser/xml_namespace.cpp --index 07942563..66077d9c 100644 ----- a/src/parser/xml_namespace.cpp --+++ b/src/parser/xml_namespace.cpp --@@ -223,7 +223,8 @@ xmlns_id_t xmlns_context::push(std::string_view key, std::string_view uri) -- #endif -- mp_impl->m_trim_all_ns = true; -- --- std::string_view uri_interned = mp_impl->repo->intern(uri); --+ xmlns_id_t id = mp_impl->repo->intern(uri); --+ std::string_view uri_interned = id ? std::string_view(id) : std::string_view(); -- -- if (key.empty()) -- { ---- --2.33.1 -- -diff --git a/external/liborcus/remove-unused-parameters.patch.1 b/external/liborcus/remove-unused-parameters.patch.1 -deleted file mode 100644 -index 251ed804acaf..000000000000 ---- a/external/liborcus/remove-unused-parameters.patch.1 -+++ /dev/null -@@ -1,1209 +0,0 @@ --From 5bb64db5ecfd1dc3be3304092f4bdebff54deae5 Mon Sep 17 00:00:00 2001 --From: Kohei Yoshida <kohei.yoshida@gmail.com> --Date: Tue, 2 Nov 2021 19:33:29 -0400 --Subject: [PATCH] Remove unused parameter warnings. -- ----- -- doc_example/json_parser_1.cpp | 4 +- -- ...preadsheet_doc_2_sheets_no_string_pool.cpp | 22 ++++----- -- .../spreadsheet_doc_2_sheets_with_formula.cpp | 47 +++++++++---------- -- ...eadsheet_doc_2_sheets_with_string_pool.cpp | 40 +++++++--------- -- doc_example/xml_mapping_1.cpp | 2 +- -- src/liborcus/css_document_tree.cpp | 3 ++ -- src/liborcus/dom_tree.cpp | 2 +- -- src/liborcus/gnumeric_cell_context_test.cpp | 14 +++--- -- src/liborcus/json_document_tree.cpp | 6 +-- -- src/liborcus/json_structure_mapper.cpp | 2 +- -- src/liborcus/json_structure_tree.cpp | 4 +- -- src/liborcus/mock_spreadsheet.cpp | 14 +++--- -- src/liborcus/ods_dde_links_context.cpp | 10 ++-- -- src/liborcus/opc_context.cpp | 16 +++---- -- src/liborcus/orcus_json.cpp | 4 +- -- src/liborcus/orcus_xml_map_def.cpp | 4 +- -- src/liborcus/spreadsheet_interface.cpp | 4 +- -- src/liborcus/xls_xml_context.cpp | 12 ++--- -- src/liborcus/xls_xml_detection_handler.cpp | 2 +- -- src/liborcus/xlsx_drawing_context.cpp | 2 +- -- src/liborcus/xlsx_sheet_context.cpp | 2 +- -- src/liborcus/xlsx_sheet_context_test.cpp | 8 ++-- -- src/liborcus/xlsx_table_context.cpp | 2 +- -- src/liborcus/xml_structure_tree.cpp | 6 +-- -- src/liborcus/xpath_parser_test.cpp | 2 +- -- src/orcus_env_dump.cpp | 2 +- -- src/orcus_test_json_mapped.cpp | 2 +- -- src/orcus_test_xml.cpp | 2 +- -- src/orcus_test_xml_mapped.cpp | 2 +- -- src/parser/sax_token_parser_test.cpp | 2 +- -- src/parser/sax_token_parser_thread.cpp | 2 +- -- src/parser/utf8.cpp | 2 +- -- src/parser/utf8_test.cpp | 2 +- -- src/parser/xml_writer_test.cpp | 2 +- -- src/python/cell.cpp | 2 +- -- src/python/document.cpp | 4 +- -- src/python/formula_tokens.cpp | 2 +- -- src/python/global.cpp | 2 +- -- src/python/json.cpp | 4 +- -- src/python/named_expression.cpp | 2 +- -- src/python/named_expressions.cpp | 4 +- -- src/python/sheet.cpp | 6 +-- -- src/python/sheet_rows.cpp | 2 +- -- src/spreadsheet/factory_sheet.cpp | 18 +++---- -- src/spreadsheet/sheet_impl.cpp | 2 +- -- 45 files changed, 143 insertions(+), 157 deletions(-) -- --diff --git a/doc_example/json_parser_1.cpp b/doc_example/json_parser_1.cpp --index 6fc6de12..832e5176 100644 ----- a/doc_example/json_parser_1.cpp --+++ b/doc_example/json_parser_1.cpp --@@ -8,12 +8,12 @@ using namespace std; -- class json_parser_handler : public orcus::json_handler -- { -- public: --- void object_key(const char* p, size_t len, bool transient) --+ void object_key(const char* p, size_t len, bool /*transient*/) -- { -- cout << "object key: " << std::string_view(p, len) << endl; -- } -- --- void string(const char* p, size_t len, bool transient) --+ void string(const char* p, size_t len, bool /*transient*/) -- { -- cout << "string: " << std::string_view(p, len) << endl; -- } --diff --git a/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp b/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp --index 63ffacc3..0aa86caf 100644 ----- a/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp --+++ b/doc_example/spreadsheet_doc_2_sheets_no_string_pool.cpp --@@ -64,22 +64,17 @@ public: -- } -- -- // We don't implement these methods for now. --- virtual void set_auto(ss::row_t row, ss::col_t col, std::string_view s) override {} --+ virtual void set_auto(ss::row_t, ss::col_t, std::string_view) override {} -- --- virtual void set_bool(ss::row_t row, ss::col_t col, bool value) override {} --+ virtual void set_bool(ss::row_t, ss::col_t, bool) override {} -- --- virtual void set_date_time( --- ss::row_t row, ss::col_t col, --- int year, int month, int day, int hour, int minute, double second) override {} --+ virtual void set_date_time(ss::row_t, ss::col_t, int, int, int, int, int, double) override {} -- --- virtual void set_format(ss::row_t row, ss::col_t col, std::size_t xf_index) override {} --+ virtual void set_format(ss::row_t, ss::col_t, std::size_t) override {} -- --- virtual void set_format( --- ss::row_t row_start, ss::col_t col_start, ss::row_t row_end, ss::col_t col_end, --- std::size_t xf_index) override {} --+ virtual void set_format(ss::row_t, ss::col_t, ss::row_t, ss::col_t, std::size_t) override {} -- --- virtual void fill_down_cells( --- ss::row_t src_row, ss::col_t src_col, ss::row_t range_size) override {} --+ virtual void fill_down_cells(ss::row_t, ss::col_t, ss::row_t) override {} -- }; -- //!code-end: my_sheet -- --@@ -89,14 +84,13 @@ class my_import_factory : public ss::iface::import_factory -- std::vector<std::unique_ptr<my_sheet>> m_sheets; -- -- public: --- virtual ss::iface::import_sheet* append_sheet( --- ss::sheet_t sheet_index, std::string_view name) override --+ virtual ss::iface::import_sheet* append_sheet(ss::sheet_t, std::string_view) override -- { -- m_sheets.push_back(std::make_unique<my_sheet>(m_sheets.size())); -- return m_sheets.back().get(); -- } -- --- virtual ss::iface::import_sheet* get_sheet(std::string_view name) override --+ virtual ss::iface::import_sheet* get_sheet(std::string_view) override -- { -- // TODO : implement this. -- return nullptr; --diff --git a/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp b/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp --index 1c3f3d5b..11e1932e 100644 ----- a/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp --+++ b/doc_example/spreadsheet_doc_2_sheets_with_formula.cpp --@@ -87,15 +87,15 @@ public: -- m_formula.grammar = grammar; -- } -- --- virtual void set_shared_formula_index(std::size_t index) override {} --+ virtual void set_shared_formula_index(std::size_t) override {} -- --- virtual void set_result_string(std::string_view value) override {} --+ virtual void set_result_string(std::string_view) override {} -- --- virtual void set_result_value(double value) override {} --+ virtual void set_result_value(double) override {} -- -- virtual void set_result_empty() override {} -- --- virtual void set_result_bool(bool value) override {} --+ virtual void set_result_bool(bool) override {} -- -- virtual void commit() override -- { --@@ -154,22 +154,17 @@ public: -- } -- -- // We don't implement these methods for now. --- virtual void set_auto(ss::row_t row, ss::col_t col, std::string_view s) override {} --+ virtual void set_auto(ss::row_t, ss::col_t, std::string_view) override {} -- --- virtual void set_bool(ss::row_t row, ss::col_t col, bool value) override {} --+ virtual void set_bool(ss::row_t, ss::col_t, bool) override {} -- --- virtual void set_date_time( --- ss::row_t row, ss::col_t col, --- int year, int month, int day, int hour, int minute, double second) override {} --+ virtual void set_date_time(ss::row_t, ss::col_t, int, int, int, int, int, double) override {} -- --- virtual void set_format(ss::row_t row, ss::col_t col, std::size_t xf_index) override {} --+ virtual void set_format(ss::row_t, ss::col_t, std::size_t) override {} -- --- virtual void set_format( --- ss::row_t row_start, ss::col_t col_start, ss::row_t row_end, ss::col_t col_end, --- std::size_t xf_index) override {} --+ virtual void set_format(ss::row_t, ss::col_t, ss::row_t, ss::col_t, std::size_t) override {} -- --- virtual void fill_down_cells( --- ss::row_t src_row, ss::col_t src_col, ss::row_t range_size) override {} --+ virtual void fill_down_cells(ss::row_t, ss::col_t, ss::row_t) override {} -- -- virtual ss::iface::import_formula* get_formula() override -- { --@@ -208,21 +203,21 @@ public: -- } -- -- // The following methods are for formatted text segments, which we ignore for now. --- virtual void set_segment_bold(bool b) override {} --+ virtual void set_segment_bold(bool) override {} -- --- virtual void set_segment_font(std::size_t font_index) override {} --+ virtual void set_segment_font(std::size_t) override {} -- -- virtual void set_segment_font_color( --- ss::color_elem_t alpha, --- ss::color_elem_t red, --- ss::color_elem_t green, --- ss::color_elem_t blue) override {} --+ ss::color_elem_t, --+ ss::color_elem_t, --+ ss::color_elem_t, --+ ss::color_elem_t) override {} -- --- virtual void set_segment_font_name(std::string_view s) override {} --+ virtual void set_segment_font_name(std::string_view) override {} -- --- virtual void set_segment_font_size(double point) override {} --+ virtual void set_segment_font_size(double) override {} -- --- virtual void set_segment_italic(bool b) override {} --+ virtual void set_segment_italic(bool) override {} -- -- virtual void append_segment(std::string_view s) override -- { --@@ -256,14 +251,14 @@ public: -- return &m_shared_strings; -- } -- --- virtual ss::iface::import_sheet* append_sheet(ss::sheet_t sheet_index, std::string_view name) override --+ virtual ss::iface::import_sheet* append_sheet(ss::sheet_t, std::string_view) override -- { -- // Pass the string pool to each sheet instance. -- m_sheets.push_back(std::make_unique<my_sheet>(m_sheets.size(), m_string_pool)); -- return m_sheets.back().get(); -- } -- --- virtual ss::iface::import_sheet* get_sheet(std::string_view name) override --+ virtual ss::iface::import_sheet* get_sheet(std::string_view) override -- { -- // TODO : implement this. -- return nullptr; --diff --git a/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp b/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp --index ff69c835..0153dd08 100644 ----- a/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp --+++ b/doc_example/spreadsheet_doc_2_sheets_with_string_pool.cpp --@@ -70,22 +70,17 @@ public: -- } -- -- // We don't implement these methods for now. --- virtual void set_auto(ss::row_t row, ss::col_t col, std::string_view s) override {} --+ virtual void set_auto(ss::row_t, ss::col_t, std::string_view) override {} -- --- virtual void set_bool(ss::row_t row, ss::col_t col, bool value) override {} --+ virtual void set_bool(ss::row_t, ss::col_t, bool) override {} -- --- virtual void set_date_time( --- ss::row_t row, ss::col_t col, --- int year, int month, int day, int hour, int minute, double second) override {} --+ virtual void set_date_time(ss::row_t, ss::col_t, int, int, int, int, int, double) override {} -- --- virtual void set_format(ss::row_t row, ss::col_t col, std::size_t xf_index) override {} --+ virtual void set_format(ss::row_t, ss::col_t, std::size_t) override {} -- --- virtual void set_format( --- ss::row_t row_start, ss::col_t col_start, ss::row_t row_end, ss::col_t col_end, --- std::size_t xf_index) override {} --+ virtual void set_format(ss::row_t, ss::col_t, ss::row_t, ss::col_t, std::size_t) override {} -- --- virtual void fill_down_cells( --- ss::row_t src_row, ss::col_t src_col, ss::row_t range_size) override {} --+ virtual void fill_down_cells(ss::row_t, ss::col_t, ss::row_t) override {} -- }; -- -- //!code-start: my_shared_strings --@@ -119,21 +114,21 @@ public: -- } -- -- // The following methods are for formatted text segments, which we ignore for now. --- virtual void set_segment_bold(bool b) override {} --+ virtual void set_segment_bold(bool) override {} -- --- virtual void set_segment_font(std::size_t font_index) override {} --+ virtual void set_segment_font(std::size_t) override {} -- -- virtual void set_segment_font_color( --- ss::color_elem_t alpha, --- ss::color_elem_t red, --- ss::color_elem_t green, --- ss::color_elem_t blue) override {} --+ ss::color_elem_t, --+ ss::color_elem_t, --+ ss::color_elem_t, --+ ss::color_elem_t) override {} -- --- virtual void set_segment_font_name(std::string_view s) override {} --+ virtual void set_segment_font_name(std::string_view) override {} -- --- virtual void set_segment_font_size(double point) override {} --+ virtual void set_segment_font_size(double) override {} -- --- virtual void set_segment_italic(bool b) override {} --+ virtual void set_segment_italic(bool) override {} -- -- virtual void append_segment(std::string_view s) override -- { --@@ -169,15 +164,14 @@ public: -- return &m_shared_strings; -- } -- --- virtual ss::iface::import_sheet* append_sheet( --- ss::sheet_t sheet_index, std::string_view name) override --+ virtual ss::iface::import_sheet* append_sheet(ss::sheet_t, std::string_view) override -- { -- // Pass the string pool to each sheet instance. -- m_sheets.push_back(std::make_unique<my_sheet>(m_sheets.size(), m_string_pool)); -- return m_sheets.back().get(); -- } -- --- virtual ss::iface::import_sheet* get_sheet(std::string_view name) override --+ virtual ss::iface::import_sheet* get_sheet(std::string_view) override -- { -- // TODO : implement this. -- return nullptr; --diff --git a/doc_example/xml_mapping_1.cpp b/doc_example/xml_mapping_1.cpp --index f23d620c..33d6ff22 100644 ----- a/doc_example/xml_mapping_1.cpp --+++ b/doc_example/xml_mapping_1.cpp --@@ -118,7 +118,7 @@ void run_xmlns_different_ns_same_alias() -- cout << (alias_1 == alias_2 ? "same" : "different") << endl; -- } -- ---int main(int argc, char** argv) --+int main() -- { -- run_xmlns_example(); -- run_xmlns_stacked(); --diff --git a/src/liborcus/css_document_tree.cpp b/src/liborcus/css_document_tree.cpp --index 5f84c013..46bf7e91 100644 ----- a/src/liborcus/css_document_tree.cpp --+++ b/src/liborcus/css_document_tree.cpp --@@ -54,6 +54,9 @@ public: -- { -- #if ORCUS_DEBUG_CSS_DOCTREE -- cout << "@" << string(p, n).c_str(); --+#else --+ (void)p; --+ (void)n; -- #endif -- } -- --diff --git a/src/liborcus/dom_tree.cpp b/src/liborcus/dom_tree.cpp --index 51db6ef8..64ecf8ef 100644 ----- a/src/liborcus/dom_tree.cpp --+++ b/src/liborcus/dom_tree.cpp --@@ -527,7 +527,7 @@ void document_tree::impl::end_element(const sax_ns_parser_element& elem) -- m_elem_stack.pop_back(); -- } -- ---void document_tree::impl::characters(const pstring& val, bool transient) --+void document_tree::impl::characters(const pstring& val, bool /*transient*/) -- { -- if (m_elem_stack.empty()) -- // No root element has been encountered. Ignore this. --diff --git a/src/liborcus/gnumeric_cell_context_test.cpp b/src/liborcus/gnumeric_cell_context_test.cpp --index fc543096..aeec16bd 100644 ----- a/src/liborcus/gnumeric_cell_context_test.cpp --+++ b/src/liborcus/gnumeric_cell_context_test.cpp --@@ -41,19 +41,19 @@ public: -- assert(formula == "=arrayFormula"); -- } -- --- virtual void set_result_bool(row_t row, col_t col, bool value) override --+ virtual void set_result_bool(row_t, col_t, bool) override -- { -- } -- --- virtual void set_result_empty(row_t row, col_t col) override --+ virtual void set_result_empty(row_t, col_t) override -- { -- } -- --- virtual void set_result_string(row_t row, col_t col, std::string_view) override --+ virtual void set_result_string(row_t, col_t, std::string_view) override -- { -- } -- --- virtual void set_result_value(row_t row, col_t col, double value) override --+ virtual void set_result_value(row_t, col_t, double) override -- { -- } -- --@@ -77,11 +77,11 @@ public: -- assert(formula == "=formula"); -- } -- --- virtual void set_shared_formula_index(size_t index) override --+ virtual void set_shared_formula_index(size_t) override -- { -- } -- --- virtual void set_result_bool(bool value) override --+ virtual void set_result_bool(bool) override -- { -- } -- --@@ -93,7 +93,7 @@ public: -- { -- } -- --- virtual void set_result_value(double value) override --+ virtual void set_result_value(double) override -- { -- } -- --diff --git a/src/liborcus/json_document_tree.cpp b/src/liborcus/json_document_tree.cpp --index 4eedea47..c163a364 100644 ----- a/src/liborcus/json_document_tree.cpp --+++ b/src/liborcus/json_document_tree.cpp --@@ -1217,7 +1217,7 @@ array::array(std::initializer_list<detail::init::node> vs) -- array::~array() {} -- -- object::object() {} ---object::object(object&& other) {} --+object::object(object&& /*other*/) {} -- object::~object() {} -- -- namespace { --@@ -1388,7 +1388,7 @@ struct node::impl -- m_value_array(std::move(array.m_vs)) -- {} -- --- impl(json::object obj) : --+ impl(json::object /*obj*/) : -- m_type(detail::node_t::object) {} -- }; -- --@@ -1634,7 +1634,7 @@ document_tree::document_tree(array vs) : mp_impl(std::make_unique<impl>()) -- } -- } -- ---document_tree::document_tree(object obj) : mp_impl(std::make_unique<impl>()) --+document_tree::document_tree(object /*obj*/) : mp_impl(std::make_unique<impl>()) -- { -- mp_impl->m_root = mp_impl->m_res.obj_pool.construct(detail::node_t::object); -- mp_impl->m_root->value.object = mp_impl->m_res.obj_pool_jvo.construct(); --diff --git a/src/liborcus/json_structure_mapper.cpp b/src/liborcus/json_structure_mapper.cpp --index 111d1674..09a9e97e 100644 ----- a/src/liborcus/json_structure_mapper.cpp --+++ b/src/liborcus/json_structure_mapper.cpp --@@ -40,7 +40,7 @@ void structure_mapper::push_range() -- m_current_range.row_groups.clear(); -- } -- ---void structure_mapper::traverse(size_t pos) --+void structure_mapper::traverse(size_t /*pos*/) -- { -- json::structure_tree::node_properties node = m_walker.get_node(); -- --diff --git a/src/liborcus/json_structure_tree.cpp b/src/liborcus/json_structure_tree.cpp --index 5c9d600c..3ae8ecc0 100644 ----- a/src/liborcus/json_structure_tree.cpp --+++ b/src/liborcus/json_structure_tree.cpp --@@ -235,12 +235,12 @@ struct structure_tree::impl -- push_value(); -- } -- --- void string(const char* p, size_t len, bool transient) --+ void string(const char* /*p*/, size_t /*len*/, bool /*transient*/) -- { -- push_value(); -- } -- --- void number(double val) --+ void number(double /*val*/) -- { -- push_value(); -- } --diff --git a/src/liborcus/mock_spreadsheet.cpp b/src/liborcus/mock_spreadsheet.cpp --index 3bde38ff..4042bdc9 100644 ----- a/src/liborcus/mock_spreadsheet.cpp --+++ b/src/liborcus/mock_spreadsheet.cpp --@@ -211,22 +211,22 @@ import_formula::~import_formula() -- { -- } -- ---void import_formula::set_position(row_t row, col_t col) --+void import_formula::set_position(row_t, col_t) -- { -- assert(false); -- } -- ---void import_formula::set_formula(formula_grammar_t grammar, std::string_view) --+void import_formula::set_formula(formula_grammar_t, std::string_view) -- { -- assert(false); -- } -- ---void import_formula::set_shared_formula_index(size_t index) --+void import_formula::set_shared_formula_index(size_t) -- { -- assert(false); -- } -- ---void import_formula::set_result_value(double value) --+void import_formula::set_result_value(double) -- { -- assert(false); -- } --@@ -236,7 +236,7 @@ void import_formula::set_result_string(std::string_view) -- assert(false); -- } -- ---void import_formula::set_result_bool(bool value) --+void import_formula::set_result_bool(bool) -- { -- assert(false); -- } --@@ -257,7 +257,7 @@ import_sheet::~import_sheet() -- { -- } -- ---void import_sheet::set_auto(row_t, col_t, std::string_view s) --+void import_sheet::set_auto(row_t, col_t, std::string_view) -- { -- assert(false); -- } --@@ -292,7 +292,7 @@ void import_sheet::set_format(row_t, col_t, row_t, col_t, size_t) -- assert(false); -- } -- ---void import_sheet::fill_down_cells(row_t src_row, col_t src_col, row_t range_size) --+void import_sheet::fill_down_cells(row_t, col_t, row_t) -- { -- assert(false); -- } --diff --git a/src/liborcus/ods_dde_links_context.cpp b/src/liborcus/ods_dde_links_context.cpp --index db7ab672..783b106f 100644 ----- a/src/liborcus/ods_dde_links_context.cpp --+++ b/src/liborcus/ods_dde_links_context.cpp --@@ -14,21 +14,21 @@ ods_dde_links_context::ods_dde_links_context(session_context& session_cxt, const -- -- ods_dde_links_context::~ods_dde_links_context() {} -- ---bool ods_dde_links_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const --+bool ods_dde_links_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -- { -- return true; -- } -- ---xml_context_base* ods_dde_links_context::create_child_context(xmlns_id_t ns, xml_token_t name) --+xml_context_base* ods_dde_links_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -- { -- return nullptr; -- } -- ---void ods_dde_links_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base *child) --+void ods_dde_links_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -- { -- } -- ---void ods_dde_links_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t> &attrs) --+void ods_dde_links_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& /*attrs*/) -- { -- xml_token_pair_t parent = push_stack(ns, name); -- (void)parent; --@@ -41,7 +41,7 @@ bool ods_dde_links_context::end_element(xmlns_id_t ns, xml_token_t name) -- return pop_stack(ns, name); -- } -- ---void ods_dde_links_context::characters(const pstring &str, bool transient) --+void ods_dde_links_context::characters(const pstring& /*str*/, bool /*transient*/) -- { -- } -- --diff --git a/src/liborcus/opc_context.cpp b/src/liborcus/opc_context.cpp --index ef1a591f..d3cddabd 100644 ----- a/src/liborcus/opc_context.cpp --+++ b/src/liborcus/opc_context.cpp --@@ -90,17 +90,17 @@ opc_content_types_context::~opc_content_types_context() -- { -- } -- ---bool opc_content_types_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const --+bool opc_content_types_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -- { -- return true; -- } -- ---xml_context_base* opc_content_types_context::create_child_context(xmlns_id_t ns, xml_token_t name) --+xml_context_base* opc_content_types_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -- { -- return nullptr; -- } -- ---void opc_content_types_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base *child) --+void opc_content_types_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -- { -- } -- --@@ -153,7 +153,7 @@ bool opc_content_types_context::end_element(xmlns_id_t ns, xml_token_t name) -- return pop_stack(ns, name); -- } -- ---void opc_content_types_context::characters(const pstring &str, bool transient) --+void opc_content_types_context::characters(const pstring& /*str*/, bool /*transient*/) -- { -- } -- --@@ -256,17 +256,17 @@ opc_relations_context::~opc_relations_context() -- { -- } -- ---bool opc_relations_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const --+bool opc_relations_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -- { -- return true; -- } -- ---xml_context_base* opc_relations_context::create_child_context(xmlns_id_t ns, xml_token_t name) --+xml_context_base* opc_relations_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -- { -- return nullptr; -- } -- ---void opc_relations_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base *child) --+void opc_relations_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -- { -- } -- --@@ -302,7 +302,7 @@ bool opc_relations_context::end_element(xmlns_id_t ns, xml_token_t name) -- return pop_stack(ns, name); -- } -- ---void opc_relations_context::characters(const pstring &str, bool transient) --+void opc_relations_context::characters(const pstring& /*str*/, bool /*transient*/) -- { -- } -- --diff --git a/src/liborcus/orcus_json.cpp b/src/liborcus/orcus_json.cpp --index 2b5967d5..69672190 100644 ----- a/src/liborcus/orcus_json.cpp --+++ b/src/liborcus/orcus_json.cpp --@@ -137,7 +137,7 @@ public: -- push_node(json_map_tree::input_node_type::object); -- } -- --- void object_key(const char* p, size_t len, bool transient) --+ void object_key(const char* p, size_t len, bool /*transient*/) -- { -- m_walker.set_object_key(p, len); -- } --@@ -168,7 +168,7 @@ public: -- pop_node(json_map_tree::input_node_type::value); -- } -- --- void string(const char* p, size_t len, bool transient) --+ void string(const char* p, size_t len, bool /*transient*/) -- { -- push_node(json_map_tree::input_node_type::value); -- commit_value(json_value(p, len)); --diff --git a/src/liborcus/orcus_xml_map_def.cpp b/src/liborcus/orcus_xml_map_def.cpp --index 4c70e060..889dbcb0 100644 ----- a/src/liborcus/orcus_xml_map_def.cpp --+++ b/src/liborcus/orcus_xml_map_def.cpp --@@ -43,9 +43,9 @@ public: -- xml_map_sax_handler(orcus_xml& app) : m_app(app) {} -- -- void doctype(const sax::doctype_declaration&) {} --- void start_declaration(const pstring& name) {} --+ void start_declaration(const pstring& /*name*/) {} -- --- void end_declaration(const pstring& name) --+ void end_declaration(const pstring& /*name*/) -- { -- m_attrs.clear(); -- } --diff --git a/src/liborcus/spreadsheet_interface.cpp b/src/liborcus/spreadsheet_interface.cpp --index 87103233..985caf45 100644 ----- a/src/liborcus/spreadsheet_interface.cpp --+++ b/src/liborcus/spreadsheet_interface.cpp --@@ -124,13 +124,13 @@ import_reference_resolver* import_factory::get_reference_resolver(formula_ref_co -- } -- -- import_pivot_cache_definition* import_factory::create_pivot_cache_definition( --- orcus::spreadsheet::pivot_cache_id_t cache_id) --+ orcus::spreadsheet::pivot_cache_id_t /*cache_id*/) -- { -- return nullptr; -- } -- -- import_pivot_cache_records* import_factory::create_pivot_cache_records( --- orcus::spreadsheet::pivot_cache_id_t cache_id) --+ orcus::spreadsheet::pivot_cache_id_t /*cache_id*/) -- { -- return nullptr; -- } --diff --git a/src/liborcus/xls_xml_context.cpp b/src/liborcus/xls_xml_context.cpp --index f5b8fe26..b2d6d398 100644 ----- a/src/liborcus/xls_xml_context.cpp --+++ b/src/liborcus/xls_xml_context.cpp --@@ -90,17 +90,17 @@ xls_xml_data_context::xls_xml_data_context( -- -- xls_xml_data_context::~xls_xml_data_context() {} -- ---bool xls_xml_data_context::can_handle_element(xmlns_id_t ns, xml_token_t name) const --+bool xls_xml_data_context::can_handle_element(xmlns_id_t /*ns*/, xml_token_t /*name*/) const -- { -- return true; -- } -- ---xml_context_base* xls_xml_data_context::create_child_context(xmlns_id_t ns, xml_token_t name) --+xml_context_base* xls_xml_data_context::create_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/) -- { -- return nullptr; -- } -- ---void xls_xml_data_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base* child) --+void xls_xml_data_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -- { -- } -- --@@ -254,7 +254,7 @@ void xls_xml_data_context::reset() -- } -- -- void xls_xml_data_context::start_element_data( --- const xml_token_pair_t& parent, const xml_attrs_t& attrs) --+ const xml_token_pair_t& /*parent*/, const xml_attrs_t& attrs) -- { -- m_cell_type = ct_unknown; -- m_cell_string.clear(); --@@ -776,7 +776,7 @@ xml_context_base* xls_xml_context::create_child_context(xmlns_id_t ns, xml_token -- return nullptr; -- } -- ---void xls_xml_context::end_child_context(xmlns_id_t ns, xml_token_t name, xml_context_base* child) --+void xls_xml_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*name*/, xml_context_base* /*child*/) -- { -- } -- --@@ -1217,7 +1217,7 @@ void xls_xml_context::characters(const pstring& str, bool /*transient*/) -- } -- } -- ---void xls_xml_context::start_element_borders(const xml_token_pair_t& parent, const xml_attrs_t& attrs) --+void xls_xml_context::start_element_borders(const xml_token_pair_t& parent, const xml_attrs_t& /*attrs*/) -- { -- xml_element_expected(parent, NS_xls_xml_ss, XML_Style); -- m_current_style->borders.clear(); --diff --git a/src/liborcus/xls_xml_detection_handler.cpp b/src/liborcus/xls_xml_detection_handler.cpp --index aaa1b148..2b18c8ee 100644 ----- a/src/liborcus/xls_xml_detection_handler.cpp --+++ b/src/liborcus/xls_xml_detection_handler.cpp --@@ -36,7 +36,7 @@ public: -- return nullptr; -- } -- --- virtual void start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& attrs) --+ virtual void start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& /*attrs*/) -- { -- xml_token_pair_t parent = push_stack(ns, name); -- if (ns == NS_xls_xml_ss) --diff --git a/src/liborcus/xlsx_drawing_context.cpp b/src/liborcus/xlsx_drawing_context.cpp --index f7dc31ab..380d7852 100644 ----- a/src/liborcus/xlsx_drawing_context.cpp --+++ b/src/liborcus/xlsx_drawing_context.cpp --@@ -41,7 +41,7 @@ void xlsx_drawing_context::end_child_context(xmlns_id_t /*ns*/, xml_token_t /*na -- { -- } -- ---void xlsx_drawing_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& attrs) --+void xlsx_drawing_context::start_element(xmlns_id_t ns, xml_token_t name, const::std::vector<xml_token_attr_t>& /*attrs*/) -- { -- xml_token_pair_t parent = push_stack(ns, name); -- --diff --git a/src/liborcus/xlsx_sheet_context.cpp b/src/liborcus/xlsx_sheet_context.cpp --index 669f604f..50018c32 100644 ----- a/src/liborcus/xlsx_sheet_context.cpp --+++ b/src/liborcus/xlsx_sheet_context.cpp --@@ -845,7 +845,7 @@ void xlsx_sheet_context::push_raw_cell_value() -- } -- -- void xlsx_sheet_context::push_raw_cell_result( --- range_formula_results& res, size_t row_offset, size_t col_offset, xlsx_session_data& session_data) const --+ range_formula_results& res, size_t row_offset, size_t col_offset, xlsx_session_data& /*session_data*/) const -- { -- if (m_cur_value.empty()) -- return; --diff --git a/src/liborcus/xlsx_sheet_context_test.cpp b/src/liborcus/xlsx_sheet_context_test.cpp --index 9cb0d2a5..11ec8b71 100644 ----- a/src/liborcus/xlsx_sheet_context_test.cpp --+++ b/src/liborcus/xlsx_sheet_context_test.cpp --@@ -64,19 +64,19 @@ public: -- assert(formula == "A1:A2"); -- } -- --- virtual void set_result_bool(row_t row, col_t col, bool value) override --+ virtual void set_result_bool(row_t, col_t, bool) override -- { -- } -- --- virtual void set_result_empty(row_t row, col_t col) override --+ virtual void set_result_empty(row_t, col_t) override -- { -- } -- --- virtual void set_result_string(row_t row, col_t col, std::string_view) override --+ virtual void set_result_string(row_t, col_t, std::string_view) override -- { -- } -- --- virtual void set_result_value(row_t row, col_t col, double value) override --+ virtual void set_result_value(row_t, col_t, double) override -- { -- } -- --diff --git a/src/liborcus/xlsx_table_context.cpp b/src/liborcus/xlsx_table_context.cpp --index e135f44d..d8c360df 100644 ----- a/src/liborcus/xlsx_table_context.cpp --+++ b/src/liborcus/xlsx_table_context.cpp --@@ -317,7 +317,7 @@ bool xlsx_table_context::end_element(xmlns_id_t ns, xml_token_t name) -- return pop_stack(ns, name); -- } -- ---void xlsx_table_context::characters(const pstring& str, bool transient) --+void xlsx_table_context::characters(const pstring& /*str*/, bool /*transient*/) -- { -- } -- --diff --git a/src/liborcus/xml_structure_tree.cpp b/src/liborcus/xml_structure_tree.cpp --index 9eaf3c07..5185049e 100644 ----- a/src/liborcus/xml_structure_tree.cpp --+++ b/src/liborcus/xml_structure_tree.cpp --@@ -125,11 +125,11 @@ public: -- -- void doctype(const sax::doctype_declaration&) {} -- --- void start_declaration(const pstring& name) --+ void start_declaration(const pstring& /*name*/) -- { -- } -- --- void end_declaration(const pstring& name) --+ void end_declaration(const pstring& /*name*/) -- { -- m_attrs.clear(); -- } --@@ -185,7 +185,7 @@ public: -- m_stack.push_back(ref); -- } -- --- void end_element(const sax_ns_parser_element& elem) --+ void end_element(const sax_ns_parser_element& /*elem*/) -- { -- if (m_stack.empty()) -- throw general_error("Element stack is empty."); --diff --git a/src/liborcus/xpath_parser_test.cpp b/src/liborcus/xpath_parser_test.cpp --index 12242f62..f67c0dc6 100644 ----- a/src/liborcus/xpath_parser_test.cpp --+++ b/src/liborcus/xpath_parser_test.cpp --@@ -64,7 +64,7 @@ void test_attributes() -- assert(token.attribute); -- } -- ---int main(int argc, char** argv) --+int main() -- { -- test_elements(); -- test_attributes(); --diff --git a/src/orcus_env_dump.cpp b/src/orcus_env_dump.cpp --index ad60927a..99f53718 100644 ----- a/src/orcus_env_dump.cpp --+++ b/src/orcus_env_dump.cpp --@@ -13,7 +13,7 @@ -- using std::cout; -- using std::endl; -- ---int main(int argc, char** argv) --+int main() -- { -- cout << "CPU flags:" << endl; -- cout << " SSE 4.2: " << orcus::detail::cpu::has_sse42() << endl; --diff --git a/src/orcus_test_json_mapped.cpp b/src/orcus_test_json_mapped.cpp --index ed10a842..c504e156 100644 ----- a/src/orcus_test_json_mapped.cpp --+++ b/src/orcus_test_json_mapped.cpp --@@ -88,7 +88,7 @@ void test_invalid_map_definition() -- } -- } -- ---int main(int argc, char** argv) --+int main() -- { -- test_mapped_json_import(); -- test_invalid_map_definition(); --diff --git a/src/orcus_test_xml.cpp b/src/orcus_test_xml.cpp --index 2a44a8ac..de5197cf 100644 ----- a/src/orcus_test_xml.cpp --+++ b/src/orcus_test_xml.cpp --@@ -85,7 +85,7 @@ const char* sax_parser_parse_only_test_dirs[] = { -- SRCDIR"/test/xml/parse-only/rss/" -- }; -- ---void parse_file(dom::document_tree& tree, const char* filepath, string& strm) --+void parse_file(dom::document_tree& tree, const char* filepath, std::string& /*strm*/) -- { -- cout << "testing " << filepath << endl; -- file_content content(filepath); --diff --git a/src/orcus_test_xml_mapped.cpp b/src/orcus_test_xml_mapped.cpp --index b90ea020..8e18cfda 100644 ----- a/src/orcus_test_xml_mapped.cpp --+++ b/src/orcus_test_xml_mapped.cpp --@@ -66,7 +66,7 @@ void test_mapped_xml_import() -- { SRCDIR"/test/xml-mapped/nested-repeats-4", false }, -- }; -- --- auto dump_xml_structure = [](string& dump_content, string& strm, const char* filepath, xmlns_context& cxt) --+ auto dump_xml_structure = [](std::string& dump_content, std::string& /*strm*/, const char* filepath, xmlns_context& cxt) -- { -- file_content content(filepath); -- dom::document_tree tree(cxt); --diff --git a/src/parser/sax_token_parser_test.cpp b/src/parser/sax_token_parser_test.cpp --index 2647444c..6ff8c932 100644 ----- a/src/parser/sax_token_parser_test.cpp --+++ b/src/parser/sax_token_parser_test.cpp --@@ -146,7 +146,7 @@ void test_unicode_string() -- { -- } -- --- void characters(std::string_view val, bool transient) --+ void characters(std::string_view val, bool /*transient*/) -- { -- std::cout << "charachters:" << std::endl; -- std::cout << val << std::endl; --diff --git a/src/parser/sax_token_parser_thread.cpp b/src/parser/sax_token_parser_thread.cpp --index b9166e3c..d21ae6d7 100644 ----- a/src/parser/sax_token_parser_thread.cpp --+++ b/src/parser/sax_token_parser_thread.cpp --@@ -86,7 +86,7 @@ struct parser_thread::impl -- m_token_buffer.abort(); -- } -- --- void declaration(const orcus::xml_declaration_t& decl) --+ void declaration(const orcus::xml_declaration_t& /*decl*/) -- { -- } -- --diff --git a/src/parser/utf8.cpp b/src/parser/utf8.cpp --index f3b264a7..e02d2244 100644 ----- a/src/parser/utf8.cpp --+++ b/src/parser/utf8.cpp --@@ -231,7 +231,7 @@ bool parse_3b_second_char(uint8_t c1, uint8_t c2, uint8_t c3) -- } -- -- // [#x10000-#xEFFFF]: F0 90 80 80 -> F3 AF BF BF ---bool parse_4b_char(uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4) --+bool parse_4b_char(uint8_t c1, uint8_t c2, uint8_t /*c3*/, uint8_t /*c4*/) -- { -- // F0 90 80 80 -> F3 AF BF BF -- // - F0 90 xx xx -> F0 xx xx xx --diff --git a/src/parser/utf8_test.cpp b/src/parser/utf8_test.cpp --index 78b7656a..88dcd3e8 100644 ----- a/src/parser/utf8_test.cpp --+++ b/src/parser/utf8_test.cpp --@@ -159,7 +159,7 @@ void test_xml_name_char() -- assert(res); -- } -- ---int main(int argc, char** argv) --+int main() -- { -- test_xml_name_start_char(); -- test_xml_name_char(); --diff --git a/src/parser/xml_writer_test.cpp b/src/parser/xml_writer_test.cpp --index e5a22357..8687db32 100644 ----- a/src/parser/xml_writer_test.cpp --+++ b/src/parser/xml_writer_test.cpp --@@ -28,7 +28,7 @@ void test_encoded_content() -- { -- std::ostringstream os_content; -- --- void characters(std::string_view val, bool transient) --+ void characters(std::string_view val, bool /*transient*/) -- { -- os_content << val; -- } --diff --git a/src/python/cell.cpp b/src/python/cell.cpp --index 536b5c4d..16374b8f 100644 ----- a/src/python/cell.cpp --+++ b/src/python/cell.cpp --@@ -115,7 +115,7 @@ int tp_init(pyobj_cell* self, PyObject* args, PyObject* kwargs) -- return 0; -- } -- ---PyObject* cell_get_formula_tokens(PyObject* self, PyObject* args, PyObject* kwargs) --+PyObject* cell_get_formula_tokens(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- pyobj_cell* obj = reinterpret_cast<pyobj_cell*>(self); -- cell_data& data = *obj->data; --diff --git a/src/python/document.cpp b/src/python/document.cpp --index b06463bc..02a2dc49 100644 ----- a/src/python/document.cpp --+++ b/src/python/document.cpp --@@ -69,12 +69,12 @@ PyObject* tp_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwargs*/) -- return reinterpret_cast<PyObject*>(self); -- } -- ---int tp_init(pyobj_document* self, PyObject* /*args*/, PyObject* /*kwargs*/) --+int tp_init(pyobj_document* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- return 0; -- } -- ---PyObject* doc_get_named_expressions(PyObject* self, PyObject* args, PyObject* kwargs) --+PyObject* doc_get_named_expressions(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- const ss::document& doc = *t(self)->data->m_doc; -- const ixion::model_context& cxt = doc.get_model_context(); --diff --git a/src/python/formula_tokens.cpp b/src/python/formula_tokens.cpp --index 569d1a7a..3eece2d4 100644 ----- a/src/python/formula_tokens.cpp --+++ b/src/python/formula_tokens.cpp --@@ -56,7 +56,7 @@ void tp_dealloc(pyobj_formula_tokens* self) -- Py_TYPE(self)->tp_free(reinterpret_cast<PyObject*>(self)); -- } -- ---int tp_init(pyobj_formula_tokens* self, PyObject* /*args*/, PyObject* /*kwargs*/) --+int tp_init(pyobj_formula_tokens* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- return 0; -- } --diff --git a/src/python/global.cpp b/src/python/global.cpp --index 7a21f960..f8623e0d 100644 ----- a/src/python/global.cpp --+++ b/src/python/global.cpp --@@ -16,7 +16,7 @@ void set_python_exception(PyObject* type, const std::exception& e) -- { -- std::ostringstream os; -- os << "C++ exception caught: " << e.what(); --- PyErr_SetString(PyExc_RuntimeError, os.str().data()); --+ PyErr_SetString(type, os.str().data()); -- } -- -- PyObject* get_python_enum_value(const char* enum_class_name, const char* value_name) --diff --git a/src/python/json.cpp b/src/python/json.cpp --index fdeea10c..f22cf666 100644 ----- a/src/python/json.cpp --+++ b/src/python/json.cpp --@@ -177,7 +177,7 @@ public: -- } -- } -- --- void object_key(const char* p, size_t len, bool transient) --+ void object_key(const char* p, size_t len, bool /*transient*/) -- { -- parser_stack& cur = m_stack.back(); -- cur.key = PyUnicode_FromStringAndSize(p, len); --@@ -213,7 +213,7 @@ public: -- push_value(Py_None); -- } -- --- void string(const char* p, size_t len, bool transient) --+ void string(const char* p, size_t len, bool /*transient*/) -- { -- push_value(PyUnicode_FromStringAndSize(p, len)); -- } --diff --git a/src/python/named_expression.cpp b/src/python/named_expression.cpp --index 8edeeacf..1402daa0 100644 ----- a/src/python/named_expression.cpp --+++ b/src/python/named_expression.cpp --@@ -81,7 +81,7 @@ PyObject* tp_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwargs*/) -- return reinterpret_cast<PyObject*>(self); -- } -- ---PyObject* ne_get_formula_tokens(PyObject* self, PyObject* args, PyObject* kwargs) --+PyObject* ne_get_formula_tokens(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- named_exp_data& data = *t(self)->data; -- if (!data.tokens) --diff --git a/src/python/named_expressions.cpp b/src/python/named_expressions.cpp --index 235389ac..6faffee5 100644 ----- a/src/python/named_expressions.cpp --+++ b/src/python/named_expressions.cpp --@@ -44,7 +44,7 @@ inline pyobj_named_exps* t(PyObject* self) -- return reinterpret_cast<pyobj_named_exps*>(self); -- } -- ---PyObject* named_exps_names(PyObject* self, PyObject* args, PyObject* kwargs) --+PyObject* named_exps_names(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- named_exps_data& data = *t(self)->data; -- PyObject* s = PySet_New(nullptr); --@@ -64,7 +64,7 @@ void tp_dealloc(pyobj_named_exps* self) -- Py_TYPE(self)->tp_free(reinterpret_cast<PyObject*>(self)); -- } -- ---int tp_init(pyobj_named_exps* self, PyObject* /*args*/, PyObject* /*kwargs*/) --+int tp_init(pyobj_named_exps* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- return 0; -- } --diff --git a/src/python/sheet.cpp b/src/python/sheet.cpp --index 0ccc39bd..38b96241 100644 ----- a/src/python/sheet.cpp --+++ b/src/python/sheet.cpp --@@ -85,12 +85,12 @@ PyObject* tp_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwargs*/) -- return reinterpret_cast<PyObject*>(self); -- } -- ---int tp_init(pyobj_sheet* self, PyObject* /*args*/, PyObject* /*kwargs*/) --+int tp_init(pyobj_sheet* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- return 0; -- } -- ---PyObject* sheet_get_rows(PyObject* self, PyObject* args, PyObject* kwargs) --+PyObject* sheet_get_rows(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- PyTypeObject* sr_type = get_sheet_rows_type(); -- --@@ -210,7 +210,7 @@ PyObject* sheet_write(PyObject* self, PyObject* args, PyObject* kwargs) -- return Py_None; -- } -- ---PyObject* sheet_get_named_expressions(PyObject* self, PyObject* args, PyObject* kwargs) --+PyObject* sheet_get_named_expressions(PyObject* self, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- const ss::document& doc = *t(self)->data->m_doc; -- ss::sheet_t si = t(self)->data->m_sheet->get_index(); --diff --git a/src/python/sheet_rows.cpp b/src/python/sheet_rows.cpp --index 7fa869ea..be495894 100644 ----- a/src/python/sheet_rows.cpp --+++ b/src/python/sheet_rows.cpp --@@ -49,7 +49,7 @@ PyObject* sheet_rows_new(PyTypeObject* type, PyObject* /*args*/, PyObject* /*kwa -- return reinterpret_cast<PyObject*>(self); -- } -- ---int sheet_rows_init(pyobj_sheet_rows* self, PyObject* /*args*/, PyObject* /*kwargs*/) --+int sheet_rows_init(pyobj_sheet_rows* /*self*/, PyObject* /*args*/, PyObject* /*kwargs*/) -- { -- return 0; -- } --diff --git a/src/spreadsheet/factory_sheet.cpp b/src/spreadsheet/factory_sheet.cpp --index 3e04295c..61541174 100644 ----- a/src/spreadsheet/factory_sheet.cpp --+++ b/src/spreadsheet/factory_sheet.cpp --@@ -74,19 +74,19 @@ void import_data_table::reset() -- { -- } -- ---void import_data_table::set_type(data_table_type_t type) --+void import_data_table::set_type(data_table_type_t /*type*/) -- { -- } -- ---void import_data_table::set_range(const range_t& range) --+void import_data_table::set_range(const range_t& /*range*/) -- { -- } -- ---void import_data_table::set_first_reference(std::string_view ref, bool deleted) --+void import_data_table::set_first_reference(std::string_view /*ref*/, bool /*deleted*/) -- { -- } -- ---void import_data_table::set_second_reference(std::string_view ref, bool deleted) --+void import_data_table::set_second_reference(std::string_view /*ref*/, bool /*deleted*/) -- { -- } -- --@@ -193,7 +193,7 @@ void import_array_formula::set_range(const range_t& range) -- } -- } -- ---void import_array_formula::set_formula(formula_grammar_t grammar, std::string_view formula) --+void import_array_formula::set_formula(formula_grammar_t /*grammar*/, std::string_view formula) -- { -- const ixion::formula_name_resolver* resolver = -- m_doc.get_formula_name_resolver(spreadsheet::formula_ref_context_t::global); --@@ -223,12 +223,12 @@ void import_array_formula::set_result_value(row_t row, col_t col, double value) -- m_result_mtx.set(row, col, value); -- } -- ---void import_array_formula::set_result_string(row_t row, col_t col, std::string_view value) --+void import_array_formula::set_result_string(row_t /*row*/, col_t /*col*/, std::string_view /*value*/) -- { -- // TODO : handle this -- } -- ---void import_array_formula::set_result_empty(row_t row, col_t col) --+void import_array_formula::set_result_empty(row_t /*row*/, col_t /*col*/) -- { -- // TODO : handle this -- } --@@ -282,7 +282,7 @@ void import_formula::set_position(row_t row, col_t col) -- m_col = col; -- } -- ---void import_formula::set_formula(formula_grammar_t grammar, std::string_view formula) --+void import_formula::set_formula(formula_grammar_t /*grammar*/, std::string_view formula) -- { -- if (m_row < 0 || m_col < 0) -- return; --@@ -331,7 +331,7 @@ void import_formula::set_result_string(std::string_view value) -- } -- -- void import_formula::set_result_empty() {} ---void import_formula::set_result_bool(bool value) {} --+void import_formula::set_result_bool(bool /*value*/) {} -- -- void import_formula::commit() -- { --diff --git a/src/spreadsheet/sheet_impl.cpp b/src/spreadsheet/sheet_impl.cpp --index 72e521c5..c2e7ecb6 100644 ----- a/src/spreadsheet/sheet_impl.cpp --+++ b/src/spreadsheet/sheet_impl.cpp --@@ -12,7 +12,7 @@ -- -- namespace orcus { namespace spreadsheet { -- ---sheet_impl::sheet_impl(document& doc, sheet& sh, sheet_t sheet_index) : --+sheet_impl::sheet_impl(document& doc, sheet& /*sh*/, sheet_t sheet_index) : -- m_doc(doc), -- m_col_widths(0, m_doc.get_sheet_size().columns, get_default_column_width()), -- m_row_heights(0, m_doc.get_sheet_size().rows, get_default_row_height()), ---- --2.25.1 -- -diff --git a/external/liborcus/unused-variables.patch.1 b/external/liborcus/unused-variables.patch.1 -deleted file mode 100644 -index 77b88fae288c..000000000000 ---- a/external/liborcus/unused-variables.patch.1 -+++ /dev/null -@@ -1,24 +0,0 @@ --From 5fccafa297ce2439ee850e13ccbeea3edb1750af Mon Sep 17 00:00:00 2001 --From: Kohei Yoshida <kohei.yoshida@gmail.com> --Date: Tue, 2 Nov 2021 20:42:45 -0400 --Subject: [PATCH] Unused variables. -- ----- -- include/orcus/sax_parser.hpp | 1 - -- 1 file changed, 1 deletion(-) -- --diff --git a/include/orcus/sax_parser.hpp b/include/orcus/sax_parser.hpp --index 24b1e8ea..15e8d917 100644 ----- a/include/orcus/sax_parser.hpp --+++ b/include/orcus/sax_parser.hpp --@@ -539,7 +539,6 @@ template<typename _Handler, typename _Config> -- void sax_parser<_Handler,_Config>::attribute() -- { -- sax::parser_attribute attr; --- std::string_view attr_ns_name, attr_name, attr_value; -- attribute_name(attr.ns, attr.name); -- -- #if ORCUS_DEBUG_SAX_PARSER ---- --2.25.1 -- -diff --git a/external/liborcus/windows-constants-hack.patch b/external/liborcus/windows-constants-hack.patch -index 51aabfa1fb47..e86c74a722f3 100644 ---- a/external/liborcus/windows-constants-hack.patch -+++ b/external/liborcus/windows-constants-hack.patch -@@ -8,8 +8,8 @@ index ae571f5..539ce18 100644 - - -#include "constants.inl" - +#define ORCUS_MAJOR_VERSION 0 --+#define ORCUS_MINOR_VERSION 16 --+#define ORCUS_MICRO_VERSION 0 -++#define ORCUS_MINOR_VERSION 17 -++#define ORCUS_MICRO_VERSION 2 - - namespace orcus { - -diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx -index 674c2cfe7c8f..f5f2fd8a11c0 100644 ---- a/sc/source/filter/orcus/interface.cxx -+++ b/sc/source/filter/orcus/interface.cxx -@@ -1725,16 +1725,15 @@ void ScOrcusStyles::set_font_underline_color(orcus::spreadsheet::color_elem_t al - orcus::spreadsheet::color_elem_t green, - orcus::spreadsheet::color_elem_t blue) - { -- maCurrentFont.maUnderlineColor = Color(ColorTransparency, alpha, red, green, blue); -+ maCurrentFont.maUnderlineColor = Color(ColorAlpha, alpha, red, green, blue); - } - --void ScOrcusStyles::set_font_color(orcus::spreadsheet::color_elem_t /*alpha*/, -+void ScOrcusStyles::set_font_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) - { -- // Ignore the alpha value for now. -- maCurrentFont.maColor = Color(red, green, blue); -+ maCurrentFont.maColor = Color(ColorAlpha, alpha, red, green, blue); - maCurrentFont.mbHasFontAttr = true; - } - --- -cgit v1.2.1 - diff --git a/extra/libreoffice-still/poppler-22.03.0.patch b/extra/libreoffice-still/poppler-22.03.0.patch deleted file mode 100644 index c6544b257..000000000 --- a/extra/libreoffice-still/poppler-22.03.0.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -index ad6320139..e5f6d9c68 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -@@ -138,6 +138,15 @@ int main(int argc, char **argv) - _setmode( _fileno( g_binary_out ), _O_BINARY ); - #endif - -+#if POPPLER_CHECK_VERSION(22, 3, 0) -+ PDFDoc aDoc( std::make_unique<GooString>(pFileName), -+ GooString(pOwnerPasswordStr), -+ GooString(pUserPasswordStr) ); -+ -+ PDFDoc aErrDoc( std::make_unique<GooString>(pErrFileName), -+ GooString(pOwnerPasswordStr), -+ GooString(pUserPasswordStr) ); -+#else - PDFDoc aDoc( pFileName, - pOwnerPasswordStr, - pUserPasswordStr ); -@@ -145,6 +154,7 @@ int main(int argc, char **argv) - PDFDoc aErrDoc( pErrFileName, - pOwnerPasswordStr, - pUserPasswordStr ); -+#endif - - // Check various permissions for aDoc. - PDFDoc &rDoc = aDoc.isOk()? aDoc: aErrDoc; diff --git a/extra/libreoffice-still/poppler-22.04.0.patch b/extra/libreoffice-still/poppler-22.04.0.patch deleted file mode 100644 index 9a0449038..000000000 --- a/extra/libreoffice-still/poppler-22.04.0.patch +++ /dev/null @@ -1,71 +0,0 @@ -# Patch from FreeBSD (https://cgit.freebsd.org/ports/commit/?id=d9b5ef800dbd) - ---- sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx.orig 2022-04-26 16:11:01 UTC -+++ sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -@@ -474,11 +474,17 @@ int PDFOutDev::parseFont( long long nNewId, GfxFont* g - { - // TODO(P3): Unfortunately, need to read stream twice, since - // we must write byte count to stdout before -+#if !POPPLER_CHECK_VERSION(22, 3, 0) - char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize ); -+#else -+ std::optional<std::vector<unsigned char>> pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef() ); -+#endif - if( pBuf ) - { - aNewFont.isEmbedded = true; -+#if !POPPLER_CHECK_VERSION(22, 3, 0) - gfree(pBuf); -+#endif - } - } - -@@ -492,21 +498,32 @@ void PDFOutDev::writeFontFile( GfxFont* gfxFont ) cons - return; - - int nSize = 0; -- char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize ); -+#if !POPPLER_CHECK_VERSION(22, 3, 0) -+ char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize ); -+#else -+ std::optional<std::vector<unsigned char>> pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef() ); -+#endif - if( !pBuf ) - return; - - // ---sync point--- see SYNC STREAMS above - fflush(stdout); -- -+#if !POPPLER_CHECK_VERSION(22, 3, 0) - if( fwrite(pBuf, sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) ) -+#else -+ if( fwrite(reinterpret_cast<char*>(pBuf.value().data()), sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) ) -+#endif - { -- gfree(pBuf); -+#if !POPPLER_CHECK_VERSION(22, 3, 0) -+ gfree(pBuf); -+#endif - exit(1); // error - } - // ---sync point--- see SYNC STREAMS above - fflush(g_binary_out); -- gfree(pBuf); -+#if !POPPLER_CHECK_VERSION(22, 3, 0) -+ gfree(pBuf); -+#endif - } - - #if POPPLER_CHECK_VERSION(0, 83, 0) -@@ -759,7 +776,11 @@ void PDFOutDev::updateFont(GfxState *state) - { - assert(state); - -+#if !POPPLER_CHECK_VERSION(22, 3, 0) - GfxFont *gfxFont = state->getFont(); -+#else -+ GfxFont *gfxFont = state->getFont().get(); -+#endif - if( !gfxFont ) - return; -