diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-04-08 03:04:13 +0200 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-04-08 04:30:19 +0200 |
commit | 58e299f7c26fd0e5094fb68a30349c5962c003ef (patch) | |
tree | 2ac21dd0be45e2a23a329b19a16b87aa5acad1d7 | |
parent | faccfb6e7d692d5b562e5687034350b1873b426a (diff) |
Downgrade to liborcus 0.15 and mdds 0.15
... so LO can build with stock Ubuntu 20.04.
Change-Id: I7c2647ba932f4c6d8f540fca1a531d498c5c3675
-rw-r--r-- | RepositoryExternal.mk | 4 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | download.lst | 8 | ||||
-rw-r--r-- | external/liborcus/ExternalPackage_liborcus.mk | 8 | ||||
-rw-r--r-- | external/liborcus/ExternalProject_liborcus.mk | 4 | ||||
-rw-r--r-- | external/liborcus/Library_orcus-parser.mk | 1 | ||||
-rw-r--r-- | external/liborcus/Library_orcus.mk | 4 | ||||
-rw-r--r-- | external/liborcus/UnpackedTarball_liborcus.mk | 1 | ||||
-rw-r--r-- | external/liborcus/include.patch.0 | 30 | ||||
-rw-r--r-- | external/liborcus/libtool.patch.0 | 10 | ||||
-rw-r--r-- | external/liborcus/windows-constants-hack.patch | 2 | ||||
-rw-r--r-- | external/mdds/UnpackedTarball_mdds.mk | 5 | ||||
-rw-r--r-- | external/mdds/Wdeprecated-copy.patch | 11 | ||||
-rw-r--r-- | sc/source/filter/inc/orcusinterface.hxx | 16 | ||||
-rw-r--r-- | sc/source/filter/orcus/interface.cxx | 78 | ||||
-rw-r--r-- | sc/source/filter/orcus/xmlcontext.cxx | 7 | ||||
-rw-r--r-- | sc/source/ui/xmlsource/xmlsourcedlg.cxx | 6 |
17 files changed, 67 insertions, 130 deletions
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 46b42b5fea32..59426f1647a7 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -3286,7 +3286,7 @@ $(call gb_LinkTarget_set_include,$(1),\ ) $(call gb_LinkTarget_add_libs,$(1),\ - -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.16 \ + -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.15 \ ) $(if $(SYSTEM_BOOST), \ @@ -3305,7 +3305,7 @@ $(call gb_LinkTarget_set_include,$(1),\ ) $(call gb_LinkTarget_add_libs,$(1),\ - -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.16 \ + -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.15 \ ) endef diff --git a/configure.ac b/configure.ac index 3df488a662c2..09f6dd085c8e 100644 --- a/configure.ac +++ b/configure.ac @@ -10433,7 +10433,7 @@ AC_SUBST(ENABLE_FUZZERS) dnl =================================================================== dnl Orcus dnl =================================================================== -libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.16 >= 0.16.0]) +libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.15 >= 0.15.0]) if test "$with_system_orcus" != "yes"; then if test "$SYSTEM_BOOST" = "TRUE"; then # =========================================================== diff --git a/download.lst b/download.lst index 3c3462552d74..4987042fc0a6 100644 --- a/download.lst +++ b/download.lst @@ -180,8 +180,8 @@ export LXML_SHA256SUM := 940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a export LXML_TARBALL := lxml-4.1.1.tgz export MARIADB_CONNECTOR_C_SHA256SUM := 431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b export MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.1.8-src.tar.gz -export MDDS_SHA256SUM := a66a2a8293a3abc6cd9baff7c236156e2666935cbfb69a15d64d38141638fecf -export MDDS_TARBALL := mdds-1.7.0.tar.bz2 +export MDDS_SHA256SUM := 144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d +export MDDS_TARBALL := mdds-1.5.0.tar.bz2 export MDNSRESPONDER_SHA256SUM := e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0 export MDNSRESPONDER_TARBALL := mDNSResponder-878.200.35.tar.gz export MSPUB_SHA256SUM := ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba @@ -206,8 +206,8 @@ export OPENLDAP_SHA256SUM := cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb89 export OPENLDAP_TARBALL := openldap-2.4.45.tgz export OPENSSL_SHA256SUM := e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242 export OPENSSL_TARBALL := openssl-1.1.1i.tar.gz -export ORCUS_SHA256SUM := c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4 -export ORCUS_TARBALL := liborcus-0.16.1.tar.bz2 +export ORCUS_SHA256SUM := cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61 +export ORCUS_TARBALL := liborcus-0.15.4.tar.bz2 export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz export PDFIUM_SHA256SUM := c95d11cf9d05fbf49831b7436d93191f85e3daba2b2b061a7f1327856fc4908f diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk index 747691809d2e..21dd1bfb1ce5 100644 --- a/external/liborcus/ExternalPackage_liborcus.mk +++ b/external/liborcus/ExternalPackage_liborcus.mk @@ -12,11 +12,11 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,liborcus,liborcus)) $(eval $(call gb_ExternalPackage_use_external_project,liborcus,liborcus)) ifeq ($(OS),MACOSX) -$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.16.0.dylib,src/liborcus/.libs/liborcus-0.16.0.dylib)) -$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.16.0.dylib,src/parser/.libs/liborcus-parser-0.16.0.dylib)) +$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.15.0.dylib,src/liborcus/.libs/liborcus-0.15.0.dylib)) +$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.15.0.dylib,src/parser/.libs/liborcus-parser-0.15.0.dylib)) else ifeq ($(DISABLE_DYNLOADING),) -$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.16.so.0,src/liborcus/.libs/liborcus-0.16.so.0.0.0)) -$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.16.so.0,src/parser/.libs/liborcus-parser-0.16.so.0.0.0)) +$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.15.so.0,src/liborcus/.libs/liborcus-0.15.so.0.0.0)) +$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.15.so.0,src/parser/.libs/liborcus-parser-0.15.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 c2a8cdcbe4a3..136fa538397e 100644 --- a/external/liborcus/ExternalProject_liborcus.mk +++ b/external/liborcus/ExternalProject_liborcus.mk @@ -123,8 +123,8 @@ $(call gb_ExternalProject_get_state_target,liborcus,build) : $(MAKE) \ $(if $(filter MACOSX,$(OS)),\ && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \ - $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.16.0.dylib \ - $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.16.0.dylib \ + $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.15.0.dylib \ + $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.15.0.dylib \ ) \ ) $(call gb_Trace_EndRange,liborcus,EXTERNAL) diff --git a/external/liborcus/Library_orcus-parser.mk b/external/liborcus/Library_orcus-parser.mk index 4e46591b98fe..d3cbddbb8cec 100644 --- a/external/liborcus/Library_orcus-parser.mk +++ b/external/liborcus/Library_orcus-parser.mk @@ -63,7 +63,6 @@ $(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/xml_writer \ 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 0a0ca582882a..ea99e7509fbf 100644 --- a/external/liborcus/Library_orcus.mk +++ b/external/liborcus/Library_orcus.mk @@ -85,7 +85,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ UnpackedTarball/liborcus/src/liborcus/odf_tokens \ UnpackedTarball/liborcus/src/liborcus/ods_content_xml_context \ UnpackedTarball/liborcus/src/liborcus/ods_content_xml_handler \ - UnpackedTarball/liborcus/src/liborcus/ods_dde_links_context \ UnpackedTarball/liborcus/src/liborcus/ods_session_data \ UnpackedTarball/liborcus/src/liborcus/ooxml_content_types \ UnpackedTarball/liborcus/src/liborcus/ooxml_global \ @@ -104,7 +103,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ UnpackedTarball/liborcus/src/liborcus/orcus_xls_xml \ UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \ UnpackedTarball/liborcus/src/liborcus/orcus_xml \ - UnpackedTarball/liborcus/src/liborcus/orcus_xml_impl \ UnpackedTarball/liborcus/src/liborcus/orcus_xml_map_def \ UnpackedTarball/liborcus/src/liborcus/session_context \ UnpackedTarball/liborcus/src/liborcus/spreadsheet_iface_util \ @@ -136,9 +134,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ UnpackedTarball/liborcus/src/liborcus/xml_simple_stream_handler \ UnpackedTarball/liborcus/src/liborcus/xml_stream_handler \ UnpackedTarball/liborcus/src/liborcus/xml_stream_parser \ - UnpackedTarball/liborcus/src/liborcus/xml_structure_mapper \ UnpackedTarball/liborcus/src/liborcus/xml_structure_tree \ - UnpackedTarball/liborcus/src/liborcus/xpath_parser \ UnpackedTarball/liborcus/src/liborcus/yaml_document_tree \ )) diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk index 113e8e25818d..e5e33b0b1249 100644 --- a/external/liborcus/UnpackedTarball_liborcus.mk +++ b/external/liborcus/UnpackedTarball_liborcus.mk @@ -20,7 +20,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ external/liborcus/gcc9.patch.0 \ external/liborcus/libtool.patch.0 \ external/liborcus/fix-pch.patch.0 \ - external/liborcus/include.patch.0 \ )) ifeq ($(OS),WNT) diff --git a/external/liborcus/include.patch.0 b/external/liborcus/include.patch.0 deleted file mode 100644 index a3275b1b13fa..000000000000 --- a/external/liborcus/include.patch.0 +++ /dev/null @@ -1,30 +0,0 @@ ---- src/liborcus/orcus_xlsx.cpp -+++ src/liborcus/orcus_xlsx.cpp -@@ -32,6 +32,7 @@ - - #include <cstdlib> - #include <iostream> -+#include <limits> - #include <string> - #include <cstring> - #include <sstream> ---- src/liborcus/xls_xml_context.cpp -+++ src/liborcus/xls_xml_context.cpp -@@ -16,6 +16,7 @@ - #include <mdds/sorted_string_map.hpp> - - #include <iostream> -+#include <limits> - - using namespace std; - namespace ss = orcus::spreadsheet; ---- src/liborcus/xlsx_revision_context.cpp -+++ src/liborcus/xlsx_revision_context.cpp -@@ -16,6 +16,7 @@ - #include "orcus/global.hpp" - - #include <iostream> -+#include <limits> - - using namespace std; - diff --git a/external/liborcus/libtool.patch.0 b/external/liborcus/libtool.patch.0 index 663dbd8099d7..aa6ffa908ec3 100644 --- a/external/liborcus/libtool.patch.0 +++ b/external/liborcus/libtool.patch.0 @@ -1,11 +1,11 @@ ---- ltmain.sh.orig 2020-09-09 21:20:23.069433984 -0400 -+++ ltmain.sh 2020-09-09 21:27:13.168073996 -0400 -@@ -7373,7 +7373,7 @@ +--- ltmain.sh.sav 2018-09-14 23:47:13.000000000 +0200 ++++ ltmain.sh 2019-05-05 23:11:30.406904472 +0200 +@@ -7278,7 +7278,7 @@ func_mode_link () -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -- -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) -+ -specs=*|-fsanitize=*|-fuse-ld=*|--ld-path=*|-static-*|-fcilkplus) +- -specs=*|-fsanitize=*) ++ -specs=*|-fsanitize=*|-fuse-ld=*|--ld-path=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" diff --git a/external/liborcus/windows-constants-hack.patch b/external/liborcus/windows-constants-hack.patch index 51aabfa1fb47..876bc1688a31 100644 --- a/external/liborcus/windows-constants-hack.patch +++ b/external/liborcus/windows-constants-hack.patch @@ -8,7 +8,7 @@ index ae571f5..539ce18 100644 -#include "constants.inl" +#define ORCUS_MAJOR_VERSION 0 -+#define ORCUS_MINOR_VERSION 16 ++#define ORCUS_MINOR_VERSION 11 +#define ORCUS_MICRO_VERSION 0 namespace orcus { diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk index 65dd0109e972..2e456712704a 100644 --- a/external/mdds/UnpackedTarball_mdds.mk +++ b/external/mdds/UnpackedTarball_mdds.mk @@ -11,9 +11,12 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,mdds)) $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL))) -$(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,1)) +$(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0)) +# external/mdds/Wdeprecated-copy.patch upstream at <https://gitlab.com/mdds/mdds/merge_requests/21> +# "Remove redundantly user-declared private_data copy constructor": $(eval $(call gb_UnpackedTarball_add_patches,mdds,\ + external/mdds/Wdeprecated-copy.patch \ )) # vim: set noet sw=4 ts=4: diff --git a/external/mdds/Wdeprecated-copy.patch b/external/mdds/Wdeprecated-copy.patch new file mode 100644 index 000000000000..edcb2ddaa9ec --- /dev/null +++ b/external/mdds/Wdeprecated-copy.patch @@ -0,0 +1,11 @@ +--- include/mdds/multi_type_vector_itr.hpp ++++ include/mdds/multi_type_vector_itr.hpp +@@ -71,8 +71,6 @@ + private_data() : block_index(0) {} + private_data(size_type _block_index) : + block_index(_block_index) {} +- private_data(const private_data& other) : +- block_index(other.block_index) {} + + void swap(private_data& other) + { diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx index f92125d207ce..e8aed6ca81fc 100644 --- a/sc/source/filter/inc/orcusinterface.hxx +++ b/sc/source/filter/inc/orcusinterface.hxx @@ -75,28 +75,20 @@ class ScOrcusRefResolver : public orcus::spreadsheet::iface::import_reference_re public: ScOrcusRefResolver( const ScOrcusGlobalSettings& rGS ); - orcus::spreadsheet::src_address_t resolve_address(const char* p, size_t n) override; - orcus::spreadsheet::src_range_t resolve_range(const char* p, size_t n) override; + orcus::spreadsheet::address_t resolve_address(const char* p, size_t n) override; + orcus::spreadsheet::range_t resolve_range(const char* p, size_t n) override; }; class ScOrcusNamedExpression : public orcus::spreadsheet::iface::import_named_expression { ScDocumentImport& mrDoc; const ScOrcusGlobalSettings& mrGlobalSettings; - ScAddress maBasePos; - OUString maName; - OUString maExpr; - const SCTAB mnTab; //< negative if global, else >= 0 for sheet-local named expressions. + SCTAB mnTab; //< negative if global, else >= 0 for sheet-local named expressions. public: ScOrcusNamedExpression( ScDocumentImport& rDoc, const ScOrcusGlobalSettings& rGS, SCTAB nTab = -1 ); - void reset(); - - virtual void set_base_position(const orcus::spreadsheet::src_address_t& pos) override; - virtual void set_named_expression(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) override; - virtual void set_named_range(const char* p_name, size_t n_name, const char* p_range, size_t n_range) override; - virtual void commit() override; + virtual void define_name(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) override; }; class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_strings diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx index 35fb72548a4c..b5527d987fb5 100644 --- a/sc/source/filter/orcus/interface.cxx +++ b/sc/source/filter/orcus/interface.cxx @@ -46,7 +46,6 @@ #include <sal/log.hxx> #include <stylesbuffer.hxx> -#include <orcus/exception.hpp> using namespace com::sun::star; @@ -159,7 +158,7 @@ orcus::spreadsheet::formula_grammar_t ScOrcusGlobalSettings::get_default_formula ScOrcusRefResolver::ScOrcusRefResolver( const ScOrcusGlobalSettings& rGS ) : mrGlobalSettings(rGS) {} -os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n) +os::address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n) { OUString aStr(p, n, mrGlobalSettings.getTextEncoding()); @@ -168,22 +167,20 @@ os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n) formula::FormulaGrammar::extractRefConvention( mrGlobalSettings.getCalcGrammar())); - if (!aAddr.IsValid()) + os::address_t ret; + ret.column = 0; + ret.row = 0; + + if (aAddr.IsValid()) { - std::ostringstream os; - os << "'" << std::string(p, n) << "' is not a valid address expression."; - throw orcus::invalid_arg_error(os.str()); + ret.column = aAddr.Col(); + ret.row = aAddr.Row(); } - os::src_address_t ret; - ret.sheet = aAddr.Tab(); - ret.column = aAddr.Col(); - ret.row = aAddr.Row(); - return ret; } -os::src_range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n) +os::range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n) { OUString aStr(p, n, mrGlobalSettings.getTextEncoding()); @@ -192,21 +189,20 @@ os::src_range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n) formula::FormulaGrammar::extractRefConvention( mrGlobalSettings.getCalcGrammar())); - if (!aRange.IsValid()) + os::range_t ret; + ret.first.column = 0; + ret.first.row = 0; + ret.last.column = 0; + ret.last.row = 0; + + if (aRange.IsValid()) { - std::ostringstream os; - os << "'" << std::string(p, n) << "' is not a valid range expression."; - throw orcus::invalid_arg_error(os.str()); + ret.first.column = aRange.aStart.Col(); + ret.first.row = aRange.aStart.Row(); + ret.last.column = aRange.aEnd.Col(); + ret.last.row = aRange.aEnd.Row(); } - os::src_range_t ret; - ret.first.sheet = aRange.aStart.Tab(); - ret.first.column = aRange.aStart.Col(); - ret.first.row = aRange.aStart.Row(); - ret.last.sheet = aRange.aEnd.Tab(); - ret.last.column = aRange.aEnd.Col(); - ret.last.row = aRange.aEnd.Row(); - return ret; } @@ -214,46 +210,20 @@ ScOrcusNamedExpression::ScOrcusNamedExpression( ScDocumentImport& rDoc, const ScOrcusGlobalSettings& rGS, SCTAB nTab ) : mrDoc(rDoc), mrGlobalSettings(rGS), mnTab(nTab) {} -void ScOrcusNamedExpression::reset() -{ - maBasePos.SetTab(0); - maBasePos.SetCol(0); - maBasePos.SetRow(0); - maName.clear(); - maExpr.clear(); -} - -void ScOrcusNamedExpression::set_base_position(const orcus::spreadsheet::src_address_t& pos) -{ - maBasePos.SetTab(pos.sheet); - maBasePos.SetCol(pos.column); - maBasePos.SetRow(pos.row); -} - -void ScOrcusNamedExpression::set_named_expression(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) -{ - maName = OUString(p_name, n_name, mrGlobalSettings.getTextEncoding()); - maExpr = OUString(p_exp, n_exp, mrGlobalSettings.getTextEncoding()); -} - -void ScOrcusNamedExpression::set_named_range(const char* /*p_name*/, size_t /*n_name*/, const char* /*p_range*/, size_t /*n_range*/) +void ScOrcusNamedExpression::define_name(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) { - throw std::runtime_error("ScOrcusNamedExpression::set_named_range not implemented yet."); -} + OUString aName(p_name, n_name, mrGlobalSettings.getTextEncoding()); + OUString aExpr(p_exp, n_exp, mrGlobalSettings.getTextEncoding()); -void ScOrcusNamedExpression::commit() -{ ScRangeName* pNames = mnTab >= 0 ? mrDoc.getDoc().GetRangeName(mnTab) : mrDoc.getDoc().GetRangeName(); if (!pNames) return; ScRangeData* pRange = new ScRangeData( - mrDoc.getDoc(), maName, maExpr, maBasePos, ScRangeData::Type::Name, + mrDoc.getDoc(), aName, aExpr, ScAddress(), ScRangeData::Type::Name, mrGlobalSettings.getCalcGrammar()); pNames->insert(pRange, false); - - reset(); // make sure to reset the state for the next run. } ScOrcusFactory::CellStoreToken::CellStoreToken(const ScAddress& rPos, Type eType) diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx index 1f3ee58220a0..f886dd555a66 100644 --- a/sc/source/filter/orcus/xmlcontext.cxx +++ b/sc/source/filter/orcus/xmlcontext.cxx @@ -89,9 +89,10 @@ void populateTree( rTreeCtrl.set_image(*xEntry, rParam.maImgElementRepeat, -1); } - orcus::xml_structure_tree::entity_names_type aNames = rWalker.get_attributes(); + orcus::xml_structure_tree::entity_names_type aNames; // Insert attributes. + rWalker.get_attributes(aNames); for (const orcus::xml_structure_tree::entity_name& rAttrName : aNames) { OUString sAttr(toString(rAttrName, rWalker)); @@ -105,7 +106,7 @@ void populateTree( rTreeCtrl.set_image(*xAttr, rParam.maImgAttribute, -1); } - aNames = rWalker.get_children(); + rWalker.get_children(aNames); // Non-leaf if it has child elements, leaf otherwise. rEntryData.mbLeafNode = aNames.empty(); @@ -265,7 +266,7 @@ void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam) std::for_each(rLink.maFieldPaths.begin(), rLink.maFieldPaths.end(), [&filter](const OString& rFieldPath) { - filter.append_field_link(rFieldPath.getStr(), orcus::pstring()); + filter.append_field_link(rFieldPath.getStr()); } ); diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx index edc8ca3d5dcb..7d4724234c14 100644 --- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx +++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx @@ -49,12 +49,8 @@ OUString getXPath( if (pData) rNamespaces.push_back(pData->mnNamespaceID); - // element separator is '/' whereas attribute separator is '/@' in xpath. aBuf.insert(0, rTree.get_text(*xEntry, 0)); - if (isAttribute(rTree, *xEntry)) - aBuf.insert(0, "/@"); - else - aBuf.insert(0, '/'); + aBuf.insert(0, isAttribute(rTree, *xEntry) ? '@' : '/'); } while (rTree.iter_parent(*xEntry)); |