author | Andreas Radke
<andyrtr@archlinux.org> 2016-08-03 16:18:27 UTC |
committer | Andreas Radke
<andyrtr@archlinux.org> 2016-08-03 16:18:27 UTC |
parent | 601022bc035b0881bb87f3e3676699e73115da81 |
PKGBUILD | +49 | -54 |
fix_gcc_build_error.diff | +0 | -39 |
hunspell14_buildfix.diff | +0 | -14 |
liborcus-0.11.2.diff | +118 | -0 |
remove_unnecessary_orcus_external_usage_from_makefiles.diff | +124 | -0 |
update_liborcus_to_0.11.0.diff | +1983 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index e169461..ec87c1c 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,11 +1,18 @@ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. Feel free to contact foutrelis@archlinux.org for +# more information. +_google_default_client_id=413772536636.apps.googleusercontent.com +_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 + pkgbase=libreoffice-still pkgname=('libreoffice-still-sdk' 'libreoffice-still') -_LOver=5.0.6.3 -pkgver=5.0.6 -pkgrel=3 +_LOver=5.1.5.2 +pkgver=5.1.5 +pkgrel=1 arch=('i686' 'x86_64') license=('LGPL3') url="http://www.libreoffice.org/" @@ -14,20 +21,21 @@ makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.5' 'libwpd>=0.9.2' 'lib 'libxslt' 'redland' 'icu' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite' 'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr' 'libmspub' 'harfbuzz-icu' 'glew' 'nss' 'clucene' 'hicolor-icon-theme' - 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'xdg-utils' 'gst-plugins-base-libs' + 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'gst-plugins-base-libs' 'glu' 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'apache-ant' - 'gperf' 'kdelibs' 'cppunit' 'beanshell2' 'vigra' 'clucene' #'gtk3' + 'gperf' 'kdelibs' 'gtk3' 'cppunit' 'beanshell2' 'vigra' 'clucene' 'junit' 'libmythes' 'libwpg' 'mesa' 'java-environment' 'postgresql-libs' - 'bluez-libs' 'harfbuzz-icu' 'gdb' 'doxygen' 'libatomic_ops' 'glew' + 'bluez-libs' 'harfbuzz-icu' 'gdb' 'doxygen' 'libatomic_ops' 'mdds' 'glew' 'apr' 'serf' 'ttf-liberation' 'glm' 'libxinerama' 'libpagemaker' - 'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'libfbclient') + 'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liborcus' 'liblangtag' + 'libexttextcat' 'libfbclient' 'libcmis') _mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}" #_mirror="http://dev-builds.libreoffice.org/pre-releases/src" _additional_source_url="http://dev-www.libreoffice.org/src" _additional_source_url2="http://dev-www.libreoffice.org/extern" source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc} - ${_additional_source_url}/d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 + ${_additional_source_url}/boost_1_59_0.tar.bz2 ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip @@ -45,9 +53,6 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc} ${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip ${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip ${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip - ${_additional_source_url}/10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2 - ${_additional_source_url}/mdds_0.12.1.tar.bz2 - ${_additional_source_url}/7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2 ${_additional_source_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz ${_additional_source_url}/language-subtag-registry-2015-08-04.tar.bz2 ${_additional_source_url}/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 @@ -56,17 +61,16 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc} ${_additional_source_url}/libgltf/libgltf-0.0.2.tar.bz2 ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - ${_additional_source_url}/5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.tar.gz ${_additional_source_url}/libfreehand-0.1.1.tar.bz2 - ${_additional_source_url}/36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2 ${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll make-pyuno-work-with-system-wide-module-install.diff libreoffice-still.sh libreoffice-still.csh + update_liborcus_to_0.11.0.diff + remove_unnecessary_orcus_external_usage_from_makefiles.diff + liborcus-0.11.2.diff gcc6_buildfix.diff - fix_gcc_build_error.diff - hunspell14_buildfix.diff buildfix.diff) -noextract=(d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 +noextract=(boost_1_59_0.tar.bz2 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip @@ -84,9 +88,6 @@ noextract=(d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip - 10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2 - mdds_0.12.1.tar.bz2 - 7681383be6ce489d84c1c74f4e7f9643-liborcus-0.7.0.tar.bz2 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz language-subtag-registry-2015-08-04.tar.bz2 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 @@ -95,18 +96,16 @@ noextract=(d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2 libgltf-0.0.2.tar.bz2 d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - 5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.tar.gz libfreehand-0.1.1.tar.bz2 - 36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2 185d60944ea767075d27247c3162b3bc-unowinreg.dll) validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org> -md5sums=('541d92329d433696c478f7669ac976f1' +md5sums=('7103457a9d55544d8ce93e009f1b2ca1' 'SKIP' - '902b0fa074a8b60a9598f558e9d687f7' + '05c2471dcbd424515ae9b0dd605e7c8c' 'SKIP' - '644f33f2bc84fe9ffd8a4c09b41a36fc' + '7670bbe6b922add9fe82f57ac4ca506e' 'SKIP' - 'd6eef4b4cacb2183f2bf265a5a03a354' + '6aa9a5c6a4ca1016edd0ed1178e3cb87' '1f24ab1d39f4a51faf22244c94a6203f' '35c94d2df8893241173de1d16b6034c0' '798b2ffdc8bcfe7bca2cf92b62caf685' @@ -124,9 +123,6 @@ md5sums=('541d92329d433696c478f7669ac976f1' '3bdf40c0d199af31923e900d082ca2dd' 'ace6ab49184e329db254e454a010f56d' 'db60e4fde8dd6d6807523deb71ee34dc' - '10d61fbaa6a06348823651b1bd7940fe' - 'ef2560ed5416652a7fe195305b14cebe' - '7681383be6ce489d84c1c74f4e7f9643' '0168229624cfac409e766913506961a8' 'bf5986dbfa1c9a0f26cf1b00ed369484' '4b87018f7fff1d054939d19920b751a0' @@ -135,19 +131,19 @@ md5sums=('541d92329d433696c478f7669ac976f1' 'd63a9f47ab048f5009d90693d6aa6424' 'd8bd5eed178db6e2b18eeed243f85aa8' 'ba2930200c9f019c2d93a8c88c651a0f' - '5821b806a98e6c38370970e682ce76e8' '8cf70c5dc4d24d2dc4a107f509d2d6d7' - '36271d3fa0d9dec1632029b6d7aac925' '185d60944ea767075d27247c3162b3bc' 'dcb5ad3e5f7139227677ea064b075422' '40680393752d98bcb590f1f62efa61a9' 'f82232620f3e27d1532c49af4b36ce9a' + '3f526b966a672d1237cfcbadae0e3f95' + 'ac71e21ecc0976b2ea6e233854963d4b' + '58616b84405f0a610a713bbd060d3214' '6752d22fc5bcbdbef0640c6aca163e50' - '60a6a9bf86bbcefa8c712dc8ba8ab73f' - '2afac5aa93f7bcd85058348147c962e4' 'd386f3a0b484cd3929329a294159f5bc') prepare() { + cd libreoffice-$_LOver # move external sources into place @@ -179,19 +175,22 @@ prepare() { # i686 build broken [ "$CARCH" = "i686" ] && sed -i '/CppunitTest_sw_ooxmlimport/d' sw/Module_sw.mk + [ "$CARCH" = "i686" ] && sed -i '/CppunitTest_sw_ooxmlexport7/d' sw/Module_sw.mk [ "$CARCH" = "i686" ] && sed -i '/CppunitTest_basic_scanner/d' basic/Module_basic.mk # qt4 fix sed -i "s:qmake:qmake-qt4:g" configure.ac + + # https://cgit.freedesktop.org/libreoffice/core/commit/?id=b325b4c286b56a63316063a3ac4648bf7b7efcbe + patch -Np1 -i ${srcdir}/update_liborcus_to_0.11.0.diff + # https://cgit.freedesktop.org/libreoffice/core/commit/?id=07d4c443e21cd22545d4516515c50b1c8dd39a9b + patch -Np1 -i ${srcdir}/remove_unnecessary_orcus_external_usage_from_makefiles.diff + # https://cgit.freedesktop.org/libreoffice/core/commit/?id=db729f3b685fd832a3ec7387b339cf2bbeb4bd4d + patch -Np1 -i ${srcdir}/liborcus-0.11.2.diff # fix checking whether KDE is >= 4.2... configure: error: KDE version too old # http://bugs.debian.org/823145 patch -Np1 -i ${srcdir}/gcc6_buildfix.diff - # commit b9fa2963cf12e6987b3a0acc219c4fa591e41be8 - patch -Np1 -i ${srcdir}/fix_gcc_build_error.diff - - # hunspell 1.4.x fix - patch -Np1 -i ${srcdir}/hunspell14_buildfix.diff } build() { @@ -199,13 +198,12 @@ build() { # strip -s from Makeflags in case you use it to shorten build logs _MAKEFLAGS=${MAKEFLAGS/-s/} - + ./autogen.sh --with-build-version="${_LOver} Arch Linux build-${pkgrel}" --with-vendor="Arch Linux" \ --enable-split-app-modules \ --with-parallelism=${_MAKEFLAGS/-j/} \ --with-external-tar="${srcdir}/ext_sources" \ --disable-fetch-external \ - --disable-verbose \ --enable-release-build \ --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \ --libdir=/usr/lib --mandir=/usr/share/man \ @@ -216,13 +214,9 @@ build() { --enable-dbus \ --enable-evolution2\ --enable-gio\ - --disable-gnome-vfs\ - --disable-kde\ --enable-kde4\ - --disable-gtk3 \ + --enable-gtk3 \ --disable-gstreamer-0-10 \ - --disable-gconf \ - --disable-lockdown \ --enable-openssl \ --enable-odk\ --enable-orcus \ @@ -235,14 +229,14 @@ build() { --without-fonts\ --with-system-apr \ --with-system-libcdr \ - --without-system-mdds\ + --with-system-mdds\ --without-myspell-dicts \ --with-system-libvisio \ - --without-system-libcmis \ + --with-system-libcmis \ --with-system-libmspub \ - --without-system-libexttextcat \ - --without-system-orcus \ - --without-system-liblangtag \ + --with-system-libexttextcat \ + --with-system-orcus \ + --with-system-liblangtag \ --without-system-jfreereport \ --without-system-apache-commons \ --with-system-libodfgen \ @@ -280,13 +274,13 @@ build() { --without-system-hsqldb \ --with-alloc=system \ --with-system-clucene \ + --with-gdrive-client-id=${_google_default_client_id} \ + --with-gdrive-client-secret=${_google_default_client_secret} \ --disable-dependency-tracking \ --enable-hardlink-deliver touch src.downloaded make build - # use this if i686 fails - #make || make CppunitTest_sw_ooxmlsdrexport VALGRIND=memcheck mkdir ${srcdir}/fakeinstall make DESTDIR=${srcdir}/fakeinstall distro-pack-install @@ -301,7 +295,7 @@ package_libreoffice-still-sdk() { pkgdesc="Software Development Kit for LibreOffice maintenance branch" depends=('libreoffice-still' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment') provides=('libreoffice-sdk') - conflicts=('libreoffice-still-sdk') + conflicts=('libreoffice-fresh-sdk') for dir in $(grep -h ^%dir libreoffice-$_LOver/file-lists/sdk{,_doc}_list.txt); do install -dm755 ${pkgdir}/${dir/\%dir/} @@ -333,7 +327,8 @@ package_libreoffice-still() { 'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr' 'libmspub' 'harfbuzz-icu' 'glew' 'nss' 'clucene' 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'glu' 'libpagemaker' - 'libxinerama' 'libabw' 'libmwaw' 'libe-book' 'libcups' 'gtk2' 'libfbclient') + 'libxinerama' 'libabw' 'libmwaw' 'libe-book' 'libcups' 'gtk2' + 'liborcus' 'liblangtag' 'libexttextcat' 'libfbclient' 'libcmis') optdepends=('java-runtime: adds java support' 'java-environment: required by extension-wiki-publisher and extension-nlpsolver' 'pstoedit: translates PostScript and PDF graphics into other vector formats' @@ -348,7 +343,7 @@ package_libreoffice-still() { 'libpaper: takes care of papersize' 'postgresql-libs: for postgresql-connector' 'coin-or-mp: required by the Calc solver' - #'gtk3: for GTK3 integration' + 'gtk3: for GTK3 integration' 'kdelibs: for KDE desktop integration') backup=(etc/libreoffice/sofficerc etc/libreoffice/bootstraprc diff --git a/fix_gcc_build_error.diff b/fix_gcc_build_error.diff deleted file mode 100644 index d2e2121..0000000 --- a/fix_gcc_build_error.diff +++ /dev/null @@ -1,39 +0,0 @@ -From b9fa2963cf12e6987b3a0acc219c4fa591e41be8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> -Date: Wed, 3 Feb 2016 10:30:43 +0000 -Subject: fix gcc build error - -error: invalid operands of types '__gnu_cxx::__enable_if<true, double>::__type -{aka double}' and 'int' to binary 'operator%' - -apparently there's a template returning double for abs for the -non-int/long/float/double argument case. So promote earlier to int so the -abs<int> is called - -Change-Id: I882a27c5ec349f894c1c9f4857687360a46b55ae - -diff --git a/sax/source/tools/converter.cxx b/sax/source/tools/converter.cxx -index 744415e..cf061c9 100644 ---- a/sax/source/tools/converter.cxx -+++ b/sax/source/tools/converter.cxx -@@ -1250,7 +1250,7 @@ bool Converter::convertDuration(util::Duration& rDuration, - - - static void --lcl_AppendTimezone(OUStringBuffer & i_rBuffer, sal_Int16 const nOffset) -+lcl_AppendTimezone(OUStringBuffer & i_rBuffer, int const nOffset) - { - if (0 == nOffset) - { -@@ -1435,7 +1435,7 @@ lcl_MaxDaysPerMonth(const sal_Int32 nMonth, const sal_Int32 nYear) - static void lcl_ConvertToUTC( - sal_Int16 & o_rYear, sal_uInt16 & o_rMonth, sal_uInt16 & o_rDay, - sal_uInt16 & o_rHours, sal_uInt16 & o_rMinutes, -- sal_Int16 const nSourceOffset) -+ int const nSourceOffset) - { - sal_Int16 nOffsetHours(abs(nSourceOffset) / 60); - sal_Int16 const nOffsetMinutes(abs(nSourceOffset) % 60); --- -cgit v0.10.2 - diff --git a/hunspell14_buildfix.diff b/hunspell14_buildfix.diff deleted file mode 100644 index 810adc0..0000000 --- a/hunspell14_buildfix.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx -index 6979a33..a9a1575 100644 ---- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx -+++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx -@@ -31,7 +31,6 @@ - - #include <lingutil.hxx> - #include <hunspell.hxx> --#include <dictmgr.hxx> - #include <sspellimp.hxx> - - #include <linguistic/lngprops.hxx> --- -cgit v0.10.2 diff --git a/liborcus-0.11.2.diff b/liborcus-0.11.2.diff new file mode 100644 index 0000000..08a4af5 --- /dev/null +++ b/liborcus-0.11.2.diff @@ -0,0 +1,118 @@ +From db729f3b685fd832a3ec7387b339cf2bbeb4bd4d Mon Sep 17 00:00:00 2001 +From: Kohei Yoshida <kohei.yoshida@gmail.com> +Date: Wed, 11 May 2016 21:45:56 -0400 +Subject: Update mdds to 1.2.0. Note that the API version is also up. + +liborcus-0.11.2 is out only to make it buildable with mdds-1.2. + +Change-Id: I9648d827b008da252c57be0ebfd2efccb008ac70 +Reviewed-on: https://gerrit.libreoffice.org/24944 +Tested-by: Jenkins <ci@libreoffice.org> +Reviewed-by: Kohei Yoshida <libreoffice@kohei.us> + +diff --git a/configure.ac b/configure.ac +index 3f1b7f0..6dea282 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -8832,7 +8832,7 @@ AC_SUBST(SYSTEM_BOOST) + dnl =================================================================== + dnl Check for system mdds + dnl =================================================================== +-libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds >= 0.12.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"]) ++libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.2 >= 1.2.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"]) + + dnl =================================================================== + dnl Check for system glm +@@ -9148,7 +9148,7 @@ if test -z "$enable_orcus" -o "$enable_orcus" != no; then + ENABLE_ORCUS="TRUE" + AC_DEFINE(ENABLE_ORCUS) + +- libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.11 >= 0.11.0]) ++ libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.11 >= 0.11.2]) + if test "$with_system_orcus" != "yes"; then + if test "$SYSTEM_BOOST" = "TRUE"; then + # =========================================================== +diff --git a/sc/inc/mtvelements.hxx b/sc/inc/mtvelements.hxx +index 0bc5162..18edafc 100644 +--- a/sc/inc/mtvelements.hxx ++++ b/sc/inc/mtvelements.hxx +@@ -53,6 +53,7 @@ const mdds::mtv::element_t element_type_cellnote = mdds::mtv::element_type_user_ + /// Mapped standard element types (for convenience). + const mdds::mtv::element_t element_type_numeric = mdds::mtv::element_type_numeric; + const mdds::mtv::element_t element_type_empty = mdds::mtv::element_type_empty; ++const mdds::mtv::element_t element_type_uint16 = mdds::mtv::element_type_ushort; + + /// Custom element blocks. + +@@ -65,6 +66,7 @@ typedef mdds::mtv::noncopyable_managed_element_block<element_type_formula, ScFor + + /// Mapped standard element blocks (for convenience). + typedef mdds::mtv::numeric_element_block numeric_block; ++typedef mdds::mtv::ushort_element_block uint16_block; + + /// This needs to be in the same namespace as CellTextAttr. + MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(CellTextAttr, element_type_celltextattr, CellTextAttr(), celltextattr_block) +diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx +index f1ce9a5..1689809 100644 +--- a/sc/source/core/tool/scmatrix.cxx ++++ b/sc/source/core/tool/scmatrix.cxx +@@ -57,17 +57,15 @@ using ::std::unary_function; + * Custom string trait struct to tell mdds::multi_type_matrix about the + * custom string type and how to handle blocks storing them. + */ +-struct custom_string_trait ++struct matrix_trait + { +- typedef svl::SharedString string_type; + typedef sc::string_block string_element_block; +- +- static const mdds::mtv::element_t string_type_identifier = sc::element_type_string; ++ typedef sc::uint16_block integer_element_block; + + typedef mdds::mtv::custom_block_func1<sc::string_block> element_block_func; + }; + +-typedef mdds::multi_type_matrix<custom_string_trait> MatrixImplType; ++typedef mdds::multi_type_matrix<matrix_trait> MatrixImplType; + + namespace { + +@@ -2304,6 +2302,7 @@ public: + } + } + break; ++ case mdds::mtm::element_integer: + case mdds::mtm::element_empty: + break; + } +diff --git a/svl/source/misc/gridprinter.cxx b/svl/source/misc/gridprinter.cxx +index 4044b3e..70e7439 100644 +--- a/svl/source/misc/gridprinter.cxx ++++ b/svl/source/misc/gridprinter.cxx +@@ -26,12 +26,10 @@ const mdds::mtv::element_t element_type_string = mdds::mtv::element_type_user_st + // String block + typedef mdds::mtv::default_element_block<element_type_string, OUString> string_block; + +-struct custom_string_trait ++struct matrix_trait + { +- typedef OUString string_type; + typedef string_block string_element_block; +- +- static const mdds::mtv::element_t string_type_identifier = element_type_string; ++ typedef mdds::mtv::ushort_element_block integer_element_block; + + typedef mdds::mtv::custom_block_func1<string_block> element_block_func; + }; +@@ -48,7 +46,7 @@ MDDS_MTV_DEFINE_ELEMENT_CALLBACKS(OUString, svl::element_type_string, OUString() + + namespace svl { + +-typedef mdds::multi_type_matrix<custom_string_trait> MatrixImplType; ++typedef mdds::multi_type_matrix<matrix_trait> MatrixImplType; + + struct GridPrinter::Impl + { +-- +cgit v0.10.2 + diff --git a/remove_unnecessary_orcus_external_usage_from_makefiles.diff b/remove_unnecessary_orcus_external_usage_from_makefiles.diff new file mode 100644 index 0000000..33bc088 --- /dev/null +++ b/remove_unnecessary_orcus_external_usage_from_makefiles.diff @@ -0,0 +1,124 @@ +From 07d4c443e21cd22545d4516515c50b1c8dd39a9b Mon Sep 17 00:00:00 2001 +From: Michael Stahl <mstahl@redhat.com> +Date: Tue, 8 Mar 2016 15:01:59 +0100 +Subject: sc: remove unnecessary orcus external usage from makefiles + +This caused incremental builds to fail after today's orcus upgrade. + +The cxx files of these tests don't actually include orcus headers, so +the libraries were not re-linked in incremental builds. + +Change-Id: Ibfcf216a7848f3c0adfae4ef59c4b756c290d6b2 + +diff --git a/sc/CppunitTest_sc_bugfix_test.mk b/sc/CppunitTest_sc_bugfix_test.mk +index 55311cd..712f444 100644 +--- a/sc/CppunitTest_sc_bugfix_test.mk ++++ b/sc/CppunitTest_sc_bugfix_test.mk +@@ -16,8 +16,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_bugfix_test, \ + $(eval $(call gb_CppunitTest_use_externals,sc_bugfix_test, \ + boost_headers \ + mdds_headers \ +- orcus \ +- orcus-parser \ + libxml2 \ + )) + +diff --git a/sc/CppunitTest_sc_copypaste.mk b/sc/CppunitTest_sc_copypaste.mk +index 7df4f51..641709c 100644 +--- a/sc/CppunitTest_sc_copypaste.mk ++++ b/sc/CppunitTest_sc_copypaste.mk +@@ -16,8 +16,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_copypaste, \ + $(eval $(call gb_CppunitTest_use_externals,sc_copypaste, \ + boost_headers \ + mdds_headers \ +- orcus \ +- orcus-parser \ + libxml2 \ + )) + +diff --git a/sc/CppunitTest_sc_filters_test.mk b/sc/CppunitTest_sc_filters_test.mk +index 4fbf489..db445f53 100644 +--- a/sc/CppunitTest_sc_filters_test.mk ++++ b/sc/CppunitTest_sc_filters_test.mk +@@ -22,8 +22,6 @@ endif + $(eval $(call gb_CppunitTest_use_externals,sc_filters_test, \ + boost_headers \ + mdds_headers \ +- orcus \ +- orcus-parser \ + )) + + $(eval $(call gb_CppunitTest_use_libraries,sc_filters_test, \ +diff --git a/sc/CppunitTest_sc_opencl_test.mk b/sc/CppunitTest_sc_opencl_test.mk +index 86605a2..ea93111 100644 +--- a/sc/CppunitTest_sc_opencl_test.mk ++++ b/sc/CppunitTest_sc_opencl_test.mk +@@ -16,8 +16,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_opencl_test, \ + $(eval $(call gb_CppunitTest_use_externals,sc_opencl_test, \ + boost_headers \ + mdds_headers \ +- orcus \ +- orcus-parser \ + )) + + $(eval $(call gb_CppunitTest_use_libraries,sc_opencl_test, \ +diff --git a/sc/CppunitTest_sc_rangelst_test.mk b/sc/CppunitTest_sc_rangelst_test.mk +index 2bf6f0f..fa6f690 100644 +--- a/sc/CppunitTest_sc_rangelst_test.mk ++++ b/sc/CppunitTest_sc_rangelst_test.mk +@@ -16,18 +16,12 @@ $(eval $(call gb_CppunitTest_use_externals,sc_rangelst_test, \ + icuuc \ + libxml2 \ + mdds_headers \ +- orcus \ +- orcus-parser \ + )) + + $(eval $(call gb_CppunitTest_add_exception_objects,sc_rangelst_test, \ + sc/qa/unit/rangelst_test \ + )) + +-$(eval $(call gb_CppunitTest_use_library_objects,sc_rangelst_test, \ +- scqahelper \ +-)) +- + $(eval $(call gb_CppunitTest_use_libraries,sc_rangelst_test, \ + basegfx \ + comphelper \ +@@ -45,6 +39,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_rangelst_test, \ + sax \ + sb \ + sc \ ++ scqahelper \ + sfx \ + sot \ + svl \ +diff --git a/sc/CppunitTest_sc_subsequent_export_test.mk b/sc/CppunitTest_sc_subsequent_export_test.mk +index 1cfaf69..6c2c9e5 100644 +--- a/sc/CppunitTest_sc_subsequent_export_test.mk ++++ b/sc/CppunitTest_sc_subsequent_export_test.mk +@@ -16,8 +16,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_subsequent_export_test, \ + $(eval $(call gb_CppunitTest_use_externals,sc_subsequent_export_test, \ + boost_headers \ + mdds_headers \ +- orcus \ +- orcus-parser \ + libxml2 \ + )) + +diff --git a/sc/CppunitTest_sc_subsequent_filters_test.mk b/sc/CppunitTest_sc_subsequent_filters_test.mk +index 08dedbb..845206b 100644 +--- a/sc/CppunitTest_sc_subsequent_filters_test.mk ++++ b/sc/CppunitTest_sc_subsequent_filters_test.mk +@@ -16,8 +16,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_subsequent_filters_test, \ + $(eval $(call gb_CppunitTest_use_externals,sc_subsequent_filters_test, \ + boost_headers \ + mdds_headers \ +- orcus \ +- orcus-parser \ + libxml2 \ + )) + +-- +cgit v0.10.2 + diff --git a/update_liborcus_to_0.11.0.diff b/update_liborcus_to_0.11.0.diff new file mode 100644 index 0000000..8691d7d --- /dev/null +++ b/update_liborcus_to_0.11.0.diff @@ -0,0 +1,1983 @@ +From b325b4c286b56a63316063a3ac4648bf7b7efcbe Mon Sep 17 00:00:00 2001 +From: Kohei Yoshida <kohei.yoshida@gmail.com> +Date: Sat, 5 Mar 2016 20:09:34 -0500 +Subject: Update liborcus to 0.11.0. + +Markus did half of this, and I simply carried the torch. + +Change-Id: Icd3ee1e4b5bd562faee06dfd9dce52a4bed49a71 +Reviewed-on: https://gerrit.libreoffice.org/22943 +Tested-by: Jenkins <ci@libreoffice.org> +Reviewed-by: Kohei Yoshida <libreoffice@kohei.us> + +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index 5b497ee..c6fe371 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -743,6 +743,21 @@ $(call gb_LinkTarget_set_include,$(1),\ + + endef + ++define gb_LinkTarget__use_boost_filesystem ++$(call gb_LinkTarget_add_defs,$(1),\ ++ -DBOOST_ALL_NO_LIB \ ++) ++ ++$(call gb_LinkTarget_use_static_libraries,$(1),\ ++ boost_filesystem \ ++) ++ ++endef ++ ++define gb_ExternalProject__use_boost_filesystem ++$(call gb_ExternalProject_use_static_libraries,$(1),boost_filesystem) ++endef ++ + define gb_ExternalProject__use_boost_headers + $(call gb_ExternalProject_use_unpacked,$(1),boost) + +@@ -3129,7 +3144,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.10 \ ++ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.11 \ + ) + + $(if $(SYSTEM_BOOST), \ +@@ -3148,7 +3163,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.10 \ ++ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.11 \ + ) + + endef +diff --git a/configure.ac b/configure.ac +index 934d43a..dab1919 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -9196,7 +9196,7 @@ if test -z "$enable_orcus" -o "$enable_orcus" != no; then + ENABLE_ORCUS="TRUE" + AC_DEFINE(ENABLE_ORCUS) + +- libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.10 >= 0.9.0]) ++ libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.11 >= 0.11.0]) + if test "$with_system_orcus" != "yes"; then + if test "$SYSTEM_BOOST" = "TRUE"; then + # =========================================================== +diff --git a/download.lst b/download.lst +index 906a579..475112b 100644 +--- a/download.lst ++++ b/download.lst +@@ -117,8 +117,8 @@ export OPENCOLLADA_TARBALL := OpenCOLLADA-master-6509aa13af.tar.bz2 + export OPENLDAP_TARBALL := 804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz + export OPENSSL_MD5SUM := 9392e65072ce4b614c1392eefc1f23d0 + export OPENSSL_TARBALL := openssl-1.0.2h.tar.gz +-export ORCUS_MD5SUM := e6efcbe50a5fd4d50d513c9a7a4139b0 +-export ORCUS_TARBALL := liborcus-0.9.2.tar.gz ++export ORCUS_MD5SUM := ca1e5d486b29cd519bb1d9845a6a768e ++export ORCUS_TARBALL := liborcus-0.11.0.tar.gz + export OWNCLOUD_ANDROID_LIB_MD5SUM := 593f0aa47bf2efc0efda2d28fae063b2 + export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz + export PAGEMAKER_MD5SUM := 5c4985a68be0b79d3f809da5e12b143c +diff --git a/external/boost/Module_boost.mk b/external/boost/Module_boost.mk +index 5bac25e..ae407f5 100644 +--- a/external/boost/Module_boost.mk ++++ b/external/boost/Module_boost.mk +@@ -11,6 +11,7 @@ $(eval $(call gb_Module_Module,boost)) + + $(eval $(call gb_Module_add_targets,boost,\ + StaticLibrary_boostdatetime \ ++ StaticLibrary_boost_filesystem \ + StaticLibrary_boost_system \ + StaticLibrary_boost_iostreams \ + UnpackedTarball_boost \ +diff --git a/external/boost/StaticLibrary_boost_filesystem.mk b/external/boost/StaticLibrary_boost_filesystem.mk +new file mode 100644 +index 0000000..024308a +--- /dev/null ++++ b/external/boost/StaticLibrary_boost_filesystem.mk +@@ -0,0 +1,36 @@ ++# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- ++# ++# This file is part of the LibreOffice project. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++# ++ ++$(eval $(call gb_StaticLibrary_StaticLibrary,boost_filesystem)) ++ ++$(eval $(call gb_StaticLibrary_use_unpacked,boost_filesystem,boost)) ++ ++$(eval $(call gb_StaticLibrary_set_warnings_not_errors,boost_filesystem)) ++ ++# disable "auto link" "feature" on MSVC ++$(eval $(call gb_StaticLibrary_add_defs,boost_filesystem,\ ++ -DBOOST_ALL_NO_LIB \ ++)) ++ ++$(eval $(call gb_StaticLibrary_use_external,boost_filesystem,boost_headers)) ++ ++$(eval $(call gb_StaticLibrary_set_generated_cxx_suffix,boost_filesystem,cpp)) ++ ++$(eval $(call gb_StaticLibrary_add_generated_exception_objects,boost_filesystem,\ ++ UnpackedTarball/boost/libs/filesystem/src/codecvt_error_category \ ++ UnpackedTarball/boost/libs/filesystem/src/operations \ ++ UnpackedTarball/boost/libs/filesystem/src/path \ ++ UnpackedTarball/boost/libs/filesystem/src/path_traits \ ++ UnpackedTarball/boost/libs/filesystem/src/portability \ ++ UnpackedTarball/boost/libs/filesystem/src/unique_path \ ++ UnpackedTarball/boost/libs/filesystem/src/utf8_codecvt_facet \ ++ UnpackedTarball/boost/libs/filesystem/src/windows_file_codecvt \ ++)) ++ ++# vim: set noet sw=4 ts=4: +diff --git a/external/liborcus/0001-Fix-for-OSX-build-inside-LibreOffice.patch b/external/liborcus/0001-Fix-for-OSX-build-inside-LibreOffice.patch +new file mode 100644 +index 0000000..d03c98d +--- /dev/null ++++ b/external/liborcus/0001-Fix-for-OSX-build-inside-LibreOffice.patch +@@ -0,0 +1,1175 @@ ++From a1df2d984d527931c6cbbe6547856283bdbf6a9b Mon Sep 17 00:00:00 2001 ++From: Kohei Yoshida <kohei.yoshida@gmail.com> ++Date: Sun, 6 Mar 2016 21:21:31 -0500 ++Subject: [PATCH] Fix for OSX build inside LibreOffice. ++ ++--- ++ include/orcus/sax_ns_parser.hpp | 2 +- ++ slickedit/orcus.vpj | 178 ++++--------------------------- ++ src/liborcus/dom_tree.cpp | 12 +-- ++ src/liborcus/json_document_tree.cpp | 29 +++-- ++ src/liborcus/json_document_tree_test.cpp | 2 +- ++ src/liborcus/ods_content_xml_context.cpp | 2 +- ++ src/liborcus/opc_reader.cpp | 2 +- ++ src/liborcus/orcus_gnumeric.cpp | 2 +- ++ src/liborcus/orcus_import_ods.cpp | 2 +- ++ src/liborcus/orcus_import_xlsx.cpp | 2 +- ++ src/liborcus/orcus_xls_xml.cpp | 2 +- ++ src/liborcus/orcus_xlsx.cpp | 20 ++-- ++ src/liborcus/orcus_xml.cpp | 4 +- ++ src/liborcus/xlsx_sheet_context.cpp | 8 +- ++ src/liborcus/xml_map_tree.cpp | 6 +- ++ src/liborcus/xml_structure_tree.cpp | 4 +- ++ src/liborcus/yaml_document_tree.cpp | 34 +++--- ++ src/mso/encryption_info.cpp | 3 +- ++ src/orcus_filter_global.cpp | 2 +- ++ src/orcus_json_main.cpp | 2 +- ++ src/orcus_yaml_main.cpp | 2 +- ++ src/parser/json_parser_base.cpp | 2 +- ++ src/parser/sax_parser_base.cpp | 2 +- ++ src/parser/string_pool.cpp | 4 +- ++ src/parser/yaml_parser_base.cpp | 2 +- ++ src/spreadsheet/document.cpp | 2 +- ++ 26 files changed, 95 insertions(+), 237 deletions(-) ++ ++diff --git a/include/orcus/sax_ns_parser.hpp b/include/orcus/sax_ns_parser.hpp ++index 680f39d..49a2b48 100644 ++--- a/include/orcus/sax_ns_parser.hpp +++++ b/include/orcus/sax_ns_parser.hpp ++@@ -142,7 +142,7 @@ private: ++ ++ void start_element(const sax::parser_element& elem) ++ { ++- m_scopes.push_back(make_unique<__sax::elem_scope>()); +++ m_scopes.push_back(orcus::make_unique<__sax::elem_scope>()); ++ __sax::elem_scope& scope = *m_scopes.back(); ++ scope.ns = m_ns_cxt.get(elem.ns); ++ scope.name = elem.name; ++diff --git a/slickedit/orcus.vpj b/slickedit/orcus.vpj ++index 23c6d42..bbc89ec 100644 ++--- a/slickedit/orcus.vpj +++++ b/slickedit/orcus.vpj ++@@ -145,6 +145,10 @@ ++ Filters=""></Folder> ++ </CustomFolders> ++ <Files AutoFolders="DirectoryView"> +++ <Folder Name="../example"> +++ <F N="../example/json.cpp"/> +++ <F N="../example/json_parser.cpp"/> +++ </Folder> ++ <Folder Name="../include"> ++ <Folder Name="orcus"> ++ <Folder Name="mso"> ++@@ -186,6 +190,7 @@ ++ <F N="../include/orcus/measurement.hpp"/> ++ <F N="../include/orcus/orcus_csv.hpp"/> ++ <F N="../include/orcus/orcus_gnumeric.hpp"/> +++ <F N="../include/orcus/orcus_import_ods.hpp"/> ++ <F N="../include/orcus/orcus_import_xlsx.hpp"/> ++ <F N="../include/orcus/orcus_ods.hpp"/> ++ <F N="../include/orcus/orcus_xls_xml.hpp"/> ++@@ -193,43 +198,34 @@ ++ <F N="../include/orcus/orcus_xml.hpp"/> ++ <F N="../include/orcus/parser_base.hpp"/> ++ <F N="../include/orcus/parser_global.hpp"/> ++- <F N="../include/orcus/parser_global.hpp"/> ++- <F N="../include/orcus/pstring.hpp"/> ++ <F N="../include/orcus/pstring.hpp"/> ++ <F N="../include/orcus/sax_ns_parser.hpp"/> ++- <F N="../include/orcus/sax_ns_parser.hpp"/> ++- <F N="../include/orcus/sax_parser.hpp"/> ++ <F N="../include/orcus/sax_parser.hpp"/> ++ <F N="../include/orcus/sax_parser_base.hpp"/> ++- <F N="../include/orcus/sax_parser_base.hpp"/> ++- <F N="../include/orcus/sax_token_parser.hpp"/> ++ <F N="../include/orcus/sax_token_parser.hpp"/> ++ <F N="../include/orcus/stream.hpp"/> ++- <F N="../include/orcus/stream.hpp"/> ++ <F N="../include/orcus/string_pool.hpp"/> ++- <F N="../include/orcus/string_pool.hpp"/> ++- <F N="../include/orcus/tokens.hpp"/> ++ <F N="../include/orcus/tokens.hpp"/> ++ <F N="../include/orcus/types.hpp"/> ++- <F N="../include/orcus/types.hpp"/> ++- <F N="../include/orcus/xml_namespace.hpp"/> ++ <F N="../include/orcus/xml_namespace.hpp"/> ++ <F N="../include/orcus/xml_structure_tree.hpp"/> ++- <F N="../include/orcus/xml_structure_tree.hpp"/> ++ <F N="../include/orcus/yaml_document_tree.hpp"/> ++ <F N="../include/orcus/yaml_parser.hpp"/> ++ <F N="../include/orcus/yaml_parser_base.hpp"/> ++ <F N="../include/orcus/zip_archive.hpp"/> ++- <F N="../include/orcus/zip_archive.hpp"/> ++- <F N="../include/orcus/zip_archive_stream.hpp"/> ++ <F N="../include/orcus/zip_archive_stream.hpp"/> ++ </Folder> ++ </Folder> +++ <Folder Name="../misc"> +++ <F N="../misc/sorted_string_map_perf.cpp"/> +++ </Folder> ++ <Folder Name="../parser_handlers"> ++ <F N="../parser_handlers/css.hpp"/> ++ <F N="../parser_handlers/css_test.cpp"/> ++ <F N="../parser_handlers/csv.hpp"/> ++ <F N="../parser_handlers/csv_test.cpp"/> +++ <F N="../parser_handlers/json.hpp"/> +++ <F N="../parser_handlers/json_test.cpp"/> ++ <F N="../parser_handlers/sax.hpp"/> ++ <F N="../parser_handlers/sax_ns.hpp"/> ++ <F N="../parser_handlers/sax_ns_test.cpp"/> ++@@ -240,308 +236,172 @@ ++ <Folder Name="../src"> ++ <Folder Name="liborcus"> ++ <F N="../src/liborcus/common_test.cpp"/> ++- <F N="../src/liborcus/common_test.cpp"/> ++- <F N="../src/liborcus/config.cpp"/> ++ <F N="../src/liborcus/config.cpp"/> +++ <F N="../src/liborcus/constants.inl"/> ++ <F N="../src/liborcus/css_document_tree.cpp"/> ++- <F N="../src/liborcus/css_document_tree.cpp"/> ++- <F N="../src/liborcus/css_document_tree_test.cpp"/> ++ <F N="../src/liborcus/css_document_tree_test.cpp"/> ++ <F N="../src/liborcus/css_selector.cpp"/> ++- <F N="../src/liborcus/css_selector.cpp"/> ++- <F N="../src/liborcus/detection_result.cpp"/> ++ <F N="../src/liborcus/detection_result.cpp"/> ++ <F N="../src/liborcus/detection_result.hpp"/> ++- <F N="../src/liborcus/detection_result.hpp"/> ++ <F N="../src/liborcus/dom_tree.cpp"/> ++- <F N="../src/liborcus/dom_tree.cpp"/> ++- <F N="../src/liborcus/format_detection.cpp"/> ++ <F N="../src/liborcus/format_detection.cpp"/> ++ <F N="../src/liborcus/format_detection_test.cpp"/> ++- <F N="../src/liborcus/format_detection_test.cpp"/> ++- <F N="../src/liborcus/global.cpp"/> ++ <F N="../src/liborcus/global.cpp"/> ++ <F N="../src/liborcus/gnumeric_cell_context.cpp"/> ++- <F N="../src/liborcus/gnumeric_cell_context.cpp"/> ++ <F N="../src/liborcus/gnumeric_cell_context.hpp"/> ++- <F N="../src/liborcus/gnumeric_cell_context.hpp"/> ++- <F N="../src/liborcus/gnumeric_cell_context_test.cpp"/> ++ <F N="../src/liborcus/gnumeric_cell_context_test.cpp"/> ++ <F N="../src/liborcus/gnumeric_context.cpp"/> ++- <F N="../src/liborcus/gnumeric_context.cpp"/> ++- <F N="../src/liborcus/gnumeric_context.hpp"/> ++ <F N="../src/liborcus/gnumeric_context.hpp"/> ++ <F N="../src/liborcus/gnumeric_detection_handler.cpp"/> ++- <F N="../src/liborcus/gnumeric_detection_handler.cpp"/> ++ <F N="../src/liborcus/gnumeric_detection_handler.hpp"/> ++- <F N="../src/liborcus/gnumeric_detection_handler.hpp"/> ++- <F N="../src/liborcus/gnumeric_handler.cpp"/> ++ <F N="../src/liborcus/gnumeric_handler.cpp"/> ++ <F N="../src/liborcus/gnumeric_handler.hpp"/> ++- <F N="../src/liborcus/gnumeric_handler.hpp"/> ++- <F N="../src/liborcus/gnumeric_helper.cpp"/> ++ <F N="../src/liborcus/gnumeric_helper.cpp"/> ++ <F N="../src/liborcus/gnumeric_helper.hpp"/> ++- <F N="../src/liborcus/gnumeric_helper.hpp"/> ++ <F N="../src/liborcus/gnumeric_helper_test.cpp"/> ++ <F N="../src/liborcus/gnumeric_namespace_types.cpp"/> ++- <F N="../src/liborcus/gnumeric_namespace_types.cpp"/> ++- <F N="../src/liborcus/gnumeric_namespace_types.hpp"/> ++ <F N="../src/liborcus/gnumeric_namespace_types.hpp"/> ++ <F N="../src/liborcus/gnumeric_sheet_context.cpp"/> ++- <F N="../src/liborcus/gnumeric_sheet_context.cpp"/> ++- <F N="../src/liborcus/gnumeric_sheet_context.hpp"/> ++ <F N="../src/liborcus/gnumeric_sheet_context.hpp"/> ++ <F N="../src/liborcus/gnumeric_sheet_context_test.cpp"/> ++- <F N="../src/liborcus/gnumeric_sheet_context_test.cpp"/> ++ <F N="../src/liborcus/gnumeric_token_constants.hpp"/> ++- <F N="../src/liborcus/gnumeric_token_constants.hpp"/> ++- <F N="../src/liborcus/gnumeric_token_constants.inl"/> ++ <F N="../src/liborcus/gnumeric_token_constants.inl"/> ++ <F N="../src/liborcus/gnumeric_tokens.cpp"/> ++- <F N="../src/liborcus/gnumeric_tokens.cpp"/> ++- <F N="../src/liborcus/gnumeric_tokens.hpp"/> ++ <F N="../src/liborcus/gnumeric_tokens.hpp"/> ++ <F N="../src/liborcus/gnumeric_tokens.inl"/> ++- <F N="../src/liborcus/gnumeric_tokens.inl"/> ++ <F N="../src/liborcus/info.cpp"/> ++ <F N="../src/liborcus/interface.cpp"/> ++- <F N="../src/liborcus/interface.cpp"/> ++ <F N="../src/liborcus/json_document_tree.cpp"/> ++ <F N="../src/liborcus/json_document_tree_test.cpp"/> ++ <F N="../src/liborcus/json_util.cpp"/> ++ <F N="../src/liborcus/json_util.hpp"/> ++ <F N="../src/liborcus/measurement.cpp"/> ++- <F N="../src/liborcus/measurement.cpp"/> ++ <F N="../src/liborcus/mock_spreadsheet.cpp"/> ++- <F N="../src/liborcus/mock_spreadsheet.cpp"/> ++- <F N="../src/liborcus/mock_spreadsheet.hpp"/> ++ <F N="../src/liborcus/mock_spreadsheet.hpp"/> ++- <F N="../src/liborcus/odf_namespace_types.cpp"/> +++ <F N="../src/liborcus/odf_helper.cpp"/> +++ <F N="../src/liborcus/odf_helper.hpp"/> +++ <F N="../src/liborcus/odf_helper_test.cpp"/> ++ <F N="../src/liborcus/odf_namespace_types.cpp"/> ++ <F N="../src/liborcus/odf_namespace_types.hpp"/> ++- <F N="../src/liborcus/odf_namespace_types.hpp"/> ++- <F N="../src/liborcus/odf_namespace_types_cpp.inl"/> ++ <F N="../src/liborcus/odf_namespace_types_cpp.inl"/> ++ <F N="../src/liborcus/odf_namespace_types_hpp.inl"/> ++- <F N="../src/liborcus/odf_namespace_types_hpp.inl"/> ++- <F N="../src/liborcus/odf_para_context.cpp"/> ++ <F N="../src/liborcus/odf_para_context.cpp"/> ++ <F N="../src/liborcus/odf_para_context.hpp"/> ++- <F N="../src/liborcus/odf_para_context.hpp"/> ++ <F N="../src/liborcus/odf_styles.cpp"/> ++- <F N="../src/liborcus/odf_styles.cpp"/> ++- <F N="../src/liborcus/odf_styles.hpp"/> ++ <F N="../src/liborcus/odf_styles.hpp"/> ++ <F N="../src/liborcus/odf_styles_context.cpp"/> ++- <F N="../src/liborcus/odf_styles_context.cpp"/> ++- <F N="../src/liborcus/odf_styles_context.hpp"/> ++ <F N="../src/liborcus/odf_styles_context.hpp"/> ++- <F N="../src/liborcus/odf_token_constants.hpp"/> +++ <F N="../src/liborcus/odf_styles_context_test.cpp"/> ++ <F N="../src/liborcus/odf_token_constants.hpp"/> ++ <F N="../src/liborcus/odf_token_constants.inl"/> ++- <F N="../src/liborcus/odf_token_constants.inl"/> ++- <F N="../src/liborcus/odf_tokens.cpp"/> ++ <F N="../src/liborcus/odf_tokens.cpp"/> ++ <F N="../src/liborcus/odf_tokens.hpp"/> ++- <F N="../src/liborcus/odf_tokens.hpp"/> ++- <F N="../src/liborcus/odf_tokens.inl"/> ++ <F N="../src/liborcus/odf_tokens.inl"/> ++ <F N="../src/liborcus/ods_content_xml_context.cpp"/> ++- <F N="../src/liborcus/ods_content_xml_context.cpp"/> ++ <F N="../src/liborcus/ods_content_xml_context.hpp"/> ++- <F N="../src/liborcus/ods_content_xml_context.hpp"/> ++- <F N="../src/liborcus/ods_content_xml_handler.cpp"/> ++ <F N="../src/liborcus/ods_content_xml_handler.cpp"/> ++ <F N="../src/liborcus/ods_content_xml_handler.hpp"/> ++- <F N="../src/liborcus/ods_content_xml_handler.hpp"/> ++- <F N="../src/liborcus/ods_session_data.cpp"/> ++ <F N="../src/liborcus/ods_session_data.cpp"/> ++ <F N="../src/liborcus/ods_session_data.hpp"/> ++- <F N="../src/liborcus/ods_session_data.hpp"/> ++ <F N="../src/liborcus/ooxml_content_types.cpp"/> ++- <F N="../src/liborcus/ooxml_content_types.cpp"/> ++- <F N="../src/liborcus/ooxml_content_types.hpp"/> ++ <F N="../src/liborcus/ooxml_content_types.hpp"/> ++ <F N="../src/liborcus/ooxml_global.cpp"/> ++- <F N="../src/liborcus/ooxml_global.cpp"/> ++- <F N="../src/liborcus/ooxml_global.hpp"/> ++ <F N="../src/liborcus/ooxml_global.hpp"/> ++ <F N="../src/liborcus/ooxml_namespace_types.cpp"/> ++- <F N="../src/liborcus/ooxml_namespace_types.cpp"/> ++ <F N="../src/liborcus/ooxml_namespace_types.hpp"/> ++- <F N="../src/liborcus/ooxml_namespace_types.hpp"/> ++- <F N="../src/liborcus/ooxml_schemas.cpp"/> ++ <F N="../src/liborcus/ooxml_schemas.cpp"/> ++ <F N="../src/liborcus/ooxml_schemas.hpp"/> ++- <F N="../src/liborcus/ooxml_schemas.hpp"/> ++- <F N="../src/liborcus/ooxml_token_constants.hpp"/> ++ <F N="../src/liborcus/ooxml_token_constants.hpp"/> ++ <F N="../src/liborcus/ooxml_token_constants.inl"/> ++- <F N="../src/liborcus/ooxml_token_constants.inl"/> ++ <F N="../src/liborcus/ooxml_tokens.cpp"/> ++- <F N="../src/liborcus/ooxml_tokens.cpp"/> ++- <F N="../src/liborcus/ooxml_tokens.hpp"/> ++ <F N="../src/liborcus/ooxml_tokens.hpp"/> ++ <F N="../src/liborcus/ooxml_tokens.inl"/> ++- <F N="../src/liborcus/ooxml_tokens.inl"/> ++- <F N="../src/liborcus/ooxml_types.cpp"/> ++ <F N="../src/liborcus/ooxml_types.cpp"/> ++ <F N="../src/liborcus/ooxml_types.hpp"/> ++- <F N="../src/liborcus/ooxml_types.hpp"/> ++ <F N="../src/liborcus/opc_context.cpp"/> ++- <F N="../src/liborcus/opc_context.cpp"/> ++- <F N="../src/liborcus/opc_context.hpp"/> ++ <F N="../src/liborcus/opc_context.hpp"/> ++ <F N="../src/liborcus/opc_reader.cpp"/> ++- <F N="../src/liborcus/opc_reader.cpp"/> ++- <F N="../src/liborcus/opc_reader.hpp"/> ++ <F N="../src/liborcus/opc_reader.hpp"/> ++ <F N="../src/liborcus/opc_token_constants.hpp"/> ++- <F N="../src/liborcus/opc_token_constants.hpp"/> ++ <F N="../src/liborcus/opc_token_constants.inl"/> ++- <F N="../src/liborcus/opc_token_constants.inl"/> ++- <F N="../src/liborcus/opc_tokens.inl"/> ++ <F N="../src/liborcus/opc_tokens.inl"/> ++ <F N="../src/liborcus/orcus_csv.cpp"/> ++- <F N="../src/liborcus/orcus_csv.cpp"/> ++- <F N="../src/liborcus/orcus_gnumeric.cpp"/> ++ <F N="../src/liborcus/orcus_gnumeric.cpp"/> ++- <F N="../src/liborcus/orcus_import_xlsx.cpp"/> +++ <F N="../src/liborcus/orcus_import_ods.cpp"/> ++ <F N="../src/liborcus/orcus_import_xlsx.cpp"/> ++ <F N="../src/liborcus/orcus_ods.cpp"/> ++- <F N="../src/liborcus/orcus_ods.cpp"/> ++- <F N="../src/liborcus/orcus_xls_xml.cpp"/> ++ <F N="../src/liborcus/orcus_xls_xml.cpp"/> ++ <F N="../src/liborcus/orcus_xlsx.cpp"/> ++- <F N="../src/liborcus/orcus_xlsx.cpp"/> ++- <F N="../src/liborcus/orcus_xml.cpp"/> ++ <F N="../src/liborcus/orcus_xml.cpp"/> ++ <F N="../src/liborcus/session_context.cpp"/> ++- <F N="../src/liborcus/session_context.cpp"/> ++ <F N="../src/liborcus/session_context.hpp"/> ++- <F N="../src/liborcus/session_context.hpp"/> ++- <F N="../src/liborcus/spreadsheet_interface.cpp"/> ++ <F N="../src/liborcus/spreadsheet_interface.cpp"/> ++ <F N="../src/liborcus/spreadsheet_types.cpp"/> ++- <F N="../src/liborcus/spreadsheet_types.cpp"/> ++- <F N="../src/liborcus/xls_xml_context.cpp"/> +++ <F N="../src/liborcus/string_helper.cpp"/> +++ <F N="../src/liborcus/string_helper.hpp"/> ++ <F N="../src/liborcus/xls_xml_context.cpp"/> ++ <F N="../src/liborcus/xls_xml_context.hpp"/> ++- <F N="../src/liborcus/xls_xml_context.hpp"/> ++ <F N="../src/liborcus/xls_xml_detection_handler.cpp"/> ++- <F N="../src/liborcus/xls_xml_detection_handler.cpp"/> ++- <F N="../src/liborcus/xls_xml_detection_handler.hpp"/> ++ <F N="../src/liborcus/xls_xml_detection_handler.hpp"/> ++ <F N="../src/liborcus/xls_xml_handler.cpp"/> ++- <F N="../src/liborcus/xls_xml_handler.cpp"/> ++- <F N="../src/liborcus/xls_xml_handler.hpp"/> ++ <F N="../src/liborcus/xls_xml_handler.hpp"/> ++ <F N="../src/liborcus/xls_xml_namespace_types.cpp"/> ++- <F N="../src/liborcus/xls_xml_namespace_types.cpp"/> ++ <F N="../src/liborcus/xls_xml_namespace_types.hpp"/> ++- <F N="../src/liborcus/xls_xml_namespace_types.hpp"/> ++- <F N="../src/liborcus/xls_xml_token_constants.hpp"/> ++ <F N="../src/liborcus/xls_xml_token_constants.hpp"/> ++ <F N="../src/liborcus/xls_xml_token_constants.inl"/> ++- <F N="../src/liborcus/xls_xml_token_constants.inl"/> ++- <F N="../src/liborcus/xls_xml_tokens.cpp"/> ++ <F N="../src/liborcus/xls_xml_tokens.cpp"/> ++ <F N="../src/liborcus/xls_xml_tokens.hpp"/> ++- <F N="../src/liborcus/xls_xml_tokens.hpp"/> ++ <F N="../src/liborcus/xls_xml_tokens.inl"/> ++- <F N="../src/liborcus/xls_xml_tokens.inl"/> ++- <F N="../src/liborcus/xlsx_autofilter_context.cpp"/> ++ <F N="../src/liborcus/xlsx_autofilter_context.cpp"/> ++ <F N="../src/liborcus/xlsx_autofilter_context.hpp"/> ++- <F N="../src/liborcus/xlsx_autofilter_context.hpp"/> ++ <F N="../src/liborcus/xlsx_conditional_format_context.cpp"/> ++ <F N="../src/liborcus/xlsx_conditional_format_context.hpp"/> ++ <F N="../src/liborcus/xlsx_context.cpp"/> ++- <F N="../src/liborcus/xlsx_context.cpp"/> ++- <F N="../src/liborcus/xlsx_context.hpp"/> ++ <F N="../src/liborcus/xlsx_context.hpp"/> ++ <F N="../src/liborcus/xlsx_handler.cpp"/> ++- <F N="../src/liborcus/xlsx_handler.cpp"/> ++- <F N="../src/liborcus/xlsx_handler.hpp"/> ++ <F N="../src/liborcus/xlsx_handler.hpp"/> ++ <F N="../src/liborcus/xlsx_helper.cpp"/> ++ <F N="../src/liborcus/xlsx_helper.hpp"/> ++ <F N="../src/liborcus/xlsx_pivot_context.cpp"/> ++- <F N="../src/liborcus/xlsx_pivot_context.cpp"/> ++- <F N="../src/liborcus/xlsx_pivot_context.hpp"/> ++ <F N="../src/liborcus/xlsx_pivot_context.hpp"/> ++ <F N="../src/liborcus/xlsx_revision_context.cpp"/> ++- <F N="../src/liborcus/xlsx_revision_context.cpp"/> ++ <F N="../src/liborcus/xlsx_revision_context.hpp"/> ++- <F N="../src/liborcus/xlsx_revision_context.hpp"/> ++- <F N="../src/liborcus/xlsx_session_data.cpp"/> ++ <F N="../src/liborcus/xlsx_session_data.cpp"/> ++ <F N="../src/liborcus/xlsx_session_data.hpp"/> ++- <F N="../src/liborcus/xlsx_session_data.hpp"/> ++- <F N="../src/liborcus/xlsx_sheet_context.cpp"/> ++ <F N="../src/liborcus/xlsx_sheet_context.cpp"/> ++ <F N="../src/liborcus/xlsx_sheet_context.hpp"/> ++- <F N="../src/liborcus/xlsx_sheet_context.hpp"/> ++ <F N="../src/liborcus/xlsx_sheet_context_test.cpp"/> ++- <F N="../src/liborcus/xlsx_sheet_context_test.cpp"/> ++- <F N="../src/liborcus/xlsx_table_context.cpp"/> ++ <F N="../src/liborcus/xlsx_table_context.cpp"/> ++ <F N="../src/liborcus/xlsx_table_context.hpp"/> ++- <F N="../src/liborcus/xlsx_table_context.hpp"/> ++- <F N="../src/liborcus/xlsx_types.cpp"/> ++ <F N="../src/liborcus/xlsx_types.cpp"/> ++ <F N="../src/liborcus/xlsx_types.hpp"/> ++- <F N="../src/liborcus/xlsx_types.hpp"/> ++ <F N="../src/liborcus/xlsx_workbook_context.cpp"/> ++- <F N="../src/liborcus/xlsx_workbook_context.cpp"/> ++- <F N="../src/liborcus/xlsx_workbook_context.hpp"/> ++ <F N="../src/liborcus/xlsx_workbook_context.hpp"/> ++ <F N="../src/liborcus/xml_context_base.cpp"/> ++- <F N="../src/liborcus/xml_context_base.cpp"/> ++- <F N="../src/liborcus/xml_context_base.hpp"/> ++ <F N="../src/liborcus/xml_context_base.hpp"/> ++ <F N="../src/liborcus/xml_context_global.cpp"/> ++- <F N="../src/liborcus/xml_context_global.cpp"/> ++ <F N="../src/liborcus/xml_context_global.hpp"/> ++- <F N="../src/liborcus/xml_context_global.hpp"/> ++- <F N="../src/liborcus/xml_map_tree.cpp"/> ++ <F N="../src/liborcus/xml_map_tree.cpp"/> ++ <F N="../src/liborcus/xml_map_tree.hpp"/> ++- <F N="../src/liborcus/xml_map_tree.hpp"/> ++- <F N="../src/liborcus/xml_map_tree_test.cpp"/> ++ <F N="../src/liborcus/xml_map_tree_test.cpp"/> ++ <F N="../src/liborcus/xml_simple_stream_handler.cpp"/> ++- <F N="../src/liborcus/xml_simple_stream_handler.cpp"/> ++ <F N="../src/liborcus/xml_simple_stream_handler.hpp"/> ++- <F N="../src/liborcus/xml_simple_stream_handler.hpp"/> ++- <F N="../src/liborcus/xml_stream_handler.cpp"/> ++ <F N="../src/liborcus/xml_stream_handler.cpp"/> ++ <F N="../src/liborcus/xml_stream_handler.hpp"/> ++- <F N="../src/liborcus/xml_stream_handler.hpp"/> ++- <F N="../src/liborcus/xml_stream_parser.cpp"/> ++ <F N="../src/liborcus/xml_stream_parser.cpp"/> ++ <F N="../src/liborcus/xml_stream_parser.hpp"/> ++- <F N="../src/liborcus/xml_stream_parser.hpp"/> ++ <F N="../src/liborcus/xml_structure_tree.cpp"/> ++- <F N="../src/liborcus/xml_structure_tree.cpp"/> ++- <F N="../src/liborcus/xml_structure_tree_test.cpp"/> ++ <F N="../src/liborcus/xml_structure_tree_test.cpp"/> ++ <F N="../src/liborcus/yaml_document_tree.cpp"/> ++ <F N="../src/liborcus/yaml_document_tree_test.cpp"/> ++ </Folder> ++ <Folder Name="mso"> ++ <F N="../src/mso/encryption_info.cpp"/> ++- <F N="../src/mso/encryption_info.cpp"/> ++ </Folder> ++ <Folder Name="parser"> ++ <F N="../src/parser/base64.cpp"/> ++- <F N="../src/parser/base64.cpp"/> ++- <F N="../src/parser/base64_test.cpp"/> ++ <F N="../src/parser/base64_test.cpp"/> ++ <F N="../src/parser/cell_buffer.cpp"/> ++- <F N="../src/parser/cell_buffer.cpp"/> ++- <F N="../src/parser/css_parser_base.cpp"/> ++ <F N="../src/parser/css_parser_base.cpp"/> ++ <F N="../src/parser/css_types.cpp"/> ++ <F N="../src/parser/csv_parser_base.cpp"/> ++@@ -565,6 +425,7 @@ ++ <F N="../src/parser/yaml_parser_base.cpp"/> ++ <F N="../src/parser/zip_archive.cpp"/> ++ <F N="../src/parser/zip_archive_stream.cpp"/> +++ <F N="../src/parser/zip_archive_test.cpp"/> ++ </Folder> ++ <Folder Name="python"> ++ <F N="../src/python/json.cpp"/> ++@@ -597,7 +458,6 @@ ++ <F N="../src/orcus_json_main.cpp"/> ++ <F N="../src/orcus_mso_encryption.cpp"/> ++ <F N="../src/orcus_ods_main.cpp"/> ++- <F N="../src/orcus_test_common.cpp"/> ++ <F N="../src/orcus_test_csv.cpp"/> ++ <F N="../src/orcus_test_ods.cpp"/> ++ <F N="../src/orcus_test_xls_xml.cpp"/> ++diff --git a/src/liborcus/dom_tree.cpp b/src/liborcus/dom_tree.cpp ++index 255a7d7..1b4588b 100644 ++--- a/src/liborcus/dom_tree.cpp +++++ b/src/liborcus/dom_tree.cpp ++@@ -177,7 +177,7 @@ void dom_tree::content::print(ostream& os, const xmlns_context& /*cxt*/) const ++ dom_tree::content::~content() {} ++ ++ dom_tree::dom_tree(xmlns_context& cxt) : ++- mp_impl(make_unique<dom_tree_impl>(cxt)) {} +++ mp_impl(orcus::make_unique<dom_tree_impl>(cxt)) {} ++ ++ dom_tree::~dom_tree() {} ++ ++@@ -242,7 +242,7 @@ void dom_tree::start_element(xmlns_id_t ns, const pstring& name) ++ ++ // Append new element as a child element of the current element. ++ p = mp_impl->m_elem_stack.back(); ++- p->child_nodes.push_back(make_unique<element>(ns, name_safe)); +++ p->child_nodes.push_back(orcus::make_unique<element>(ns, name_safe)); ++ p = static_cast<element*>(p->child_nodes.back().get()); ++ p->attrs.swap(mp_impl->m_cur_attrs); ++ mp_impl->m_elem_stack.push_back(p); ++@@ -269,7 +269,7 @@ void dom_tree::set_characters(const pstring& val) ++ ++ element* p = mp_impl->m_elem_stack.back(); ++ val2 = mp_impl->m_pool.intern(val2).first; // Make sure the string is persistent. ++- p->child_nodes.push_back(make_unique<content>(val2)); +++ p->child_nodes.push_back(orcus::make_unique<content>(val2)); ++ } ++ ++ void dom_tree::set_attribute(xmlns_id_t ns, const pstring& name, const pstring& val) ++@@ -283,7 +283,7 @@ void dom_tree::set_attribute(xmlns_id_t ns, const pstring& name, const pstring& ++ ++ void dom_tree::set_doctype(const sax::doctype_declaration& dtd) ++ { ++- mp_impl->m_doctype = make_unique<sax::doctype_declaration>(dtd); // make a copy. +++ mp_impl->m_doctype = orcus::make_unique<sax::doctype_declaration>(dtd); // make a copy. ++ ++ sax::doctype_declaration& this_dtd = *mp_impl->m_doctype; ++ string_pool& pool = mp_impl->m_pool; ++@@ -360,7 +360,7 @@ void dom_tree::dump_compact(ostream& os) const ++ ++ scopes_type scopes; ++ ++- scopes.push_back(make_unique<scope>(string(), mp_impl->m_root)); +++ scopes.push_back(orcus::make_unique<scope>(string(), mp_impl->m_root)); ++ while (!scopes.empty()) ++ { ++ bool new_scope = false; ++@@ -418,7 +418,7 @@ void dom_tree::dump_compact(ostream& os) const ++ ++cur_scope.current_pos; ++ ostringstream elem_name; ++ elem->print(elem_name, mp_impl->m_ns_cxt); ++- scopes.push_back(make_unique<scope>(elem_name.str())); +++ scopes.push_back(orcus::make_unique<scope>(elem_name.str())); ++ scope& child_scope = *scopes.back(); ++ child_scope.nodes.swap(nodes); ++ child_scope.current_pos = child_scope.nodes.begin(); ++diff --git a/src/liborcus/json_document_tree.cpp b/src/liborcus/json_document_tree.cpp ++index adafcbf..81289e1 100644 ++--- a/src/liborcus/json_document_tree.cpp +++++ b/src/liborcus/json_document_tree.cpp ++@@ -55,7 +55,6 @@ using node_t = json::detail::node_t; ++ ++ const char* tab = " "; ++ constexpr char quote = '"'; ++-constexpr char backslash = '\\'; ++ ++ const xmlns_id_t NS_orcus_json_xml = "http://schemas.kohei.us/orcus/2015/json"; ++ ++@@ -455,13 +454,13 @@ public: ++ { ++ if (m_root) ++ { ++- json_value* jv = push_value(make_unique<json_value_array>()); +++ json_value* jv = push_value(orcus::make_unique<json_value_array>()); ++ assert(jv && jv->type == node_t::array); ++ m_stack.push_back(parser_stack(jv)); ++ } ++ else ++ { ++- m_root = make_unique<json_value_array>(); +++ m_root = orcus::make_unique<json_value_array>(); ++ m_stack.push_back(parser_stack(m_root.get())); ++ } ++ } ++@@ -476,13 +475,13 @@ public: ++ { ++ if (m_root) ++ { ++- json_value* jv = push_value(make_unique<json_value_object>()); +++ json_value* jv = push_value(orcus::make_unique<json_value_object>()); ++ assert(jv && jv->type == node_t::object); ++ m_stack.push_back(parser_stack(jv)); ++ } ++ else ++ { ++- m_root = make_unique<json_value_object>(); +++ m_root = orcus::make_unique<json_value_object>(); ++ m_stack.push_back(parser_stack(m_root.get())); ++ } ++ } ++@@ -504,17 +503,17 @@ public: ++ ++ void boolean_true() ++ { ++- push_value(make_unique<json_value>(node_t::boolean_true)); +++ push_value(orcus::make_unique<json_value>(node_t::boolean_true)); ++ } ++ ++ void boolean_false() ++ { ++- push_value(make_unique<json_value>(node_t::boolean_false)); +++ push_value(orcus::make_unique<json_value>(node_t::boolean_false)); ++ } ++ ++ void null() ++ { ++- push_value(make_unique<json_value>(node_t::null)); +++ push_value(orcus::make_unique<json_value>(node_t::null)); ++ } ++ ++ void string(const char* p, size_t len, bool transient) ++@@ -524,12 +523,12 @@ public: ++ // The tree manages the life cycle of this string value. ++ s = m_pool.intern(s).first; ++ ++- push_value(make_unique<json_value_string>(s)); +++ push_value(orcus::make_unique<json_value_string>(s)); ++ } ++ ++ void number(double val) ++ { ++- push_value(make_unique<json_value_number>(val)); +++ push_value(orcus::make_unique<json_value_number>(val)); ++ } ++ ++ void swap(std::unique_ptr<json_value>& other_root) ++@@ -554,8 +553,8 @@ struct node::impl ++ impl(const json_value* jv) : m_node(jv) {} ++ }; ++ ++-node::node(const json_value* jv) : mp_impl(make_unique<impl>(jv)) {} ++-node::node(const node& other) : mp_impl(make_unique<impl>(other.mp_impl->m_node)) {} +++node::node(const json_value* jv) : mp_impl(orcus::make_unique<impl>(jv)) {} +++node::node(const node& other) : mp_impl(orcus::make_unique<impl>(other.mp_impl->m_node)) {} ++ node::node(node&& rhs) : mp_impl(std::move(rhs.mp_impl)) {} ++ node::~node() {} ++ ++@@ -720,12 +719,12 @@ struct json_document_tree::impl ++ std::unique_ptr<string_pool> m_own_pool; ++ string_pool& m_pool; ++ ++- impl() : m_own_pool(make_unique<string_pool>()), m_pool(*m_own_pool) {} +++ impl() : m_own_pool(orcus::make_unique<string_pool>()), m_pool(*m_own_pool) {} ++ impl(string_pool& pool) : m_pool(pool) {} ++ }; ++ ++-json_document_tree::json_document_tree() : mp_impl(make_unique<impl>()) {} ++-json_document_tree::json_document_tree(string_pool& pool) : mp_impl(make_unique<impl>(pool)) {} +++json_document_tree::json_document_tree() : mp_impl(orcus::make_unique<impl>()) {} +++json_document_tree::json_document_tree(string_pool& pool) : mp_impl(orcus::make_unique<impl>(pool)) {} ++ json_document_tree::~json_document_tree() {} ++ ++ void json_document_tree::load(const std::string& strm, const json_config& config) ++diff --git a/src/liborcus/json_document_tree_test.cpp b/src/liborcus/json_document_tree_test.cpp ++index da16150..4b4fcbd 100644 ++--- a/src/liborcus/json_document_tree_test.cpp +++++ b/src/liborcus/json_document_tree_test.cpp ++@@ -193,7 +193,7 @@ std::unique_ptr<json_document_tree> get_doc_tree(const char* filepath) ++ cout << "--- original" << endl; ++ cout << strm << endl; ++ ++- auto doc = make_unique<json_document_tree>(); +++ auto doc = orcus::make_unique<json_document_tree>(); ++ doc->load(strm, test_config); ++ ++ return doc; ++diff --git a/src/liborcus/ods_content_xml_context.cpp b/src/liborcus/ods_content_xml_context.cpp ++index f496353..c4e706d 100644 ++--- a/src/liborcus/ods_content_xml_context.cpp +++++ b/src/liborcus/ods_content_xml_context.cpp ++@@ -588,7 +588,7 @@ void ods_content_xml_context::push_cell_value() ++ ods_session_data& ods_data = ++ static_cast<ods_session_data&>(*get_session_context().mp_data); ++ ods_data.m_formulas.push_back( ++- make_unique<ods_session_data::formula>( +++ orcus::make_unique<ods_session_data::formula>( ++ m_tables.size()-1, m_row, m_col, m_cell_attr.formula_grammar, m_cell_attr.formula)); ++ ++ ods_session_data::formula& formula_data = *ods_data.m_formulas.back(); ++diff --git a/src/liborcus/opc_reader.cpp b/src/liborcus/opc_reader.cpp ++index 814b2cf..666530e 100644 ++--- a/src/liborcus/opc_reader.cpp +++++ b/src/liborcus/opc_reader.cpp ++@@ -244,7 +244,7 @@ void opc_reader::read_content_types() ++ m_config, m_ns_repo, opc_tokens, ++ reinterpret_cast<const char*>(&buffer[0]), buffer.size()); ++ ++- auto handler = make_unique<xml_simple_stream_handler>( +++ auto handler = orcus::make_unique<xml_simple_stream_handler>( ++ new opc_content_types_context(m_session_cxt, opc_tokens)); ++ ++ parser.set_handler(handler.get()); ++diff --git a/src/liborcus/orcus_gnumeric.cpp b/src/liborcus/orcus_gnumeric.cpp ++index 1873c0e..c29bef9 100644 ++--- a/src/liborcus/orcus_gnumeric.cpp +++++ b/src/liborcus/orcus_gnumeric.cpp ++@@ -82,7 +82,7 @@ void orcus_gnumeric::read_content_xml(const char* p, size_t size) ++ { ++ xml_stream_parser parser(get_config(), mp_impl->m_ns_repo, gnumeric_tokens, p, size); ++ ++- auto handler = make_unique<gnumeric_content_xml_handler>( +++ auto handler = orcus::make_unique<gnumeric_content_xml_handler>( ++ mp_impl->m_cxt, gnumeric_tokens, mp_impl->mp_factory); ++ ++ parser.set_handler(handler.get()); ++diff --git a/src/liborcus/orcus_import_ods.cpp b/src/liborcus/orcus_import_ods.cpp ++index af1135e..2d76dbb 100644 ++--- a/src/liborcus/orcus_import_ods.cpp +++++ b/src/liborcus/orcus_import_ods.cpp ++@@ -32,7 +32,7 @@ void import_ods::read_styles(const char* p, size_t n, spreadsheet::iface::import ++ ++ session_context cxt; ++ odf_styles_map_type styles_map; ++- auto context = make_unique<styles_context>(cxt, odf_tokens, styles_map, styles); +++ auto context = orcus::make_unique<styles_context>(cxt, odf_tokens, styles_map, styles); ++ ++ xml_simple_stream_handler stream_handler(context.release()); ++ ++diff --git a/src/liborcus/orcus_import_xlsx.cpp b/src/liborcus/orcus_import_xlsx.cpp ++index 2f9f172..0d4a933 100644 ++--- a/src/liborcus/orcus_import_xlsx.cpp +++++ b/src/liborcus/orcus_import_xlsx.cpp ++@@ -33,7 +33,7 @@ void import_xlsx::read_table(const char* p, size_t n, spreadsheet::iface::import ++ return; ++ ++ session_context cxt; ++- auto handler = make_unique<xlsx_table_xml_handler>(cxt, ooxml_tokens, *table); +++ auto handler = orcus::make_unique<xlsx_table_xml_handler>(cxt, ooxml_tokens, *table); ++ ++ xmlns_repository ns_repo; ++ ns_repo.add_predefined_values(NS_ooxml_all); ++diff --git a/src/liborcus/orcus_xls_xml.cpp b/src/liborcus/orcus_xls_xml.cpp ++index 2849219..22ffeab 100644 ++--- a/src/liborcus/orcus_xls_xml.cpp +++++ b/src/liborcus/orcus_xls_xml.cpp ++@@ -92,7 +92,7 @@ void orcus_xls_xml::read_stream(const char* content, size_t len) ++ xml_stream_parser parser( ++ get_config(), mp_impl->m_ns_repo, xls_xml_tokens, content, len); ++ ++- auto handler = make_unique<xls_xml_handler>( +++ auto handler = orcus::make_unique<xls_xml_handler>( ++ mp_impl->m_cxt, xls_xml_tokens, mp_impl->mp_factory); ++ ++ parser.set_handler(handler.get()); ++diff --git a/src/liborcus/orcus_xlsx.cpp b/src/liborcus/orcus_xlsx.cpp ++index 8c578e6..7c1e46c 100644 ++--- a/src/liborcus/orcus_xlsx.cpp +++++ b/src/liborcus/orcus_xlsx.cpp ++@@ -286,7 +286,7 @@ void orcus_xlsx::read_workbook(const string& dir_path, const string& file_name) ++ if (buffer.empty()) ++ return; ++ ++- auto handler = make_unique<xml_simple_stream_handler>( +++ auto handler = orcus::make_unique<xml_simple_stream_handler>( ++ new xlsx_workbook_context(mp_impl->m_cxt, ooxml_tokens)); ++ ++ xml_stream_parser parser( ++@@ -341,7 +341,7 @@ void orcus_xlsx::read_sheet(const string& dir_path, const string& file_name, xls ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++ reinterpret_cast<const char*>(&buffer[0]), buffer.size()); ++ ++- auto handler = make_unique<xlsx_sheet_xml_handler>( +++ auto handler = orcus::make_unique<xlsx_sheet_xml_handler>( ++ mp_impl->m_cxt, ooxml_tokens, data->id-1, sheet); ++ ++ parser.set_handler(handler.get()); ++@@ -373,7 +373,7 @@ void orcus_xlsx::read_shared_strings(const string& dir_path, const string& file_ ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++ reinterpret_cast<const char*>(&buffer[0]), buffer.size()); ++ ++- auto handler = make_unique<xml_simple_stream_handler>( +++ auto handler = orcus::make_unique<xml_simple_stream_handler>( ++ new xlsx_shared_strings_context( ++ mp_impl->m_cxt, ooxml_tokens, mp_impl->mp_factory->get_shared_strings())); ++ ++@@ -406,7 +406,7 @@ void orcus_xlsx::read_styles(const string& dir_path, const string& file_name) ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++ reinterpret_cast<const char*>(&buffer[0]), buffer.size()); ++ ++- auto handler = make_unique<xml_simple_stream_handler>( +++ auto handler = orcus::make_unique<xml_simple_stream_handler>( ++ new xlsx_styles_context( ++ mp_impl->m_cxt, ooxml_tokens, mp_impl->mp_factory->get_styles())); ++ ++@@ -441,7 +441,7 @@ void orcus_xlsx::read_table(const std::string& dir_path, const std::string& file ++ if (buffer.empty()) ++ return; ++ ++- auto handler = make_unique<xlsx_table_xml_handler>(mp_impl->m_cxt, ooxml_tokens, *table); +++ auto handler = orcus::make_unique<xlsx_table_xml_handler>(mp_impl->m_cxt, ooxml_tokens, *table); ++ ++ xml_stream_parser parser( ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++@@ -471,7 +471,7 @@ void orcus_xlsx::read_pivot_cache_def(const std::string& dir_path, const std::st ++ if (buffer.empty()) ++ return; ++ ++- auto handler = make_unique<xlsx_pivot_cache_def_xml_handler>(mp_impl->m_cxt, ooxml_tokens); +++ auto handler = orcus::make_unique<xlsx_pivot_cache_def_xml_handler>(mp_impl->m_cxt, ooxml_tokens); ++ ++ xml_stream_parser parser( ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++@@ -502,7 +502,7 @@ void orcus_xlsx::read_pivot_cache_rec(const std::string& dir_path, const std::st ++ if (buffer.empty()) ++ return; ++ ++- auto handler = make_unique<xlsx_pivot_cache_rec_xml_handler>(mp_impl->m_cxt, ooxml_tokens); +++ auto handler = orcus::make_unique<xlsx_pivot_cache_rec_xml_handler>(mp_impl->m_cxt, ooxml_tokens); ++ ++ xml_stream_parser parser( ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++@@ -532,7 +532,7 @@ void orcus_xlsx::read_pivot_table(const std::string& dir_path, const std::string ++ if (buffer.empty()) ++ return; ++ ++- auto handler = make_unique<xlsx_pivot_table_xml_handler>(mp_impl->m_cxt, ooxml_tokens); +++ auto handler = orcus::make_unique<xlsx_pivot_table_xml_handler>(mp_impl->m_cxt, ooxml_tokens); ++ ++ xml_stream_parser parser( ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++@@ -567,7 +567,7 @@ void orcus_xlsx::read_rev_headers(const std::string& dir_path, const std::string ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++ reinterpret_cast<const char*>(&buffer[0]), buffer.size()); ++ ++- auto handler = make_unique<xml_simple_stream_handler>( +++ auto handler = orcus::make_unique<xml_simple_stream_handler>( ++ new xlsx_revheaders_context(mp_impl->m_cxt, ooxml_tokens)); ++ ++ parser.set_handler(handler.get()); ++@@ -600,7 +600,7 @@ void orcus_xlsx::read_rev_log(const std::string& dir_path, const std::string& fi ++ get_config(), mp_impl->m_ns_repo, ooxml_tokens, ++ reinterpret_cast<const char*>(&buffer[0]), buffer.size()); ++ ++- auto handler = make_unique<xml_simple_stream_handler>( +++ auto handler = orcus::make_unique<xml_simple_stream_handler>( ++ new xlsx_revlog_context(mp_impl->m_cxt, ooxml_tokens)); ++ ++ parser.set_handler(handler.get()); ++diff --git a/src/liborcus/orcus_xml.cpp b/src/liborcus/orcus_xml.cpp ++index 2cb7fa3..f97c4f9 100644 ++--- a/src/liborcus/orcus_xml.cpp +++++ b/src/liborcus/orcus_xml.cpp ++@@ -343,7 +343,7 @@ void write_range_reference_group( ++ scopes_type scopes; ++ for (spreadsheet::row_t current_row = 0; current_row < ref.row_size; ++current_row) ++ { ++- scopes.push_back(make_unique<scope>(root)); // root element +++ scopes.push_back(orcus::make_unique<scope>(root)); // root element ++ ++ while (!scopes.empty()) ++ { ++@@ -378,7 +378,7 @@ void write_range_reference_group( ++ // This is a non-leaf element. Push a new scope with this ++ // element and re-start the loop. ++ ++cur_scope.current_child_pos; ++- scopes.push_back(make_unique<scope>(child_elem)); +++ scopes.push_back(orcus::make_unique<scope>(child_elem)); ++ new_scope = true; ++ break; ++ } ++diff --git a/src/liborcus/xlsx_sheet_context.cpp b/src/liborcus/xlsx_sheet_context.cpp ++index f350049..720319a 100644 ++--- a/src/liborcus/xlsx_sheet_context.cpp +++++ b/src/liborcus/xlsx_sheet_context.cpp ++@@ -547,7 +547,7 @@ void xlsx_sheet_context::end_element_cell() ++ { ++ // shared formula expression ++ session_data.m_shared_formulas.push_back( ++- make_unique<xlsx_session_data::shared_formula>( +++ orcus::make_unique<xlsx_session_data::shared_formula>( ++ m_sheet_id, m_cur_row, m_cur_col, m_cur_formula.shared_id, ++ m_cur_formula.str.str(), m_cur_formula.ref.str())); ++ } ++@@ -555,14 +555,14 @@ void xlsx_sheet_context::end_element_cell() ++ { ++ // array formula expression ++ session_data.m_formulas.push_back( ++- make_unique<xlsx_session_data::formula>( +++ orcus::make_unique<xlsx_session_data::formula>( ++ m_sheet_id, m_cur_row, m_cur_col, m_cur_formula.str.str(), m_cur_formula.ref.str())); ++ } ++ else ++ { ++ // normal (non-shared) formula expression ++ session_data.m_formulas.push_back( ++- make_unique<xlsx_session_data::formula>( +++ orcus::make_unique<xlsx_session_data::formula>( ++ m_sheet_id, m_cur_row, m_cur_col, m_cur_formula.str.str())); ++ } ++ } ++@@ -570,7 +570,7 @@ void xlsx_sheet_context::end_element_cell() ++ { ++ // shared formula without formula expression ++ session_data.m_shared_formulas.push_back( ++- make_unique<xlsx_session_data::shared_formula>( +++ orcus::make_unique<xlsx_session_data::shared_formula>( ++ m_sheet_id, m_cur_row, m_cur_col, m_cur_formula.shared_id)); ++ } ++ else if (m_cur_formula.type == spreadsheet::formula_t::data_table) ++diff --git a/src/liborcus/xml_map_tree.cpp b/src/liborcus/xml_map_tree.cpp ++index 132ccb9..69fbc75 100644 ++--- a/src/liborcus/xml_map_tree.cpp +++++ b/src/liborcus/xml_map_tree.cpp ++@@ -666,7 +666,7 @@ xml_map_tree::linkable* xml_map_tree::get_element_stack( ++ { ++ // Insert a new element of this name. ++ children.push_back( ++- make_unique<element>( +++ orcus::make_unique<element>( ++ token.ns, m_names.intern(token.name.get(), token.name.size()).first, ++ element_unlinked, reference_unknown)); ++ cur_element = children.back().get(); ++@@ -695,7 +695,7 @@ xml_map_tree::linkable* xml_map_tree::get_element_stack( ++ throw xpath_error("This attribute is already linked. You can't link the same attribute twice."); ++ ++ attrs.push_back( ++- make_unique<attribute>( +++ orcus::make_unique<attribute>( ++ token.ns, m_names.intern(token.name.get(), token.name.size()).first, ref_type)); ++ ++ ret = attrs.back().get(); ++@@ -710,7 +710,7 @@ xml_map_tree::linkable* xml_map_tree::get_element_stack( ++ { ++ // No element of that name exists. ++ children.push_back( ++- make_unique<element>( +++ orcus::make_unique<element>( ++ token.ns, m_names.intern(token.name.get(), token.name.size()).first, ++ element_linked, ref_type)); ++ ++diff --git a/src/liborcus/xml_structure_tree.cpp b/src/liborcus/xml_structure_tree.cpp ++index f2d62bd..3a08c64 100644 ++--- a/src/liborcus/xml_structure_tree.cpp +++++ b/src/liborcus/xml_structure_tree.cpp ++@@ -451,7 +451,7 @@ void xml_structure_tree::dump_compact(ostream& os) const ++ cxt.dump(os); ++ ++ element_ref ref(mp_impl->mp_root->name, &mp_impl->mp_root->prop); ++- scopes.push_back(make_unique<scope>(entity_name(), false, ref)); +++ scopes.push_back(orcus::make_unique<scope>(entity_name(), false, ref)); ++ while (!scopes.empty()) ++ { ++ bool new_scope = false; ++@@ -505,7 +505,7 @@ void xml_structure_tree::dump_compact(ostream& os) const ++ ++ // Push a new scope, and restart the loop with the new scope. ++ ++cur_scope.current_pos; ++- scopes.push_back(make_unique<scope>(this_elem.name, this_elem.prop->repeat)); +++ scopes.push_back(orcus::make_unique<scope>(this_elem.name, this_elem.prop->repeat)); ++ scope& child_scope = *scopes.back(); ++ child_scope.elements.swap(elems); ++ child_scope.current_pos = child_scope.elements.begin(); ++diff --git a/src/liborcus/yaml_document_tree.cpp b/src/liborcus/yaml_document_tree.cpp ++index b7cc4bc..5aad4f2 100644 ++--- a/src/liborcus/yaml_document_tree.cpp +++++ b/src/liborcus/yaml_document_tree.cpp ++@@ -254,13 +254,13 @@ public: ++ ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value_sequence>()); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value_sequence>()); ++ assert(yv && yv->type == node_t::sequence); ++ m_stack.push_back(parser_stack(yv)); ++ } ++ else ++ { ++- m_root = make_unique<yaml_value_sequence>(); +++ m_root = orcus::make_unique<yaml_value_sequence>(); ++ m_stack.push_back(parser_stack(m_root.get())); ++ } ++ } ++@@ -276,13 +276,13 @@ public: ++ assert(m_in_document); ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value_map>()); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value_map>()); ++ assert(yv && yv->type == node_t::map); ++ m_stack.push_back(parser_stack(yv)); ++ } ++ else ++ { ++- m_root = make_unique<yaml_value_map>(); +++ m_root = orcus::make_unique<yaml_value_map>(); ++ m_stack.push_back(parser_stack(m_root.get())); ++ } ++ } ++@@ -319,11 +319,11 @@ public: ++ ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value_string>(p, n)); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value_string>(p, n)); ++ assert(yv && yv->type == node_t::string); ++ } ++ else ++- m_root = make_unique<yaml_value_string>(p, n); +++ m_root = orcus::make_unique<yaml_value_string>(p, n); ++ } ++ ++ void number(double val) ++@@ -331,11 +331,11 @@ public: ++ assert(m_in_document); ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value_number>(val)); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value_number>(val)); ++ assert(yv && yv->type == node_t::number); ++ } ++ else ++- m_root = make_unique<yaml_value_number>(val); +++ m_root = orcus::make_unique<yaml_value_number>(val); ++ } ++ ++ void boolean_true() ++@@ -343,11 +343,11 @@ public: ++ assert(m_in_document); ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value>(node_t::boolean_true)); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value>(node_t::boolean_true)); ++ assert(yv && yv->type == node_t::boolean_true); ++ } ++ else ++- m_root = make_unique<yaml_value>(node_t::boolean_true); +++ m_root = orcus::make_unique<yaml_value>(node_t::boolean_true); ++ } ++ ++ void boolean_false() ++@@ -355,11 +355,11 @@ public: ++ assert(m_in_document); ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value>(node_t::boolean_false)); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value>(node_t::boolean_false)); ++ assert(yv && yv->type == node_t::boolean_false); ++ } ++ else ++- m_root = make_unique<yaml_value>(node_t::boolean_false); +++ m_root = orcus::make_unique<yaml_value>(node_t::boolean_false); ++ } ++ ++ void null() ++@@ -367,11 +367,11 @@ public: ++ assert(m_in_document); ++ if (m_root) ++ { ++- yaml_value* yv = push_value(make_unique<yaml_value>(node_t::null)); +++ yaml_value* yv = push_value(orcus::make_unique<yaml_value>(node_t::null)); ++ assert(yv && yv->type == node_t::null); ++ } ++ else ++- m_root = make_unique<yaml_value>(node_t::null); +++ m_root = orcus::make_unique<yaml_value>(node_t::null); ++ } ++ ++ void swap(std::vector<document_root_type>& docs) ++@@ -396,8 +396,8 @@ struct node::impl ++ impl(const yaml_value* yv) : m_node(yv) {} ++ }; ++ ++-node::node(const yaml_value* yv) : mp_impl(make_unique<impl>(yv)) {} ++-node::node(const node& other) : mp_impl(make_unique<impl>(other.mp_impl->m_node)) {} +++node::node(const yaml_value* yv) : mp_impl(orcus::make_unique<impl>(yv)) {} +++node::node(const node& other) : mp_impl(orcus::make_unique<impl>(other.mp_impl->m_node)) {} ++ node::node(node&& rhs) : mp_impl(std::move(rhs.mp_impl)) {} ++ node::~node() {} ++ ++@@ -548,7 +548,7 @@ double node::numeric_value() const ++ ++ }} ++ ++-yaml_document_tree::yaml_document_tree() : mp_impl(make_unique<impl>()) {} +++yaml_document_tree::yaml_document_tree() : mp_impl(orcus::make_unique<impl>()) {} ++ yaml_document_tree::~yaml_document_tree() {} ++ ++ void yaml_document_tree::load(const std::string& strm) ++diff --git a/src/mso/encryption_info.cpp b/src/mso/encryption_info.cpp ++index 1d428fc..e9bc3ad 100644 ++--- a/src/mso/encryption_info.cpp +++++ b/src/mso/encryption_info.cpp ++@@ -143,11 +143,10 @@ public: ++ ++ class sax_handler ++ { ++- xmlns_context& m_ns_cxt; ++ vector<sax_ns_parser_attribute> m_attrs; ++ ++ public: ++- sax_handler(xmlns_context& ns_cxt) : m_ns_cxt(ns_cxt) {} +++ sax_handler(xmlns_context& /*ns_cxt*/) {} ++ void doctype(const sax::doctype_declaration&) {} ++ void start_declaration(const pstring&) {} ++ void end_declaration(const pstring&) {} ++diff --git a/src/orcus_filter_global.cpp b/src/orcus_filter_global.cpp ++index 09c2ab6..df50496 100644 ++--- a/src/orcus_filter_global.cpp +++++ b/src/orcus_filter_global.cpp ++@@ -239,7 +239,7 @@ std::unique_ptr<json_config> parse_json_args(int argc, char** argv) ++ return nullptr; ++ } ++ ++- std::unique_ptr<json_config> config = make_unique<json_config>(); +++ std::unique_ptr<json_config> config = orcus::make_unique<json_config>(); ++ ++ if (vm.count("input")) ++ config->input_path = vm["input"].as<string>(); ++diff --git a/src/orcus_json_main.cpp b/src/orcus_json_main.cpp ++index edca63a..6a739b2 100644 ++--- a/src/orcus_json_main.cpp +++++ b/src/orcus_json_main.cpp ++@@ -25,7 +25,7 @@ using namespace orcus; ++ ++ std::unique_ptr<json_document_tree> load_doc(const std::string& strm, const json_config& config) ++ { ++- std::unique_ptr<json_document_tree> doc(make_unique<json_document_tree>()); +++ std::unique_ptr<json_document_tree> doc(orcus::make_unique<json_document_tree>()); ++ try ++ { ++ doc->load(strm, config); ++diff --git a/src/orcus_yaml_main.cpp b/src/orcus_yaml_main.cpp ++index 3d15742..c028f64 100644 ++--- a/src/orcus_yaml_main.cpp +++++ b/src/orcus_yaml_main.cpp ++@@ -76,7 +76,7 @@ std::unique_ptr<yaml_config> parse_yaml_args(int argc, char** argv) ++ return nullptr; ++ } ++ ++- std::unique_ptr<yaml_config> config = make_unique<yaml_config>(); +++ std::unique_ptr<yaml_config> config = orcus::make_unique<yaml_config>(); ++ ++ if (vm.count("input")) ++ config->input_path = vm["input"].as<string>(); ++diff --git a/src/parser/json_parser_base.cpp b/src/parser/json_parser_base.cpp ++index 50e3f36..eff27b7 100644 ++--- a/src/parser/json_parser_base.cpp +++++ b/src/parser/json_parser_base.cpp ++@@ -35,7 +35,7 @@ struct parser_base::impl ++ }; ++ ++ parser_base::parser_base(const char* p, size_t n) : ++- ::orcus::parser_base(p, n), mp_impl(make_unique<impl>()) {} +++ ::orcus::parser_base(p, n), mp_impl(orcus::make_unique<impl>()) {} ++ ++ parser_base::~parser_base() {} ++ ++diff --git a/src/parser/sax_parser_base.cpp b/src/parser/sax_parser_base.cpp ++index 51d56a4..3cd4f25 100644 ++--- a/src/parser/sax_parser_base.cpp +++++ b/src/parser/sax_parser_base.cpp ++@@ -57,7 +57,7 @@ struct parser_base::impl ++ ++ parser_base::parser_base(const char* content, size_t size) : ++ ::orcus::parser_base(content, size), ++- mp_impl(make_unique<impl>()), +++ mp_impl(orcus::make_unique<impl>()), ++ m_nest_level(0), ++ m_buffer_pos(0), ++ m_root_elem_open(true) ++diff --git a/src/parser/string_pool.cpp b/src/parser/string_pool.cpp ++index 83c0501..baba88a 100644 ++--- a/src/parser/string_pool.cpp +++++ b/src/parser/string_pool.cpp ++@@ -61,7 +61,7 @@ struct string_pool::impl ++ string_store_type m_store; ++ }; ++ ++-string_pool::string_pool() : mp_impl(make_unique<impl>()) {} +++string_pool::string_pool() : mp_impl(orcus::make_unique<impl>()) {} ++ ++ string_pool::~string_pool() ++ { ++@@ -82,7 +82,7 @@ pair<pstring, bool> string_pool::intern(const char* str, size_t n) ++ if (itr == mp_impl->m_set.end()) ++ { ++ // This string has not been interned. Intern it. ++- mp_impl->m_store.push_back(make_unique<string>(str, n)); +++ mp_impl->m_store.push_back(orcus::make_unique<string>(str, n)); ++ pair<string_set_type::iterator,bool> r = mp_impl->m_set.insert(pstring(mp_impl->m_store.back()->data(), n)); ++ if (!r.second) ++ throw general_error("failed to intern a new string instance."); ++diff --git a/src/parser/yaml_parser_base.cpp b/src/parser/yaml_parser_base.cpp ++index 656dfdc..3c93266 100644 ++--- a/src/parser/yaml_parser_base.cpp +++++ b/src/parser/yaml_parser_base.cpp ++@@ -59,7 +59,7 @@ const size_t parser_base::parse_indent_end_of_stream = std::numeric_limits<size_ ++ const size_t parser_base::scope_empty = std::numeric_limits<size_t>::max() - 2; ++ ++ parser_base::parser_base(const char* p, size_t n) : ++- ::orcus::parser_base(p, n), mp_impl(make_unique<impl>()) {} +++ ::orcus::parser_base(p, n), mp_impl(orcus::make_unique<impl>()) {} ++ ++ parser_base::~parser_base() {} ++ ++diff --git a/src/spreadsheet/document.cpp b/src/spreadsheet/document.cpp ++index a80646c..17cc113 100644 ++--- a/src/spreadsheet/document.cpp +++++ b/src/spreadsheet/document.cpp ++@@ -448,7 +448,7 @@ sheet* document::append_sheet(const pstring& sheet_name, row_t row_size, col_t c ++ sheet_t sheet_index = static_cast<sheet_t>(mp_impl->m_sheets.size()); ++ ++ mp_impl->m_sheets.push_back( ++- make_unique<sheet_item>( +++ orcus::make_unique<sheet_item>( ++ *this, sheet_name_safe, sheet_index, row_size, col_size)); ++ ++ mp_impl->m_context.append_sheet( ++-- ++2.4.5 ++ +diff --git a/external/liborcus/0001-Get-it-to-build-on-Windows.patch b/external/liborcus/0001-Get-it-to-build-on-Windows.patch +new file mode 100755 +index 0000000..dca91b3 +--- /dev/null ++++ b/external/liborcus/0001-Get-it-to-build-on-Windows.patch +@@ -0,0 +1,212 @@ ++From c5d7282214727bcc28b6ec7e2b8016b40872cd3b Mon Sep 17 00:00:00 2001 ++From: Kohei Yoshida <kohei.yoshida@gmail.com> ++Date: Mon, 7 Mar 2016 18:35:23 -0500 ++Subject: [PATCH] Get it to build on Windows. ++ ++--- ++ include/orcus/json_parser.hpp | 32 +++++++++++++------------------- ++ include/orcus/parser_global.hpp | 4 ++-- ++ src/liborcus/json_document_tree.cpp | 2 +- ++ src/liborcus/json_util.cpp | 4 ++-- ++ src/liborcus/yaml_document_tree.cpp | 4 +++- ++ src/parser/parser_global.cpp | 3 +++ ++ src/parser/pstring.cpp | 1 + ++ src/parser/stream.cpp | 4 ++-- ++ src/parser/yaml_parser_base.cpp | 17 ++++++----------- ++ 9 files changed, 33 insertions(+), 38 deletions(-) ++ ++diff --git a/include/orcus/json_parser.hpp b/include/orcus/json_parser.hpp ++index 5d733fb..183b831 100644 ++--- a/include/orcus/json_parser.hpp +++++ b/include/orcus/json_parser.hpp ++@@ -204,16 +204,13 @@ void json_parser<_Handler>::object() ++ if (!res.str) ++ { ++ // Parsing was unsuccessful. ++- switch (res.length) ++- { ++- case parse_quoted_string_state::error_no_closing_quote: ++- throw json::parse_error("object: stream ended prematurely before reaching the closing quote of a key.", offset()); ++- case parse_quoted_string_state::error_illegal_escape_char: ++- json::parse_error::throw_with( ++- "object: illegal escape character '", cur_char(), "' in key value.", offset()); ++- default: ++- throw json::parse_error("object: unknown error while parsing a key value.", offset()); ++- } +++ if (res.length == parse_quoted_string_state::error_no_closing_quote) +++ throw json::parse_error("object: stream ended prematurely before reaching the closing quote of a key.", offset()); +++ else if (res.length == parse_quoted_string_state::error_illegal_escape_char) +++ json::parse_error::throw_with( +++ "object: illegal escape character '", cur_char(), "' in key value.", offset()); +++ else +++ throw json::parse_error("object: unknown error while parsing a key value.", offset()); ++ } ++ ++ m_handler.object_key(res.str, res.length, res.transient); ++@@ -297,15 +294,12 @@ void json_parser<_Handler>::string() ++ } ++ ++ // Parsing was unsuccessful. ++- switch (res.length) ++- { ++- case parse_quoted_string_state::error_no_closing_quote: ++- throw json::parse_error("string: stream ended prematurely before reaching the closing quote.", offset()); ++- case parse_quoted_string_state::error_illegal_escape_char: ++- json::parse_error::throw_with("string: illegal escape character '", cur_char(), "'.", offset()); ++- default: ++- throw json::parse_error("string: unknown error.", offset()); ++- } +++ if (res.length == parse_quoted_string_state::error_no_closing_quote) +++ throw json::parse_error("string: stream ended prematurely before reaching the closing quote.", offset()); +++ else if (res.length == parse_quoted_string_state::error_illegal_escape_char) +++ json::parse_error::throw_with("string: illegal escape character '", cur_char(), "'.", offset()); +++ else +++ throw json::parse_error("string: unknown error.", offset()); ++ } ++ ++ } ++diff --git a/include/orcus/parser_global.hpp b/include/orcus/parser_global.hpp ++index 6fab254..b76aec4 100644 ++--- a/include/orcus/parser_global.hpp +++++ b/include/orcus/parser_global.hpp ++@@ -31,8 +31,8 @@ enum class string_escape_char_t ++ */ ++ struct parse_quoted_string_state ++ { ++- static constexpr size_t error_no_closing_quote = 1; ++- static constexpr size_t error_illegal_escape_char = 2; +++ ORCUS_PSR_DLLPUBLIC static const size_t error_no_closing_quote; +++ ORCUS_PSR_DLLPUBLIC static const size_t error_illegal_escape_char; ++ ++ const char* str; ++ size_t length; ++diff --git a/src/liborcus/json_document_tree.cpp b/src/liborcus/json_document_tree.cpp ++index 81289e1..2fb8a41 100644 ++--- a/src/liborcus/json_document_tree.cpp +++++ b/src/liborcus/json_document_tree.cpp ++@@ -54,7 +54,7 @@ using json_value = json::detail::json_value; ++ using node_t = json::detail::node_t; ++ ++ const char* tab = " "; ++-constexpr char quote = '"'; +++const char quote = '"'; ++ ++ const xmlns_id_t NS_orcus_json_xml = "http://schemas.kohei.us/orcus/2015/json"; ++ ++diff --git a/src/liborcus/json_util.cpp b/src/liborcus/json_util.cpp ++index 37bd2b0..8f593cd 100644 ++--- a/src/liborcus/json_util.cpp +++++ b/src/liborcus/json_util.cpp ++@@ -11,8 +11,8 @@ namespace orcus { namespace json { ++ ++ namespace { ++ ++-constexpr char quote = '"'; ++-constexpr char backslash = '\\'; +++const char quote = '"'; +++const char backslash = '\\'; ++ ++ } ++ ++diff --git a/src/liborcus/yaml_document_tree.cpp b/src/liborcus/yaml_document_tree.cpp ++index 5aad4f2..27bb7e8 100644 ++--- a/src/liborcus/yaml_document_tree.cpp +++++ b/src/liborcus/yaml_document_tree.cpp ++@@ -155,6 +155,8 @@ struct parser_stack ++ yaml_value* node; ++ ++ parser_stack(yaml_value* _node) : node(_node) {} +++ parser_stack(const parser_stack&) = delete; +++ parser_stack(parser_stack&& r) : key(std::move(r.key)), node(r.node) {} ++ }; ++ ++ typedef std::unique_ptr<yaml_value> document_root_type; ++@@ -577,7 +579,7 @@ const char* kw_false = "false"; ++ const char* kw_tilde = "~"; ++ const char* kw_null = "null"; ++ ++-constexpr char quote = '"'; +++const char quote = '"'; ++ ++ void dump_indent(std::ostringstream& os, size_t scope) ++ { ++diff --git a/src/parser/parser_global.cpp b/src/parser/parser_global.cpp ++index 6e6b656..4023689 100644 ++--- a/src/parser/parser_global.cpp +++++ b/src/parser/parser_global.cpp ++@@ -12,6 +12,9 @@ ++ ++ namespace orcus { ++ +++const size_t parse_quoted_string_state::error_no_closing_quote = 1; +++const size_t parse_quoted_string_state::error_illegal_escape_char = 2; +++ ++ bool is_blank(char c) ++ { ++ return is_in(c, " \t\n\r"); ++diff --git a/src/parser/pstring.cpp b/src/parser/pstring.cpp ++index 303e88e..50ab2ca 100644 ++--- a/src/parser/pstring.cpp +++++ b/src/parser/pstring.cpp ++@@ -12,6 +12,7 @@ ++ #include <cassert> ++ #include <iostream> ++ #include <vector> +++#include <algorithm> ++ ++ using namespace std; ++ ++diff --git a/src/parser/stream.cpp b/src/parser/stream.cpp ++index 00a24a0..eb73dcc 100644 ++--- a/src/parser/stream.cpp +++++ b/src/parser/stream.cpp ++@@ -85,7 +85,7 @@ std::string create_parse_error_output(const std::string& strm, std::ptrdiff_t of ++ if (offset < 0) ++ return std::string(); ++ ++- constexpr size_t max_line_length = 60; +++ const size_t max_line_length = 60; ++ ++ auto line_info = find_line_with_offset(strm, offset); ++ pstring line = std::get<0>(line_info); ++@@ -113,7 +113,7 @@ std::string create_parse_error_output(const std::string& strm, std::ptrdiff_t of ++ // The error line is too long. Only show a segment of the line where the ++ // error occurred. ++ ++- constexpr size_t fixed_offset = 20; +++ const size_t fixed_offset = 20; ++ ++ size_t line_start = offset_on_line - fixed_offset; ++ size_t line_end = line_start + max_line_length; ++diff --git a/src/parser/yaml_parser_base.cpp b/src/parser/yaml_parser_base.cpp ++index 3c93266..c6e7939 100644 ++--- a/src/parser/yaml_parser_base.cpp +++++ b/src/parser/yaml_parser_base.cpp ++@@ -289,18 +289,13 @@ void throw_quoted_string_parse_error(const char* func_name, const parse_quoted_s ++ { ++ std::ostringstream os; ++ os << func_name << ": failed to parse "; ++- switch (ret.length) ++- { ++- case parse_quoted_string_state::error_illegal_escape_char: ++- os << "due to the presence of illegal escape character."; ++- break; ++- case parse_quoted_string_state::error_no_closing_quote: ++- os << "because the closing quote was not found."; ++- break; ++- default: ++- os << "due to unknown reason."; +++ if (ret.length == parse_quoted_string_state::error_illegal_escape_char) +++ os << "due to the presence of illegal escape character."; +++ else if (ret.length == parse_quoted_string_state::error_no_closing_quote) +++ os << "because the closing quote was not found."; +++ else +++ os << "due to unknown reason."; ++ ++- } ++ throw parse_error(os.str()); ++ } ++ ++-- ++1.8.1.msysgit.1 ++ +diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk +index 4411592..56debe9 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.10.0.dylib,src/liborcus/.libs/liborcus-0.10.0.dylib)) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.10.0.dylib,src/parser/.libs/liborcus-parser-0.10.0.dylib)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.11.0.dylib,src/liborcus/.libs/liborcus-0.11.0.dylib)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.11.0.dylib,src/parser/.libs/liborcus-parser-0.11.0.dylib)) + else ifeq ($(DISABLE_DYNLOADING),) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.10.so.0,src/liborcus/.libs/liborcus-0.10.so.0.0.0)) +-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.10.so.0,src/parser/.libs/liborcus-parser-0.10.so.0.0.0)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.11.so.0,src/liborcus/.libs/liborcus-0.11.so.0.0.0)) ++$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.11.so.0,src/parser/.libs/liborcus-parser-0.11.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 7eb8fdb..580ef847 100644 +--- a/external/liborcus/ExternalProject_liborcus.mk ++++ b/external/liborcus/ExternalProject_liborcus.mk +@@ -13,6 +13,7 @@ $(eval $(call gb_ExternalProject_use_autoconf,liborcus,build)) + + $(eval $(call gb_ExternalProject_use_externals,liborcus, \ + boost_headers \ ++ boost_filesystem \ + boost_iostreams \ + boost_system \ + mdds_headers \ +@@ -38,9 +39,9 @@ ifneq ($(SYSTEM_ZLIB),) + liborcus_LIBS+=-lz + endif + ifneq ($(SYSTEM_BOOST),) +-liborcus_LIBS+=$(BOOST_SYSTEM_LIB) $(BOOST_IOSTREAMS_LIB) ++liborcus_LIBS+=$(BOOST_SYSTEM_LIB) $(BOOST_IOSTREAMS_LIB) $(BOOST_FILESYSTEM_LIB) + else +-liborcus_LIBS+=-L$(gb_StaticLibrary_WORKDIR) -lboost_system -lboost_iostreams ++liborcus_LIBS+=-L$(gb_StaticLibrary_WORKDIR) -lboost_system -lboost_iostreams -lboost_filesystem + endif + ifeq ($(OS),ANDROID) + liborcus_LIBS+=-lgnustl_shared -lm +@@ -96,12 +97,13 @@ $(call gb_ExternalProject_get_state_target,liborcus,build) : + , \ + --enable-shared --disable-static \ + ) \ +- $(if $(ENABLE_DEBUG),--enable-debug,--disable-debug) \ +- --disable-spreadsheet-model \ +- --without-tools \ +- --disable-werror \ +- $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \ +- $(if $(SYSTEM_BOOST),,\ ++ $(if $(ENABLE_DEBUG),--enable-debug,--disable-debug) \ ++ --disable-spreadsheet-model \ ++ --without-tools \ ++ --disable-python \ ++ --disable-werror \ ++ $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \ ++ $(if $(SYSTEM_BOOST),,\ + --with-boost=$(WORKDIR)/UnpackedTarball/boost \ + boost_cv_lib_iostreams=yes \ + boost_cv_lib_system=yes \ +@@ -111,8 +113,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 \ +- $(gb_Package_SOURCEDIR_liborcus)/src/liborcus/.libs/liborcus-0.10.0.dylib \ +- $(gb_Package_SOURCEDIR_liborcus)/src/parser/.libs/liborcus-parser-0.10.0.dylib \ ++ $(gb_Package_SOURCEDIR_liborcus)/src/liborcus/.libs/liborcus-0.11.0.dylib \ ++ $(gb_Package_SOURCEDIR_liborcus)/src/parser/.libs/liborcus-parser-0.11.0.dylib \ + ) \ + ) + +diff --git a/external/liborcus/Library_orcus-parser.mk b/external/liborcus/Library_orcus-parser.mk +index c3b4eec..28af14e 100644 +--- a/external/liborcus/Library_orcus-parser.mk ++++ b/external/liborcus/Library_orcus-parser.mk +@@ -39,6 +39,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus-parser,\ + UnpackedTarball/liborcus/src/parser/css_types \ + UnpackedTarball/liborcus/src/parser/csv_parser_base \ + UnpackedTarball/liborcus/src/parser/exception \ ++ UnpackedTarball/liborcus/src/parser/json_parser_base \ ++ UnpackedTarball/liborcus/src/parser/parser_base \ + UnpackedTarball/liborcus/src/parser/parser_global \ + UnpackedTarball/liborcus/src/parser/pstring \ + UnpackedTarball/liborcus/src/parser/sax_parser_base \ +@@ -48,6 +50,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus-parser,\ + UnpackedTarball/liborcus/src/parser/tokens \ + UnpackedTarball/liborcus/src/parser/types \ + UnpackedTarball/liborcus/src/parser/xml_namespace \ ++ UnpackedTarball/liborcus/src/parser/yaml_parser_base \ + UnpackedTarball/liborcus/src/parser/zip_archive \ + UnpackedTarball/liborcus/src/parser/zip_archive_stream \ + )) +diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk +index ae98d5e..96169f1 100644 +--- a/external/liborcus/Library_orcus.mk ++++ b/external/liborcus/Library_orcus.mk +@@ -13,6 +13,7 @@ $(eval $(call gb_Library_use_unpacked,orcus,liborcus)) + + $(eval $(call gb_Library_use_externals,orcus,\ + boost_headers \ ++ boost_filesystem \ + boost_iostreams \ + boost_system \ + mdds_headers \ +@@ -53,12 +54,16 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/gnumeric_namespace_types \ + UnpackedTarball/liborcus/src/liborcus/gnumeric_sheet_context \ + UnpackedTarball/liborcus/src/liborcus/gnumeric_tokens \ ++ UnpackedTarball/liborcus/src/liborcus/info \ + UnpackedTarball/liborcus/src/liborcus/interface \ ++ UnpackedTarball/liborcus/src/liborcus/json_document_tree \ ++ UnpackedTarball/liborcus/src/liborcus/json_util \ + UnpackedTarball/liborcus/src/liborcus/measurement \ ++ UnpackedTarball/liborcus/src/liborcus/odf_helper \ + UnpackedTarball/liborcus/src/liborcus/odf_namespace_types \ + UnpackedTarball/liborcus/src/liborcus/odf_para_context \ +- UnpackedTarball/liborcus/src/liborcus/odf_styles \ + UnpackedTarball/liborcus/src/liborcus/odf_styles_context \ ++ UnpackedTarball/liborcus/src/liborcus/odf_styles \ + UnpackedTarball/liborcus/src/liborcus/odf_tokens \ + UnpackedTarball/liborcus/src/liborcus/ods_content_xml_context \ + UnpackedTarball/liborcus/src/liborcus/ods_content_xml_handler \ +@@ -73,18 +78,26 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/opc_reader \ + UnpackedTarball/liborcus/src/liborcus/orcus_csv \ + UnpackedTarball/liborcus/src/liborcus/orcus_gnumeric \ ++ UnpackedTarball/liborcus/src/liborcus/orcus_import_ods \ ++ UnpackedTarball/liborcus/src/liborcus/orcus_import_xlsx \ + UnpackedTarball/liborcus/src/liborcus/orcus_ods \ + UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \ ++ UnpackedTarball/liborcus/src/liborcus/orcus_xls_xml \ + UnpackedTarball/liborcus/src/liborcus/orcus_xml \ + UnpackedTarball/liborcus/src/liborcus/session_context \ + UnpackedTarball/liborcus/src/liborcus/spreadsheet_interface \ + UnpackedTarball/liborcus/src/liborcus/spreadsheet_types \ +- UnpackedTarball/liborcus/src/liborcus/xls_xml_namespace_types \ ++ UnpackedTarball/liborcus/src/liborcus/string_helper \ + UnpackedTarball/liborcus/src/liborcus/xlsx_autofilter_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_conditional_format_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_handler \ + UnpackedTarball/liborcus/src/liborcus/xlsx_helper \ ++ UnpackedTarball/liborcus/src/liborcus/xls_xml_context \ ++ UnpackedTarball/liborcus/src/liborcus/xls_xml_detection_handler \ ++ UnpackedTarball/liborcus/src/liborcus/xls_xml_handler \ ++ UnpackedTarball/liborcus/src/liborcus/xls_xml_namespace_types \ ++ UnpackedTarball/liborcus/src/liborcus/xls_xml_tokens \ + UnpackedTarball/liborcus/src/liborcus/xlsx_pivot_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_revision_context \ + UnpackedTarball/liborcus/src/liborcus/xlsx_session_data \ +@@ -99,6 +112,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ + UnpackedTarball/liborcus/src/liborcus/xml_stream_handler \ + UnpackedTarball/liborcus/src/liborcus/xml_stream_parser \ + UnpackedTarball/liborcus/src/liborcus/xml_structure_tree \ ++ UnpackedTarball/liborcus/src/liborcus/yaml_document_tree \ + )) + + # vim: set noet sw=4 ts=4: +diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk +index 825fa49..0e337ef 100644 +--- a/external/liborcus/UnpackedTarball_liborcus.mk ++++ b/external/liborcus/UnpackedTarball_liborcus.mk +@@ -16,8 +16,15 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,liborcus,1)) + $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ + external/liborcus/0001-workaround-a-linking-problem-on-windows.patch \ + external/liborcus/rpath.patch.0 \ +- external/liborcus/fix-crash-ooo55043-1.patch.0 \ +- external/liborcus/unusedheader.patch.0 \ ++ external/liborcus/0001-Fix-for-OSX-build-inside-LibreOffice.patch \ ++ external/liborcus/0001-Get-it-to-build-on-Windows.patch \ + )) + ++ifeq ($(OS),WNT) ++$(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ ++ external/liborcus/windows-constants-hack.patch \ ++)) ++endif ++ ++ + # vim: set noet sw=4 ts=4: +diff --git a/external/liborcus/fix-crash-ooo55043-1.patch.0 b/external/liborcus/fix-crash-ooo55043-1.patch.0 +deleted file mode 100644 +index 58a97c0..0000000 +--- a/external/liborcus/fix-crash-ooo55043-1.patch.0 ++++ /dev/null +@@ -1,17 +0,0 @@ +---- src/parser/zip_archive_stream.cpp +-+++ src/parser/zip_archive_stream.cpp +-@@ -91,8 +91,13 @@ +- +- void zip_archive_stream_blob::read(unsigned char* buffer, size_t length) const +- { +-+ if (!length) +-+ return; +- // First, make sure we have enough blob to satisfy the requested stream length. +-- size_t length_available = m_size - tell(); +-+ const size_t pos = tell(); +-+ if (pos > m_size) +-+ throw zip_error("Stream is seeked past end. No data available"); +-+ const size_t length_available = m_size - pos; +- if (length_available < length) +- throw zip_error("There is not enough stream left to fill requested length."); +- +diff --git a/external/liborcus/unusedheader.patch.0 b/external/liborcus/unusedheader.patch.0 +deleted file mode 100644 +index 4f7a77b..0000000 +--- a/external/liborcus/unusedheader.patch.0 ++++ /dev/null +@@ -1,11 +0,0 @@ +---- ./src/parser/pstring.cpp.orig 2015-12-02 14:38:44.658744408 +0000 +-+++ ./src/parser/pstring.cpp 2015-12-02 14:38:50.449658497 +0000 +-@@ -13,8 +13,6 @@ +- #include <iostream> +- #include <vector> +- +--#include <boost/thread/mutex.hpp> +-- +- using namespace std; +- +- namespace orcus { +diff --git a/external/liborcus/windows-constants-hack.patch b/external/liborcus/windows-constants-hack.patch +new file mode 100755 +index 0000000..876bc16 +--- /dev/null ++++ b/external/liborcus/windows-constants-hack.patch +@@ -0,0 +1,15 @@ ++diff --git a/src/liborcus/info.cpp b/src/liborcus/info.cpp ++index ae571f5..539ce18 100644 ++--- a/src/liborcus/info.cpp +++++ b/src/liborcus/info.cpp ++@@ -7,7 +7,9 @@ ++ ++ #include "orcus/info.hpp" ++ ++-#include "constants.inl" +++#define ORCUS_MAJOR_VERSION 0 +++#define ORCUS_MINOR_VERSION 11 +++#define ORCUS_MICRO_VERSION 0 ++ ++ namespace orcus { ++ +diff --git a/sc/Library_scfilt.mk b/sc/Library_scfilt.mk +index 74f2ce5..b764290 100644 +--- a/sc/Library_scfilt.mk ++++ b/sc/Library_scfilt.mk +@@ -227,6 +227,7 @@ ifeq ($(ENABLE_ORCUS),TRUE) + $(eval $(call gb_Library_use_externals,scfilt,\ + orcus \ + orcus-parser \ ++ boost_filesystem \ + boost_system \ + boost_iostreams \ + zlib \ +diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx +index 63b36ef..05fe4cb 100644 +--- a/sc/source/filter/inc/orcusinterface.hxx ++++ b/sc/source/filter/inc/orcusinterface.hxx +@@ -375,6 +375,7 @@ public: + + virtual void set_border_count(size_t n) override; + virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, const char* s, size_t n) override; ++ virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, orcus::spreadsheet::border_style_t style) override; + virtual void set_border_color(orcus::spreadsheet::border_direction_t dir, + orcus::spreadsheet::color_elem_t alpha, + orcus::spreadsheet::color_elem_t red, +@@ -425,6 +426,7 @@ public: + virtual void set_cell_style_name(const char* s, size_t n) 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 size_t commit_cell_style() override; + }; + +diff --git a/sc/source/filter/orcus/filterdetect.cxx b/sc/source/filter/orcus/filterdetect.cxx +index 7dfccb9..9ae30ad 100644 +--- a/sc/source/filter/orcus/filterdetect.cxx ++++ b/sc/source/filter/orcus/filterdetect.cxx +@@ -93,7 +93,7 @@ OUString OrcusFormatDetect::detect(css::uno::Sequence<css::beans::PropertyValue> + } + + orcus::format_t eFormat = orcus::detect(reinterpret_cast<const unsigned char*>(aContent.getStr()), aContent.getLength()); +- if (eFormat == orcus::format_gnumeric) ++ if (eFormat == orcus::format_t::gnumeric) + return OUString("Gnumeric XML"); + + return OUString(); +diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx +index e50b8bf..496faea 100644 +--- a/sc/source/filter/orcus/interface.cxx ++++ b/sc/source/filter/orcus/interface.cxx +@@ -55,7 +55,7 @@ void ScOrcusGlobalSettings::set_default_formula_grammar(orcus::spreadsheet::form + + orcus::spreadsheet::formula_grammar_t ScOrcusGlobalSettings::get_default_formula_grammar() const + { +- return orcus::spreadsheet::formula_grammar_unknown; ++ return orcus::spreadsheet::formula_grammar_t::unknown; + } + + ScOrcusFactory::StringCellCache::StringCellCache(const ScAddress& rPos, size_t nIndex) : +@@ -231,19 +231,19 @@ double translateToInternal(double nVal, orcus::length_unit_t unit) + { + switch(unit) + { +- case orcus::length_unit_inch: ++ case orcus::length_unit_t::inch: + return nVal * 72.0 * 20.0; + break; +- case orcus::length_unit_twip: ++ case orcus::length_unit_t::twip: + return nVal; + break; +- case orcus::length_unit_point: ++ case orcus::length_unit_t::point: + return nVal * 20.0; + break; +- case orcus::length_unit_centimeter: ++ case orcus::length_unit_t::centimeter: + return nVal * 20.0 * 72.0 / 2.54; + break; +- case orcus::length_unit_unknown: ++ case orcus::length_unit_t::unknown: + SAL_WARN("sc.orcus", "unknown unit"); + break; + default: +@@ -393,18 +393,18 @@ void ScOrcusConditionalFormat::set_type(os::conditional_format_t type) + { + switch (type) + { +- case os::conditional_format_condition: +- case os::conditional_format_formula: ++ case os::conditional_format_t::condition: ++ case os::conditional_format_t::formula: + meEntryType = condformat::CONDITION; + // mpCurrentEntry.reset(new ScCondFormatEntry()); + break; +- case os::conditional_format_date: ++ case os::conditional_format_t::date: + break; +- case os::conditional_format_colorscale: ++ case os::conditional_format_t::colorscale: + break; +- case os::conditional_format_databar: ++ case os::conditional_format_t::databar: + break; +- case os::conditional_format_iconset: ++ case os::conditional_format_t::iconset: + break; + default: + SAL_INFO("sc.orcus.condformat", "unknown conditional_format_t value"); +@@ -549,17 +549,17 @@ formula::FormulaGrammar::Grammar getCalcGrammarFromOrcus( os::formula_grammar_t + formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_ODFF; + switch(grammar) + { +- case orcus::spreadsheet::formula_grammar_ods: ++ case orcus::spreadsheet::formula_grammar_t::ods: + eGrammar = formula::FormulaGrammar::GRAM_ODFF; + break; +- case orcus::spreadsheet::formula_grammar_xlsx_2007: +- case orcus::spreadsheet::formula_grammar_xlsx_2010: ++ case orcus::spreadsheet::formula_grammar_t::xlsx_2007: ++ case orcus::spreadsheet::formula_grammar_t::xlsx_2010: + eGrammar = formula::FormulaGrammar::GRAM_OOXML; + break; +- case orcus::spreadsheet::formula_grammar_gnumeric: ++ case orcus::spreadsheet::formula_grammar_t::gnumeric: + eGrammar = formula::FormulaGrammar::GRAM_ENGLISH_XL_A1; + break; +- case orcus::spreadsheet::formula_grammar_unknown: ++ case orcus::spreadsheet::formula_grammar_t::unknown: + break; + } + +@@ -799,16 +799,16 @@ SvxBoxItemLine getDirection(os::border_direction_t dir) + { + switch (dir) + { +- case os::border_right: ++ case os::border_direction_t::right: + return SvxBoxItemLine::RIGHT; + break; +- case os::border_left: ++ case os::border_direction_t::left: + return SvxBoxItemLine::RIGHT; + break; +- case os::border_top: ++ case os::border_direction_t::top: + return SvxBoxItemLine::RIGHT; + break; +- case os::border_bottom: ++ case os::border_direction_t::bottom: + return SvxBoxItemLine::RIGHT; + break; + default: +@@ -947,15 +947,15 @@ void ScOrcusStyles::set_font_underline(orcus::spreadsheet::underline_t e) + { + switch(e) + { +- case orcus::spreadsheet::underline_single: +- case orcus::spreadsheet::underline_single_accounting: ++ case orcus::spreadsheet::underline_t::single_line: ++ case orcus::spreadsheet::underline_t::single_accounting: + maCurrentFont.meUnderline = UNDERLINE_SINGLE; + break; +- case orcus::spreadsheet::underline_double: +- case orcus::spreadsheet::underline_double_accounting: ++ case orcus::spreadsheet::underline_t::double_line: ++ case orcus::spreadsheet::underline_t::double_accounting: + maCurrentFont.meUnderline = UNDERLINE_DOUBLE; + break; +- case orcus::spreadsheet::underline_none: ++ case orcus::spreadsheet::underline_t::none: + maCurrentFont.meUnderline = UNDERLINE_NONE; + break; + } +@@ -1019,6 +1019,12 @@ void ScOrcusStyles::set_border_style(orcus::spreadsheet::border_direction_t /*di + // implement later + } + ++void ScOrcusStyles::set_border_style( ++ orcus::spreadsheet::border_direction_t /*dir*/, orcus::spreadsheet::border_style_t /*style*/) ++{ ++ // implement later ++} ++ + void ScOrcusStyles::set_border_color(orcus::spreadsheet::border_direction_t dir, + orcus::spreadsheet::color_elem_t alpha, + orcus::spreadsheet::color_elem_t red, +@@ -1186,6 +1192,11 @@ 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*/) ++{ ++ // place holder ++} ++ + size_t ScOrcusStyles::commit_cell_style() + { + SAL_INFO("sc.orcus.style", "commit cell style: " << maCurrentCellStyle.maName); +-- +cgit v0.10.2 +