[packages/libreoffice] - up to 4.1.0.4; builds but cleaning up install/files left

arekm arekm at pld-linux.org
Fri Jul 26 08:19:56 CEST 2013


commit f5126770768802569684589958992b7578baef24
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Fri Jul 26 08:19:23 2013 +0200

    - up to 4.1.0.4; builds but cleaning up install/files left

 liborcus-0.5.x.patch       | 540 ---------------------------------------------
 libreoffice-liborcus.patch |  12 -
 libreoffice-mdds.patch     |  91 ++------
 libreoffice.spec           |  48 ++--
 4 files changed, 36 insertions(+), 655 deletions(-)
---
diff --git a/libreoffice.spec b/libreoffice.spec
index 52d6b0c..3357c5c 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -41,13 +41,13 @@
 %undefine	with_system_hsqldb
 %endif
 
-%define		major_ver		4.0.4
+%define		major_ver		4.1.0
 
 Summary:	LibreOffice - powerful office suite
 Summary(pl.UTF-8):	LibreOffice - potężny pakiet biurowy
 Name:		libreoffice
-Version:	%{major_ver}.2
-Release:	1
+Version:	%{major_ver}.4
+Release:	0.1
 License:	GPL/LGPL
 Group:		X11/Applications
 # we use git because released tarballs are buggy too often
@@ -55,13 +55,13 @@ Group:		X11/Applications
 # cd build
 # git checkout -b libreoffice-3-3 origin/libreoffice-3-3
 Source0:	http://download.documentfoundation.org/libreoffice/src/%{major_ver}/%{name}-%{version}.tar.xz
-# Source0-md5:	19462798bbf6e1dc75a8b12bd1775ea2
+# Source0-md5:	5311656e1b54eadd4b93f948dfd5e68e
 Source1:	http://download.documentfoundation.org/libreoffice/src/%{major_ver}/%{name}-dictionaries-%{version}.tar.xz
-# Source1-md5:	12609fdd74047287c7853fa97c14f089
+# Source1-md5:	2bbe7adab2b9bc0042c72ba60c30acc4
 Source2:	http://download.documentfoundation.org/libreoffice/src/%{major_ver}/%{name}-help-%{version}.tar.xz
-# Source2-md5:	a4d5e6504a3251b7a7fbe17216f8d6e7
+# Source2-md5:	e2cd3b63e3050771a1330fc98e41a701
 Source3:	http://download.documentfoundation.org/libreoffice/src/%{major_ver}/%{name}-translations-%{version}.tar.xz
-# Source3-md5:	0ba553eea7284abe1370157bb35bd355
+# Source3-md5:	1f4438828cbcf83c257742482dade3ef
 
 Source20:       http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
 # Source20-md5:	0168229624cfac409e766913506961a8
@@ -77,9 +77,7 @@ Source25:	http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xs
 # Source25-md5:	a7983f859eafb2677d7ff386a023bc40
 
 Patch0:		%{name}-hamcrest.patch
-Patch1:		%{name}-liborcus.patch
-Patch2:		%{name}-mdds.patch
-Patch3:		liborcus-0.5.x.patch
+Patch1:		%{name}-mdds.patch
 URL:		http://www.documentfoundation.org/
 BuildRequires:	/usr/bin/getopt
 BuildRequires:	GConf2-devel
@@ -112,6 +110,7 @@ BuildRequires:	graphite2-devel
 BuildRequires:	gstreamer0.10-devel >= 0.10.0
 BuildRequires:	gstreamer0.10-plugins-base-devel >= 0.10.0
 BuildRequires:	gtk+2-devel >= 2:2.10
+BuildRequires:	harfbuzz-icu-devel
 %{?with_system_hunspell:BuildRequires:	hunspell-devel >=1.2.2}
 BuildRequires:	hyphen-devel
 %{?with_icecream:BuildRequires:	icecream}
@@ -131,6 +130,8 @@ BuildRequires:	java-servletapi
 BuildRequires:	libcmis-devel >= 0.3
 BuildRequires:	liblangtag-devel
 BuildRequires:	libmspub-devel
+BuildRequires:	libmwaw-devel
+BuildRequires:	libodfgen-devel
 BuildRequires:	liborcus-devel >= 0.4
 BuildRequires:	libvisio-devel
 BuildRequires:	libwpd-devel >= 0.9.0
@@ -162,7 +163,7 @@ BuildRequires:	libxml2-devel >= 2.0
 BuildRequires:	libxslt-devel
 BuildRequires:	libxslt-progs
 %{?with_access:%{?with_system_mdbtools:BuildRequires:	mdbtools-devel >= 0.6}}
-BuildRequires:	mdds-devel >= 0.8.0
+BuildRequires:	mdds-devel >= 0.9.0
 %{?with_mono:BuildRequires:	mono-csharp >= 1.2.3}
 %{?with_mono:BuildRequires:	mono-static >= 1.2.3}
 %{?with_system_myspell:BuildRequires:	myspell-devel}
@@ -185,7 +186,7 @@ BuildRequires:	portaudio-devel
 BuildRequires:	python3 >= 3.3
 BuildRequires:	python3-devel >= 3.3
 BuildRequires:	python3-modules >= 3.3
-BuildRequires:	redland-devel
+BuildRequires:	redland-devel >= 1.0.16
 BuildRequires:	rpm-pythonprov
 BuildRequires:	rpmbuild(macros) >= 1.660
 BuildRequires:	sablotron-devel
@@ -2531,8 +2532,6 @@ bashowe uzupełnianie nazw dla LibreOffice.
 
 %patch0 -p0
 %patch1 -p1
-%patch2 -p1
-%patch3 -p0
 
 for dir in *-%{version}; do
 	[ -f $dir/ChangeLog ] && mv $dir/ChangeLog ChangeLog-$dir
@@ -2736,27 +2735,6 @@ if [ ! -f makeinstall.stamp -o ! -d $RPM_BUILD_ROOT ]; then
 	%{__make} distro-pack-install \
 		DESTDIR=$RPM_BUILD_ROOT
 
-	# unpack report-builder extension
-	install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/report-builder
-	unzip -o solver/unxlng*/bin/report-builder.oxt -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/report-builder
-
-	# unpack wiki-publisher extension
-	install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/wiki-publisher
-	unzip -o solver/unxlng*/bin/wiki-publisher.oxt -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/wiki-publisher
-
-	# unpack presentation-minimizer extension
-	install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/presentation-minimizer
-	unzip -o solver/unxlng*/bin/presentation-minimizer.oxt -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/presentation-minimizer
-
-	# unpack wiki-publisher extension
-	install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/wiki-publisher
-	unzip -o solver/unxlng*/bin/wiki-publisher.oxt -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/wiki-publisher
-
-	# XXX
-	# unpack script-provider-for-python extension
-	#install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/script-provider-for-python
-	#unzip -o solver/unxlng*/bin/script-provider-for-python.oxt -d $RPM_BUILD_ROOT%{_libdir}/%{name}/share/extensions/script-provider-for-python
-
 	# save orignal install layout
 	find $RPM_BUILD_ROOT -ls > ls.txt
 	touch makeinstall.stamp
diff --git a/liborcus-0.5.x.patch b/liborcus-0.5.x.patch
deleted file mode 100644
index 79ad36e..0000000
--- a/liborcus-0.5.x.patch
+++ /dev/null
@@ -1,540 +0,0 @@
---- sc/inc/document.hxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/inc/document.hxx	2013-06-24 19:08:23.000000000 -0400
-@@ -750,6 +750,7 @@
-     SC_DLLPUBLIC bool           SetString(
-         SCCOL nCol, SCROW nRow, SCTAB nTab, const rtl::OUString& rString,
-         ScSetStringParam* pParam = NULL );
-+    SC_DLLPUBLIC bool SetString( const ScAddress& rPos, const OUString& rString, ScSetStringParam* pParam = NULL );
-     SC_DLLPUBLIC void           SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
-     void            SetError( SCCOL nCol, SCROW nRow, SCTAB nTab, const sal_uInt16 nError);
- 
---- sc/inc/orcusfilters.hxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/inc/orcusfilters.hxx	2013-06-24 19:08:23.000000000 -0400
-@@ -30,6 +30,10 @@
- 
-     virtual bool importGnumeric(ScDocument& rDoc, const rtl::OUString& rPath) const = 0;
- 
-+    virtual bool importXLSX(ScDocument& rDoc, const rtl::OUString& rPath) const = 0;
-+
-+    virtual bool importODS(ScDocument& rDoc, const rtl::OUString& rPath) const = 0;
-+
-     /**
-      * Create a context for XML file.  The context object stores session
-      * information for each unique XML file.  You must create a new context
---- sc/inc/stringutil.hxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/inc/stringutil.hxx	2013-06-24 19:08:23.000000000 -0400
-@@ -72,16 +72,26 @@
-     TextFormatPolicy meSetTextNumFormat;
- 
-     /**
--     * When true, treat input with a leading apostrophe / single quote special
--     * in that it escapes numeric or date/time input such that it is not
--     * interpreted and the input string is taken instead. This can be used
--     * during text file import so the leading apostrophe is not lost if it
--     * precedes a numeric value.
--     * Usually set mbHandleApostrophe = !mbSetTextCellFormat
-+     * When true, treat input with a leading apostrophe as an escape character
-+     * for a numeric value content, to treat the numeric value as a text. When
-+     * false, the whole string input including the leading apostrophe will be
-+     * entered literally as string.
-      */
-     bool mbHandleApostrophe;
- 
-     ScSetStringParam();
-+
-+    /**
-+     * Call this whenever you need to unconditionally set input as text, no
-+     * matter what the input is.
-+     */
-+    void setTextInput();
-+
-+    /**
-+     * Call this whenever you need to maximize the chance of input being
-+     * detected as a numeric value (numbers, dates, times etc).
-+     */
-+    void setNumericInput();
- };
- 
- // ============================================================================
---- sc/source/core/data/document.cxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/source/core/data/document.cxx	2013-06-24 19:08:23.000000000 -0400
-@@ -2940,6 +2940,12 @@
-         return false;
- }
- 
-+bool ScDocument::SetString(
-+    const ScAddress& rPos, const OUString& rString, ScSetStringParam* pParam )
-+{
-+    return SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rString, pParam);
-+}
-+
- 
- void ScDocument::SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal )
- {
---- sc/source/core/tool/stringutil.cxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/source/core/tool/stringutil.cxx	2013-06-24 19:08:23.000000000 -0400
-@@ -32,6 +32,20 @@
- {
- }
- 
-+void ScSetStringParam::setTextInput()
-+{
-+    mbDetectNumberFormat = false;
-+    mbHandleApostrophe = false;
-+    meSetTextNumFormat = Always;
-+}
-+
-+void ScSetStringParam::setNumericInput()
-+{
-+    mbDetectNumberFormat = true;
-+    mbHandleApostrophe = true;
-+    meSetTextNumFormat = Never;
-+}
-+
- // ============================================================================-
- 
- bool ScStringUtil::parseSimpleNumber(
---- sc/source/filter/inc/orcusfiltersimpl.hxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/source/filter/inc/orcusfiltersimpl.hxx	2013-06-24 19:08:23.000000000 -0400
-@@ -22,6 +22,8 @@
- 
-     virtual bool importCSV(ScDocument& rDoc, const rtl::OUString& rPath) const;
-     virtual bool importGnumeric(ScDocument& rDoc, const rtl::OUString& rPath) const;
-+    virtual bool importXLSX(ScDocument& rDoc, const rtl::OUString& rPath) const;
-+    virtual bool importODS(ScDocument& rDoc, const rtl::OUString& rPath) const;
- 
-     virtual ScOrcusXMLContext* createXMLContext(ScDocument& rDoc, const rtl::OUString& rPath) const;
- };
---- sc/source/filter/inc/orcusinterface.hxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/source/filter/inc/orcusinterface.hxx	2013-06-24 19:08:23.000000000 -0400
-@@ -21,13 +21,26 @@
- 
- class ScDocument;
- class ScOrcusSheet;
-+class ScOrcusFactory;
- class ScRangeData;
- 
-+class ScOrcusGlobalSettings : public orcus::spreadsheet::iface::import_global_settings
-+{
-+    ScDocument& mrDoc;
-+
-+public:
-+    ScOrcusGlobalSettings(ScDocument& rDoc);
-+
-+    virtual void set_origin_date(int year, int month, int day);
-+};
-+
- class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_strings
- {
--    std::vector<OUString> maSharedStrings;
-+    std::vector<OUString>& mrStrings;
- 
- public:
-+    ScOrcusSharedStrings(std::vector<OUString>& rStrings);
-+
-     virtual size_t append(const char* s, size_t n);
-     virtual size_t add(const char* s, size_t n);
- 
-@@ -38,50 +51,49 @@
-     virtual void append_segment(const char* s, size_t n);
- 
-     virtual size_t commit_segments();
--
--    const OUString& getByIndex(size_t index) const;
--};
--
--class ScOrcusFactory : public orcus::spreadsheet::iface::import_factory
--{
--    ScDocument& mrDoc;
--    boost::ptr_vector<ScOrcusSheet> maSheets;
--    ScOrcusSharedStrings maSharedStrings;
--
--public:
--    ScOrcusFactory(ScDocument& rDoc);
--
--    virtual orcus::spreadsheet::iface::import_sheet* append_sheet(const char *sheet_name, size_t sheet_name_length);
--    virtual orcus::spreadsheet::iface::import_sheet* get_sheet(const char *sheet_name, size_t sheet_name_length);
--    virtual orcus::spreadsheet::iface::import_shared_strings* get_shared_strings();
--    virtual orcus::spreadsheet::iface::import_styles* get_styles();
- };
- 
- class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
- {
-     ScDocument& mrDoc;
-     SCTAB mnTab;
--    ScOrcusSharedStrings& mrSharedStrings;
-+    ScOrcusFactory& mrFactory;
- 
-     typedef std::map<size_t, ScRangeData*> SharedFormulaContainer;
-     SharedFormulaContainer maSharedFormulas;
- public:
--    ScOrcusSheet(ScDocument& rDoc, SCTAB nTab, ScOrcusSharedStrings& rSharedStrings);
-+    ScOrcusSheet(ScDocument& rDoc, SCTAB nTab, ScOrcusFactory& rFactory);
- 
-     // Orcus import interface
-     virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n);
-+    virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex);
-+    virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value);
-+    virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value);
-+    virtual void set_date_time(
-+        orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, int year, int month, int day, int hour, int minute, double second);
-+
-     virtual void set_format(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t xf_index);
-+
-     virtual void set_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n);
-     virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n);
-+
-     virtual void set_shared_formula(
-         orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex,
-         const char* p_formula, size_t n_formula);
-+
-     virtual void set_shared_formula(
-         orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex,
-         const char* p_formula, size_t n_formula, const char* p_range, size_t n_range);
-+
-     virtual void set_shared_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex);
--    virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex);
--    virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value);
-+
-+    virtual void set_array_formula(
-+        orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
-+        const char* p, size_t n, orcus::spreadsheet::row_t array_rows, orcus::spreadsheet::col_t array_cols);
-+
-+    virtual void set_array_formula(
-+        orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
-+        const char* p, size_t n, const char* p_range, size_t n_range);
- 
-     SCTAB getIndex() const { return mnTab; }
- };
-@@ -119,6 +131,10 @@
-     virtual void set_cell_locked(bool b);
-     virtual size_t commit_cell_protection();
- 
-+    // number format
-+    virtual void set_number_format(const char* s, size_t n);
-+    virtual size_t commit_number_format();
-+
-     // cell style xf
- 
-     virtual void set_cell_style_xf_count(size_t n);
-@@ -147,5 +163,38 @@
-     virtual size_t commit_cell_style();
- };
- 
-+class ScOrcusFactory : public orcus::spreadsheet::iface::import_factory
-+{
-+    struct StringCellCache
-+    {
-+        ScAddress maPos;
-+        size_t mnIndex;
-+
-+        StringCellCache(const ScAddress& rPos, size_t nIndex);
-+    };
-+
-+    typedef std::vector<StringCellCache> StringCellCaches;
-+
-+    ScDocument& mrDoc;
-+    std::vector<OUString> maStrings;
-+    StringCellCaches maStringCells;
-+    ScOrcusGlobalSettings maGlobalSettings;
-+    ScOrcusSharedStrings maSharedStrings;
-+    boost::ptr_vector<ScOrcusSheet> maSheets;
-+    ScOrcusStyles maStyles;
-+
-+public:
-+    ScOrcusFactory(ScDocument& rDoc);
-+
-+    virtual orcus::spreadsheet::iface::import_sheet* append_sheet(const char *sheet_name, size_t sheet_name_length);
-+    virtual orcus::spreadsheet::iface::import_sheet* get_sheet(const char *sheet_name, size_t sheet_name_length);
-+    virtual orcus::spreadsheet::iface::import_global_settings* get_global_settings();
-+    virtual orcus::spreadsheet::iface::import_shared_strings* get_shared_strings();
-+    virtual orcus::spreadsheet::iface::import_styles* get_styles();
-+    virtual void finalize();
-+
-+    void pushStringCell(const ScAddress& rPos, size_t nStrIndex);
-+};
-+
- #endif
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
---- sc/source/filter/orcus/interface.cxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/source/filter/orcus/interface.cxx	2013-06-24 19:08:23.000000000 -0400
-@@ -13,14 +13,34 @@
- #include "cell.hxx"
- #include "rangenam.hxx"
- #include "tokenarray.hxx"
--#include <formula/token.hxx>
-+#include "stringutil.hxx"
-+#include "docoptio.hxx"
- 
-+#include "formula/token.hxx"
-+#include "tools/datetime.hxx"
-+
-+#define D_TIMEFACTOR              86400.0
- 
- using orcus::spreadsheet::row_t;
- using orcus::spreadsheet::col_t;
- using orcus::spreadsheet::formula_grammar_t;
- 
--ScOrcusFactory::ScOrcusFactory(ScDocument& rDoc) : mrDoc(rDoc) {}
-+ScOrcusGlobalSettings::ScOrcusGlobalSettings(ScDocument& rDoc) : mrDoc(rDoc) {}
-+
-+void ScOrcusGlobalSettings::set_origin_date(int year, int month, int day)
-+{
-+    ScDocOptions aOpt = mrDoc.GetDocOptions();
-+    aOpt.SetDate(year, month, day);
-+    mrDoc.SetDocOptions(aOpt);
-+}
-+
-+ScOrcusFactory::StringCellCache::StringCellCache(const ScAddress& rPos, size_t nIndex) :
-+    maPos(rPos), mnIndex(nIndex) {}
-+
-+ScOrcusFactory::ScOrcusFactory(ScDocument& rDoc) :
-+    mrDoc(rDoc),
-+    maGlobalSettings(mrDoc),
-+    maSharedStrings(maStrings) {}
- 
- orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::append_sheet(const char* sheet_name, size_t sheet_name_length)
- {
-@@ -29,7 +49,7 @@
-         return NULL;
- 
-     SCTAB nTab = mrDoc.GetTableCount() - 1;
--    maSheets.push_back(new ScOrcusSheet(mrDoc, nTab, maSharedStrings));
-+    maSheets.push_back(new ScOrcusSheet(mrDoc, nTab, *this));
-     return &maSheets.back();
- }
- 
-@@ -61,10 +81,15 @@
-         return &(*it);
- 
-     // Create a new orcus sheet instance for this.
--    maSheets.push_back(new ScOrcusSheet(mrDoc, nTab, maSharedStrings));
-+    maSheets.push_back(new ScOrcusSheet(mrDoc, nTab, *this));
-     return &maSheets.back();
- }
- 
-+orcus::spreadsheet::iface::import_global_settings* ScOrcusFactory::get_global_settings()
-+{
-+    return &maGlobalSettings;
-+}
-+
- orcus::spreadsheet::iface::import_shared_strings* ScOrcusFactory::get_shared_strings()
- {
-     return &maSharedStrings;
-@@ -73,11 +98,31 @@
- orcus::spreadsheet::iface::import_styles* ScOrcusFactory::get_styles()
- {
-     // We don't support it yet.
--    return new ScOrcusStyles;
-+    return &maStyles;
- }
- 
--ScOrcusSheet::ScOrcusSheet(ScDocument& rDoc, SCTAB nTab, ScOrcusSharedStrings& rSharedStrings) :
--    mrDoc(rDoc), mnTab(nTab), mrSharedStrings(rSharedStrings) {}
-+void ScOrcusFactory::finalize()
-+{
-+    ScSetStringParam aParam;
-+    aParam.setTextInput();
-+    StringCellCaches::const_iterator it = maStringCells.begin(), itEnd = maStringCells.end();
-+    for (; it != itEnd; ++it)
-+    {
-+        if (it->mnIndex >= maStrings.size())
-+            // String index out-of-bound!  Something is up.
-+            continue;
-+
-+        mrDoc.SetString(it->maPos, maStrings[it->mnIndex], &aParam);
-+    }
-+}
-+
-+void ScOrcusFactory::pushStringCell(const ScAddress& rPos, size_t nStrIndex)
-+{
-+    maStringCells.push_back(StringCellCache(rPos, nStrIndex));
-+}
-+
-+ScOrcusSheet::ScOrcusSheet(ScDocument& rDoc, SCTAB nTab, ScOrcusFactory& rFactory) :
-+    mrDoc(rDoc), mnTab(nTab), mrFactory(rFactory) {}
- 
- void ScOrcusSheet::set_auto(row_t row, col_t col, const char* p, size_t n)
- {
-@@ -85,6 +130,49 @@
-     mrDoc.SetString(col, row, mnTab, aVal);
- }
- 
-+void ScOrcusSheet::set_string(row_t row, col_t col, size_t sindex)
-+{
-+    // We need to defer string cells since the shared string pool is not yet
-+    // populated at the time this method is called.  Orcus imports string
-+    // table after the cells get imported.  We won't need to do this once we
-+    // implement true shared strings in Calc core.
-+
-+    mrFactory.pushStringCell(ScAddress(col, row, mnTab), sindex);
-+}
-+
-+void ScOrcusSheet::set_value(row_t row, col_t col, double value)
-+{
-+    mrDoc.SetValue( col, row, mnTab, value );
-+}
-+
-+void ScOrcusSheet::set_bool(row_t row, col_t col, bool value)
-+{
-+    mrDoc.SetValue(col, row, mnTab, value ? 1.0 : 0.0);
-+}
-+
-+void ScOrcusSheet::set_date_time(
-+    row_t row, col_t col, int year, int month, int day, int hour, int minute, double second)
-+{
-+    SvNumberFormatter* pFormatter = mrDoc.GetFormatTable();
-+
-+    Date aDate(day, month, year);
-+    sal_uIntPtr nSec = floor(second);
-+    sal_uIntPtr nSec100 = (second - nSec) * 100;
-+    Time aTime(hour, minute, nSec, nSec100);
-+    Date aNullDate(*pFormatter->GetNullDate());
-+    long nDateDiff = aDate - aNullDate;
-+
-+    double fTime =
-+        static_cast<double>(aTime.Get100Sec()) / 100.0 +
-+        aTime.GetSec() +
-+        aTime.GetMin() * 60.0 +
-+        aTime.GetHour() * 3600.0;
-+
-+    fTime /= D_TIMEFACTOR;
-+
-+    mrDoc.SetValue(col, row, mnTab, nDateDiff + fTime);
-+}
-+
- void ScOrcusSheet::set_format(row_t /*row*/, col_t /*col*/, size_t /*xf_index*/)
- {
- }
-@@ -191,45 +279,35 @@
-     mrDoc.PutCell( col, row, mnTab, pCell );
- }
- 
--void ScOrcusSheet::set_string(row_t row, col_t col, size_t sindex)
-+void ScOrcusSheet::set_array_formula(
-+    row_t /*row*/, col_t /*col*/, formula_grammar_t /*grammar*/,
-+    const char* /*p*/, size_t /*n*/, row_t /*array_rows*/, col_t /*array_cols*/)
- {
--    // Calc does not yet support shared strings so we have to
--    // workaround by importing shared strings into a temporary
--    // shared string container and writing into calc model as
--    // normal string
--
--    const OUString& rSharedString = mrSharedStrings.getByIndex(sindex);
--    ScBaseCell* pCell = ScBaseCell::CreateTextCell( rSharedString, &mrDoc );
--    mrDoc.PutCell(col, row, mnTab, pCell);
- }
- 
--void ScOrcusSheet::set_value(row_t row, col_t col, double value)
-+void ScOrcusSheet::set_array_formula(
-+    row_t /*row*/, col_t /*col*/, formula_grammar_t /*grammar*/,
-+    const char* /*p*/, size_t /*n*/, const char* /*p_range*/, size_t /*n_range*/)
- {
--    mrDoc.SetValue( col, row, mnTab, value );
- }
- 
-+ScOrcusSharedStrings::ScOrcusSharedStrings(std::vector<OUString>& rStrings) :
-+    mrStrings(rStrings) {}
-+
- size_t ScOrcusSharedStrings::append(const char* s, size_t n)
- {
-     OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
--    maSharedStrings.push_back(aNewString);
-+    mrStrings.push_back(aNewString);
- 
--    return maSharedStrings.size() - 1;
-+    return mrStrings.size() - 1;
- }
- 
- size_t ScOrcusSharedStrings::add(const char* s, size_t n)
- {
-     OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
--    maSharedStrings.push_back(aNewString);
--
--    return maSharedStrings.size() - 1;
--}
--
--const OUString& ScOrcusSharedStrings::getByIndex(size_t nIndex) const
--{
--    if(nIndex < maSharedStrings.size())
--        return maSharedStrings[nIndex];
-+    mrStrings.push_back(aNewString);
- 
--    throw std::exception();
-+    return mrStrings.size() - 1;
- }
- 
- void ScOrcusSharedStrings::set_segment_bold(bool /*b*/)
-@@ -341,6 +419,14 @@
-     return 0;
- }
- 
-+void ScOrcusStyles::set_number_format(const char* /*s*/, size_t /*n*/)
-+{
-+}
-+
-+size_t ScOrcusStyles::commit_number_format()
-+{
-+    return 0;
-+}
- 
- // cell style xf
- 
---- sc/source/filter/orcus/orcusfiltersimpl.cxx	2013-06-11 05:33:38.000000000 -0400
-+++ sc/source/filter/orcus/orcusfiltersimpl.cxx	2013-06-24 19:08:23.000000000 -0400
-@@ -17,6 +17,8 @@
- #include <orcus/spreadsheet/import_interface.hpp>
- #include <orcus/orcus_csv.hpp>
- #include <orcus/orcus_gnumeric.hpp>
-+#include <orcus/orcus_xlsx.hpp>
-+#include <orcus/orcus_ods.hpp>
- #include <orcus/global.hpp>
- 
- #ifdef WNT
-@@ -71,6 +73,46 @@
-     return true;
- }
- 
-+bool ScOrcusFiltersImpl::importXLSX(ScDocument& rDoc, const rtl::OUString& rPath) const
-+{
-+    ScOrcusFactory aFactory(rDoc);
-+    OString aSysPath = toSystemPath(rPath);
-+    const char* path = aSysPath.getStr();
-+
-+    try
-+    {
-+        orcus::orcus_xlsx filter(&aFactory);
-+        filter.read_file(path);
-+    }
-+    catch (const std::exception& e)
-+    {
-+        SAL_WARN("sc", "Unable to load xlsx file! " << e.what());
-+        return false;
-+    }
-+
-+    return true;
-+}
-+
-+bool ScOrcusFiltersImpl::importODS(ScDocument& rDoc, const rtl::OUString& rPath) const
-+{
-+    ScOrcusFactory aFactory(rDoc);
-+    OString aSysPath = toSystemPath(rPath);
-+    const char* path = aSysPath.getStr();
-+
-+    try
-+    {
-+        orcus::orcus_ods filter(&aFactory);
-+        filter.read_file(path);
-+    }
-+    catch (const std::exception& e)
-+    {
-+        SAL_WARN("sc", "Unable to load ods file! " << e.what());
-+        return false;
-+    }
-+
-+    return true;
-+}
-+
- ScOrcusXMLContext* ScOrcusFiltersImpl::createXMLContext(ScDocument& rDoc, const rtl::OUString& rPath) const
- {
-     return new ScOrcusXMLContextImpl(rDoc, rPath);
diff --git a/libreoffice-liborcus.patch b/libreoffice-liborcus.patch
deleted file mode 100644
index 6685b86..0000000
--- a/libreoffice-liborcus.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- libreoffice-4.0.3.3/configure.ac~	2013-05-13 08:15:42.000000000 +0200
-+++ libreoffice-4.0.3.3/configure.ac	2013-05-13 08:26:51.147726419 +0200
-@@ -8583,7 +8583,7 @@
- if test "$with_system_orcus" = "yes"; then
-     AC_MSG_RESULT([external])
-     SYSTEM_LIBORCUS=YES
--    PKG_CHECK_MODULES(ORCUS, liborcus-0.4 >= 0.3.0)
-+    PKG_CHECK_MODULES(ORCUS, liborcus-0.6 >= 0.5.0)
- else
-     AC_MSG_RESULT([internal])
-     BUILD_TYPE="$BUILD_TYPE ORCUS"
-
diff --git a/libreoffice-mdds.patch b/libreoffice-mdds.patch
index 54c6cf0..562a038 100644
--- a/libreoffice-mdds.patch
+++ b/libreoffice-mdds.patch
@@ -1,72 +1,27 @@
-From 6cbca6fc0ceee4370a962d67db362f3e22270e18 Mon Sep 17 00:00:00 2001
-From: Kohei Yoshida <kohei.yoshida at gmail.com>
-Date: Mon, 06 May 2013 14:27:55 +0000
-Subject: Adjust for API change in mdds 0.8.0.
-
-The return value of search_tree() in flat_segment_tree has changed.
-
-Change-Id: I51d8676bd0621bd43b3f8a8f6be4bf4056d45904
----
-diff --git a/sc/source/core/data/dpfilteredcache.cxx b/sc/source/core/data/dpfilteredcache.cxx
-index 47adbbe..51bf571 100644
---- a/sc/source/core/data/dpfilteredcache.cxx
-+++ b/sc/source/core/data/dpfilteredcache.cxx
-@@ -172,7 +172,7 @@ void ScDPFilteredCache::fillTable(
-         {
-             if (nRow > nEndSegment)
-             {
--                if (!maShowByFilter.search_tree(nRow, bShow, NULL, &nEndSegment))
-+                if (!maShowByFilter.search_tree(nRow, bShow, NULL, &nEndSegment).second)
-                 {
-                     OSL_FAIL("Tree search failed!");
-                     continue;
-diff --git a/sc/source/core/data/segmenttree.cxx b/sc/source/core/data/segmenttree.cxx
-index e74b0fd..b02f164 100644
---- a/sc/source/core/data/segmenttree.cxx
-+++ b/sc/source/core/data/segmenttree.cxx
-@@ -159,7 +159,7 @@ bool ScFlatSegmentsImpl<_ValueType, _ExtValueType>::getRangeData(SCCOLROW nPos,
-     if (!maSegments.is_tree_valid())
-         maSegments.build_tree();
+--- libreoffice-4.1.0.4/sc/inc/mtvelements.hxx.org	2013-07-25 21:25:20.837766596 +0200
++++ libreoffice-4.1.0.4/sc/inc/mtvelements.hxx	2013-07-25 21:26:32.853493134 +0200
+@@ -63,11 +63,11 @@
+ namespace sc {
  
--    if (!maSegments.search_tree(nPos, nValue, &nPos1, &nPos2))
-+    if (!maSegments.search_tree(nPos, nValue, &nPos1, &nPos2).second)
-         return false;
+ // Broadcaster storage container
+-typedef mdds::mtv::custom_block_func1<sc::element_type_broadcaster, sc::custom_broadcaster_block> BCBlkFunc;
++typedef mdds::mtv::custom_block_func1<sc::custom_broadcaster_block> BCBlkFunc;
+ typedef mdds::multi_type_vector<BCBlkFunc> BroadcasterStoreType;
  
-     rData.mnPos1 = nPos1;
-diff --git a/sc/source/filter/excel/colrowst.cxx b/sc/source/filter/excel/colrowst.cxx
-index 53aa04b..bc43a1e 100644
---- a/sc/source/filter/excel/colrowst.cxx
-+++ b/sc/source/filter/excel/colrowst.cxx
-@@ -208,7 +208,7 @@ void XclImpColRowSettings::Convert( SCTAB nScTab )
-         if (GetColFlag(nCol, EXC_COLROW_USED))
-         {
-             sal_uInt16 nTmp;
--            if (maColWidths.search_tree(nCol, nTmp))
-+            if (maColWidths.search_tree(nCol, nTmp).second)
-                 nWidth = nTmp;
+ // Cell text attribute container.
+-typedef mdds::mtv::custom_block_func1<sc::element_type_celltextattr, sc::custom_celltextattr_block> CTAttrFunc;
++typedef mdds::mtv::custom_block_func1<sc::custom_celltextattr_block> CTAttrFunc;
+ typedef mdds::multi_type_vector<CTAttrFunc> CellTextAttrStoreType;
+ 
+ /**
+--- libreoffice-4.1.0.4/sc/source/core/tool/scmatrix.cxx.org	2013-07-25 21:26:36.733621612 +0200
++++ libreoffice-4.1.0.4/sc/source/core/tool/scmatrix.cxx	2013-07-25 21:27:08.784683394 +0200
+@@ -89,7 +89,7 @@
+             }
          }
  
-@@ -258,7 +258,7 @@ void XclImpColRowSettings::Convert( SCTAB nScTab )
-                     for (SCROW i = nPrevRow; i <= nRow - 1; ++i)
-                     {
-                         SCROW nLast;
--                        if (!maRowHeights.search_tree(i, nHeight, NULL, &nLast))
-+                        if (!maRowHeights.search_tree(i, nHeight, NULL, &nLast).second)
-                         {
-                             // search failed for some reason
-                             return;
-diff --git a/sc/source/filter/xml/XMLStylesExportHelper.cxx b/sc/source/filter/xml/XMLStylesExportHelper.cxx
-index b791e81..9020d38 100644
---- a/sc/source/filter/xml/XMLStylesExportHelper.cxx
-+++ b/sc/source/filter/xml/XMLStylesExportHelper.cxx
-@@ -1280,7 +1280,7 @@ sal_Int32 ScRowStyles::GetStyleNameIndex(const sal_Int32 nTable, const sal_Int32
-         r.build_tree();
-     sal_Int32 nStyle;
-     sal_Int32 nStart, nEnd;
--    if (r.search_tree(nField, nStyle, &nStart, &nEnd))
-+    if (r.search_tree(nField, nStyle, &nStart, &nEnd).second)
-     {
-         // Cache this value for better performance.
-         maCache.mnTable = nTable;
---
-cgit v0.9.0.2-2-gbebe
+-        static void delete_block(mdds::mtv::base_element_block* p)
++        static void delete_block(const mdds::mtv::base_element_block* p)
+         {
+             if (!p)
+                 return;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libreoffice.git/commitdiff/f5126770768802569684589958992b7578baef24



More information about the pld-cvs-commit mailing list