Upgrade liborcus to 0.16.0.

Change-Id: Iae29fb26417dfc161698a81bee84e81545969065
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102502
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
This commit is contained in:
Kohei Yoshida
2020-09-12 05:49:10 +02:00
parent 0c31a0a517
commit 109ed8f775
15 changed files with 480 additions and 52 deletions
+2 -2
View File
@@ -3270,7 +3270,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.15 \
-L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.16 \
)
$(if $(SYSTEM_BOOST), \
@@ -3289,7 +3289,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.15 \
-L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.16 \
)
endef
+1 -1
View File
@@ -10126,7 +10126,7 @@ AC_SUBST(ENABLE_FUZZERS)
dnl ===================================================================
dnl Orcus
dnl ===================================================================
libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.15 >= 0.15.0])
libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.16 >= 0.16.0])
if test "$with_system_orcus" != "yes"; then
if test "$SYSTEM_BOOST" = "TRUE"; then
# ===========================================================
+2 -2
View File
@@ -206,8 +206,8 @@ export OPENLDAP_SHA256SUM := cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb89
export OPENLDAP_TARBALL := openldap-2.4.45.tgz
export OPENSSL_SHA256SUM := ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
export OPENSSL_TARBALL := openssl-1.1.1g.tar.gz
export ORCUS_SHA256SUM := cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61
export ORCUS_TARBALL := liborcus-0.15.4.tar.bz2
export ORCUS_SHA256SUM := 854c6ec167ace59baa2984e175bac7b5b2af91bfde4bb10d2088b87a51ed76ec
export ORCUS_TARBALL := liborcus-0.16.0.tar.bz2
export OWNCLOUD_ANDROID_LIB_SHA256SUM := b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb
export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz
export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d
@@ -0,0 +1,376 @@
From 6d34c41b661a9e8dddf6d08bf1f3c1fd4f5581da Mon Sep 17 00:00:00 2001
From: Kohei Yoshida <kohei.yoshida@gmail.com>
Date: Fri, 11 Sep 2020 21:39:09 -0400
Subject: [PATCH] Mark all untentionally unused variables.
---
include/orcus/css_parser.hpp | 70 ++++++++++++++++++++++++------
include/orcus/csv_parser.hpp | 5 ++-
include/orcus/json_parser.hpp | 15 +++++--
include/orcus/sax_parser.hpp | 35 ++++++++++++---
include/orcus/sax_token_parser.hpp | 20 +++++++--
include/orcus/yaml_parser.hpp | 10 ++++-
6 files changed, 124 insertions(+), 31 deletions(-)
diff --git a/include/orcus/css_parser.hpp b/include/orcus/css_parser.hpp
index cdfae5e0..3e96980b 100644
--- a/include/orcus/css_parser.hpp
+++ b/include/orcus/css_parser.hpp
@@ -31,23 +31,44 @@ namespace orcus {
class css_handler
{
public:
- void at_rule_name(const char* p, size_t n) {}
+ void at_rule_name(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
- void simple_selector_type(const char* p, size_t n) {}
+ void simple_selector_type(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
- void simple_selector_class(const char* p, size_t n) {}
+ void simple_selector_class(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
- void simple_selector_pseudo_element(orcus::css::pseudo_element_t pe) {}
+ void simple_selector_pseudo_element(orcus::css::pseudo_element_t pe)
+ {
+ (void)pe;
+ }
- void simple_selector_pseudo_class(orcus::css::pseudo_class_t pc) {}
+ void simple_selector_pseudo_class(orcus::css::pseudo_class_t pc)
+ {
+ (void)pc;
+ }
- void simple_selector_id(const char* p, size_t n) {}
+ void simple_selector_id(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
void end_simple_selector() {}
void end_selector() {}
- void combinator(orcus::css::combinator_t combinator) {}
+ void combinator(orcus::css::combinator_t combinator)
+ {
+ (void)combinator;
+ }
/**
* Called at each property name.
@@ -55,7 +76,10 @@ public:
* @param p pointer to the char-array containing the property name string.
* @param n length of the property name string.
*/
- void property_name(const char* p, size_t n) {}
+ void property_name(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
/**
* Called at each ordinary property value string.
@@ -63,7 +87,10 @@ public:
* @param p pointer to the char-array containing the value string.
* @param n length of the value string.
*/
- void value(const char* p, size_t n) {}
+ void value(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
/**
* Called at each RGB color value of a property.
@@ -72,7 +99,10 @@ public:
* @param green value of green (0-255)
* @param blue value of blue (0-255)
*/
- void rgb(uint8_t red, uint8_t green, uint8_t blue) {}
+ void rgb(uint8_t red, uint8_t green, uint8_t blue)
+ {
+ (void)red; (void)green; (void)blue;
+ }
/**
* Called at each RGB color value of a property with alpha transparency
@@ -83,7 +113,10 @@ public:
* @param blue value of blue (0-255)
* @param alpha alpha transparency value
*/
- void rgba(uint8_t red, uint8_t green, uint8_t blue, double alpha) {}
+ void rgba(uint8_t red, uint8_t green, uint8_t blue, double alpha)
+ {
+ (void)red; (void)green; (void)blue; (void)alpha;
+ }
/**
* Called at each HSL color value of a property.
@@ -92,7 +125,10 @@ public:
* @param sat saturation
* @param light lightness
*/
- void hsl(uint8_t hue, uint8_t sat, uint8_t light) {}
+ void hsl(uint8_t hue, uint8_t sat, uint8_t light)
+ {
+ (void)hue; (void)sat; (void)light;
+ }
/**
* Called at each HSL color value of a property with alpha transparency
@@ -103,7 +139,10 @@ public:
* @param light lightness
* @param alpha alpha value
*/
- void hsla(uint8_t hue, uint8_t sat, uint8_t light, double alpha) {}
+ void hsla(uint8_t hue, uint8_t sat, uint8_t light, double alpha)
+ {
+ (void)hue; (void)sat; (void)light; (void)alpha;
+ }
/**
* Called at each URL value of a property.
@@ -111,7 +150,10 @@ public:
* @param p pointer to the char-array containing the URL value string.
* @param n length of the URL value string.
*/
- void url(const char* p, size_t n) {}
+ void url(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
/**
* Called when the parsing begins.
diff --git a/include/orcus/csv_parser.hpp b/include/orcus/csv_parser.hpp
index a873b0f2..27b4f924 100644
--- a/include/orcus/csv_parser.hpp
+++ b/include/orcus/csv_parser.hpp
@@ -47,7 +47,10 @@ public:
* the text content is guaranteed to be valid so long as
* the original CSV stream content is valid.
*/
- void cell(const char* p, size_t n, bool transient) {}
+ void cell(const char* p, size_t n, bool transient)
+ {
+ (void)p; (void)n; (void)transient;
+ }
};
template<typename _Handler>
diff --git a/include/orcus/json_parser.hpp b/include/orcus/json_parser.hpp
index 51a3d7cc..ef22b3a8 100644
--- a/include/orcus/json_parser.hpp
+++ b/include/orcus/json_parser.hpp
@@ -54,7 +54,10 @@ public:
* pointer points to somewhere in the JSON stream being
* parsed.
*/
- void object_key(const char* p, size_t len, bool transient) {}
+ void object_key(const char* p, size_t len, bool transient)
+ {
+ (void)p; (void)len; (void)transient;
+ }
/**
* Called when the closing curly brace of an object is encountered.
@@ -87,14 +90,20 @@ public:
* pointer points to somewhere in the JSON stream being
* parsed.
*/
- void string(const char* p, size_t len, bool transient) {}
+ void string(const char* p, size_t len, bool transient)
+ {
+ (void)p; (void)len; (void)transient;
+ }
/**
* Called when a numeric value is encountered.
*
* @param val numeric value.
*/
- void number(double val) {}
+ void number(double val)
+ {
+ (void)val;
+ }
};
/**
diff --git a/include/orcus/sax_parser.hpp b/include/orcus/sax_parser.hpp
index 73c17d06..3b21bfdf 100644
--- a/include/orcus/sax_parser.hpp
+++ b/include/orcus/sax_parser.hpp
@@ -30,7 +30,10 @@ public:
*
* @param param struct containing doctype declaration data.
*/
- void doctype(const orcus::sax::doctype_declaration& param) {}
+ void doctype(const orcus::sax::doctype_declaration& param)
+ {
+ (void)param;
+ }
/**
* Called when &lt;?... is encountered, where the '...' may be an
@@ -39,28 +42,40 @@ public:
*
* @param decl name of the identifier.
*/
- void start_declaration(const orcus::pstring& decl) {}
+ void start_declaration(const orcus::pstring& decl)
+ {
+ (void)decl;
+ }
/**
* Called when the closing tag (&gt;) of a &lt;?... ?&gt; is encountered.
*
* @param decl name of the identifier.
*/
- void end_declaration(const orcus::pstring& decl) {}
+ void end_declaration(const orcus::pstring& decl)
+ {
+ (void)decl;
+ }
/**
* Called at the start of each element.
*
* @param elem information of the element being parsed.
*/
- void start_element(const orcus::sax::parser_element& elem) {}
+ void start_element(const orcus::sax::parser_element& elem)
+ {
+ (void)elem;
+ }
/**
* Called at the end of each element.
*
* @param elem information of the element being parsed.
*/
- void end_element(const orcus::sax::parser_element& elem) {}
+ void end_element(const orcus::sax::parser_element& elem)
+ {
+ (void)elem;
+ }
/**
* Called when a segment of a text content is parsed. Each text content
@@ -76,7 +91,10 @@ public:
* a non-text value or be interned within the scope of
* the callback</em>.
*/
- void characters(const orcus::pstring& val, bool transient) {}
+ void characters(const orcus::pstring& val, bool transient)
+ {
+ (void)val; (void)transient;
+ }
/**
* Called upon parsing of an attribute of an element. Note that <em>when
@@ -86,7 +104,10 @@ public:
*
* @param attr struct containing attribute information.
*/
- void attribute(const orcus::sax::parser_attribute& attr) {}
+ void attribute(const orcus::sax::parser_attribute& attr)
+ {
+ (void)attr;
+ }
};
/**
diff --git a/include/orcus/sax_token_parser.hpp b/include/orcus/sax_token_parser.hpp
index 1452bc27..6b1b1de4 100644
--- a/include/orcus/sax_token_parser.hpp
+++ b/include/orcus/sax_token_parser.hpp
@@ -71,7 +71,10 @@ public:
*
* @param decl struct containing the attributes of the XML declaration.
*/
- void declaration(const orcus::xml_declaration_t& decl) {}
+ void declaration(const orcus::xml_declaration_t& decl)
+ {
+ (void)decl;
+ }
/**
* Called at the start of each element.
@@ -79,7 +82,10 @@ public:
* @param elem struct containing the element's information as well as all
* the attributes that belong to the element.
*/
- void start_element(const orcus::xml_token_element_t& elem) {}
+ void start_element(const orcus::xml_token_element_t& elem)
+ {
+ (void)elem;
+ }
/**
* Called at the end of each element.
@@ -87,7 +93,10 @@ public:
* @param elem struct containing the element's information as well as all
* the attributes that belong to the element.
*/
- void end_element(const orcus::xml_token_element_t& elem) {}
+ void end_element(const orcus::xml_token_element_t& elem)
+ {
+ (void)elem;
+ }
/**
* Called when a segment of a text content is parsed. Each text content
@@ -103,7 +112,10 @@ public:
* a non-text value or be interned within the scope of
* the callback</em>.
*/
- void characters(const orcus::pstring& val, bool transient) {}
+ void characters(const orcus::pstring& val, bool transient)
+ {
+ (void)val; (void)transient;
+ }
};
/**
diff --git a/include/orcus/yaml_parser.hpp b/include/orcus/yaml_parser.hpp
index 797ebbec..8d16fbc7 100644
--- a/include/orcus/yaml_parser.hpp
+++ b/include/orcus/yaml_parser.hpp
@@ -72,14 +72,20 @@ public:
* @param p pointer to the first character of the string value.
* @param len length of the string value.
*/
- void string(const char* p, size_t n) {}
+ void string(const char* p, size_t n)
+ {
+ (void)p; (void)n;
+ }
/**
* Called when a numeric value is encountered.
*
* @param val numeric value.
*/
- void number(double val) {}
+ void number(double val)
+ {
+ (void)val;
+ }
/**
* Called when a boolean 'true' keyword is encountered.
--
2.25.1
+4 -4
View File
@@ -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.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))
$(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))
else ifeq ($(DISABLE_DYNLOADING),)
$(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))
$(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))
endif
# vim: set noet sw=4 ts=4:
+2 -2
View File
@@ -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.15.0.dylib \
$(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.15.0.dylib \
$(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.16.0.dylib \
$(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.16.0.dylib \
) \
)
$(call gb_Trace_EndRange,liborcus,EXTERNAL)
+1
View File
@@ -63,6 +63,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/xml_writer \
UnpackedTarball/liborcus/src/parser/yaml_parser_base \
UnpackedTarball/liborcus/src/parser/zip_archive \
UnpackedTarball/liborcus/src/parser/zip_archive_stream \
+4
View File
@@ -85,6 +85,7 @@ $(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 \
@@ -103,6 +104,7 @@ $(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 \
@@ -134,7 +136,9 @@ $(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 \
))
+1
View File
@@ -20,6 +20,7 @@ $(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/0001-Mark-all-untentionally-unused-variables.patch \
))
ifeq ($(OS),WNT)
+5 -5
View File
@@ -1,11 +1,11 @@
--- 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 ()
--- 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 @@
-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=*)
+ -specs=*|-fsanitize=*|-fuse-ld=*|--ld-path=*)
- -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus)
+ -specs=*|-fsanitize=*|-fuse-ld=*|--ld-path=*|-static-*|-fcilkplus)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"
+1 -1
View File
@@ -8,7 +8,7 @@ index ae571f5..539ce18 100644
-#include "constants.inl"
+#define ORCUS_MAJOR_VERSION 0
+#define ORCUS_MINOR_VERSION 11
+#define ORCUS_MINOR_VERSION 16
+#define ORCUS_MICRO_VERSION 0
namespace orcus {
+17 -4
View File
@@ -62,6 +62,11 @@ public:
{
return mnTextEncoding;
}
ScDocumentImport& getDoc() const
{
return mrDoc;
}
};
class ScOrcusRefResolver : public orcus::spreadsheet::iface::import_reference_resolver
@@ -71,20 +76,28 @@ class ScOrcusRefResolver : public orcus::spreadsheet::iface::import_reference_re
public:
ScOrcusRefResolver( const ScOrcusGlobalSettings& rGS );
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;
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;
};
class ScOrcusNamedExpression : public orcus::spreadsheet::iface::import_named_expression
{
ScDocumentImport& mrDoc;
const ScOrcusGlobalSettings& mrGlobalSettings;
SCTAB mnTab; //< negative if global, else >= 0 for sheet-local named expressions.
ScAddress maBasePos;
OUString maName;
OUString maExpr;
const SCTAB mnTab; //< negative if global, else >= 0 for sheet-local named expressions.
public:
ScOrcusNamedExpression( ScDocumentImport& rDoc, const ScOrcusGlobalSettings& rGS, SCTAB nTab = -1 );
virtual void define_name(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp) override;
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;
};
class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_strings
+56 -26
View File
@@ -46,6 +46,7 @@
#include <sal/log.hxx>
#include <stylesbuffer.hxx>
#include <orcus/exception.hpp>
using namespace com::sun::star;
@@ -158,51 +159,54 @@ orcus::spreadsheet::formula_grammar_t ScOrcusGlobalSettings::get_default_formula
ScOrcusRefResolver::ScOrcusRefResolver( const ScOrcusGlobalSettings& rGS ) :
mrGlobalSettings(rGS) {}
os::address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n)
os::src_address_t ScOrcusRefResolver::resolve_address(const char* p, size_t n)
{
OUString aStr(p, n, mrGlobalSettings.getTextEncoding());
ScAddress aAddr;
aAddr.Parse(aStr, nullptr,
aAddr.Parse(aStr, &mrGlobalSettings.getDoc().getDoc(),
formula::FormulaGrammar::extractRefConvention(
mrGlobalSettings.getCalcGrammar()));
os::address_t ret;
ret.column = 0;
ret.row = 0;
if (aAddr.IsValid())
if (!aAddr.IsValid())
{
ret.column = aAddr.Col();
ret.row = aAddr.Row();
std::ostringstream os;
os << "'" << std::string(p, n) << "' is not a valid address expression.";
throw orcus::invalid_arg_error(os.str());
}
os::src_address_t ret;
ret.sheet = aAddr.Tab();
ret.column = aAddr.Col();
ret.row = aAddr.Row();
return ret;
}
os::range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n)
os::src_range_t ScOrcusRefResolver::resolve_range(const char* p, size_t n)
{
OUString aStr(p, n, mrGlobalSettings.getTextEncoding());
ScRange aRange;
aRange.Parse(aStr, nullptr,
aRange.Parse(aStr, &mrGlobalSettings.getDoc().getDoc(),
formula::FormulaGrammar::extractRefConvention(
mrGlobalSettings.getCalcGrammar()));
os::range_t ret;
ret.first.column = 0;
ret.first.row = 0;
ret.last.column = 0;
ret.last.row = 0;
if (aRange.IsValid())
if (!aRange.IsValid())
{
ret.first.column = aRange.aStart.Col();
ret.first.row = aRange.aStart.Row();
ret.last.column = aRange.aEnd.Col();
ret.last.row = aRange.aEnd.Row();
std::ostringstream os;
os << "'" << std::string(p, n) << "' is not a valid range expression.";
throw orcus::invalid_arg_error(os.str());
}
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;
}
@@ -210,20 +214,46 @@ ScOrcusNamedExpression::ScOrcusNamedExpression(
ScDocumentImport& rDoc, const ScOrcusGlobalSettings& rGS, SCTAB nTab ) :
mrDoc(rDoc), mrGlobalSettings(rGS), mnTab(nTab) {}
void ScOrcusNamedExpression::define_name(const char* p_name, size_t n_name, const char* p_exp, size_t n_exp)
void ScOrcusNamedExpression::reset()
{
OUString aName(p_name, n_name, mrGlobalSettings.getTextEncoding());
OUString aExpr(p_exp, n_exp, mrGlobalSettings.getTextEncoding());
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*/)
{
throw std::runtime_error("ScOrcusNamedExpression::set_named_range not implemented yet.");
}
void ScOrcusNamedExpression::commit()
{
ScRangeName* pNames = mnTab >= 0 ? mrDoc.getDoc().GetRangeName(mnTab) : mrDoc.getDoc().GetRangeName();
if (!pNames)
return;
ScRangeData* pRange = new ScRangeData(
&mrDoc.getDoc(), aName, aExpr, ScAddress(), ScRangeData::Type::Name,
&mrDoc.getDoc(), maName, maExpr, maBasePos, 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)
+3 -4
View File
@@ -89,10 +89,9 @@ void populateTree(
rTreeCtrl.set_image(*xEntry, rParam.maImgElementRepeat, -1);
}
orcus::xml_structure_tree::entity_names_type aNames;
orcus::xml_structure_tree::entity_names_type aNames = rWalker.get_attributes();
// Insert attributes.
rWalker.get_attributes(aNames);
for (const orcus::xml_structure_tree::entity_name& rAttrName : aNames)
{
OUString sAttr(toString(rAttrName, rWalker));
@@ -106,7 +105,7 @@ void populateTree(
rTreeCtrl.set_image(*xAttr, rParam.maImgAttribute, -1);
}
rWalker.get_children(aNames);
aNames = rWalker.get_children();
// Non-leaf if it has child elements, leaf otherwise.
rEntryData.mbLeafNode = aNames.empty();
@@ -266,7 +265,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());
filter.append_field_link(rFieldPath.getStr(), orcus::pstring());
}
);
+5 -1
View File
@@ -49,8 +49,12 @@ 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));
aBuf.insert(0, isAttribute(rTree, *xEntry) ? '@' : '/');
if (isAttribute(rTree, *xEntry))
aBuf.insert(0, "/@");
else
aBuf.insert(0, '/');
}
while (rTree.iter_parent(*xEntry));