latest version

f41
Caolán McNamara 6 years ago
parent aec7c74062
commit e5de4613e8

12
.gitignore vendored

@ -4,9 +4,9 @@
/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip /17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
/185d60944ea767075d27247c3162b3bc-unowinreg.dll /185d60944ea767075d27247c3162b3bc-unowinreg.dll
/libreoffice-multiliblauncher.sh /libreoffice-multiliblauncher.sh
/libreoffice-6.1.4.2.tar.xz /libreoffice-6.2.0.3.tar.xz
/libreoffice-6.1.4.2.tar.xz.asc /libreoffice-6.2.0.3.tar.xz.asc
/libreoffice-help-6.1.4.2.tar.xz /libreoffice-help-6.2.0.3.tar.xz
/libreoffice-help-6.1.4.2.tar.xz.asc /libreoffice-help-6.2.0.3.tar.xz.asc
/libreoffice-translations-6.1.4.2.tar.xz /libreoffice-translations-6.2.0.3.tar.xz
/libreoffice-translations-6.1.4.2.tar.xz.asc /libreoffice-translations-6.2.0.3.tar.xz.asc

@ -1,360 +0,0 @@
From 81ef46fd80c5b5f0bd0278378a0c110198c9f623 Mon Sep 17 00:00:00 2001
From: Aleksei Nikiforov <darktemplar@basealt.ru>
Date: Thu, 22 Nov 2018 17:54:00 +0300
Subject: [PATCH] Fix build with poppler 0.71
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I470ece9dc4766e10e1ccb5e99b25a8d8cc4cbf38
Reviewed-on: https://gerrit.libreoffice.org/63860
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(cherry picked from commit 8ff41a26caf51544699863c89598d37d93dc1b21)
Reviewed-on: https://gerrit.libreoffice.org/66375
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Fix build with poppler-0.72
Change-Id: I0664d1b39e97b7555c0a3cba442db52b84f37134
Reviewed-on: https://gerrit.libreoffice.org/65960
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
(cherry picked from commit 65a6c9ae4791188ffcecf489073cf38873ce5e17)
Reviewed-on: https://gerrit.libreoffice.org/66376
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
poppler dropped GBool since 0.71
See https://lists.freedesktop.org/archives/libreoffice/2018-November/081410.html
Change-Id: I258e08894486a925bed50a3a4232b6e805af6784
Reviewed-on: https://gerrit.libreoffice.org/63625
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(cherry picked from commit 5e8bdd9203dd642111c62a6668ee665a20d4ba19)
Reviewed-on: https://gerrit.libreoffice.org/66374
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
sdext: fix build with poppler 0.73
... which has removed Guchar, Gushort, Guint, Gulong...
Change-Id: Ia54ad378031f167f6779f6ffe574b85c1e72f26d
Reviewed-on: https://gerrit.libreoffice.org/66305
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
(cherry picked from commit 50d371ae08c66648d9f32f633b2245e1746e2bb6)
Reviewed-on: https://gerrit.libreoffice.org/66363
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
---
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 38 ++++++++++------
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 45 ++++++++++++-------
.../pdfimport/xpdfwrapper/pnghelper.cxx | 6 +--
.../pdfimport/xpdfwrapper/wrapper_gpl.cxx | 4 +-
4 files changed, 60 insertions(+), 33 deletions(-)
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index 06e4fae..9432755 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -298,7 +298,7 @@ void writePpm_( OutputBuffer& o_rOutputBuf,
o_rOutputBuf.resize(header_size);
// initialize stream
- Guchar *p;
+ unsigned char *p;
GfxRGB rgb;
std::unique_ptr<ImageStream> imgStr(
new ImageStream(str,
@@ -401,7 +401,7 @@ void writeImage_( OutputBuffer& o_rOutputBuf,
oneColor = { byteToCol( 0xff ), byteToCol( 0xff ), byteToCol( 0xff ) };
if( colorMap->getColorSpace()->getMode() == csIndexed || colorMap->getColorSpace()->getMode() == csDeviceGray )
{
- Guchar nIndex = 0;
+ unsigned char nIndex = 0;
colorMap->getRGB( &nIndex, &zeroColor );
nIndex = 1;
colorMap->getRGB( &nIndex, &oneColor );
@@ -514,7 +514,7 @@ void PDFOutDev::printPath( GfxPath* pPath )
PDFOutDev::PDFOutDev( PDFDoc* pDoc ) :
m_pDoc( pDoc ),
m_aFontMap(),
- m_pUtf8Map( new UnicodeMap("UTF-8", gTrue, &mapUTF8) ),
+ m_pUtf8Map( new UnicodeMap("UTF-8", true, &mapUTF8) ),
m_bSkipImages(false)
{
}
@@ -555,7 +555,11 @@ void PDFOutDev::processLink(Link* link, Catalog*)
LinkAction* pAction = link->getAction();
if (pAction && pAction->getKind() == actionURI)
{
+#if POPPLER_CHECK_VERSION(0, 72, 0)
+ const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->c_str();
+#else
const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->getCString();
+#endif
std::vector<char> aEsc( lcl_escapeLineFeeds(pURI) );
@@ -578,7 +582,11 @@ void PDFOutDev::restoreState(GfxState*)
printf( "restoreState\n" );
}
+#if POPPLER_CHECK_VERSION(0, 71, 0)
+void PDFOutDev::setDefaultCTM(const double *pMat)
+#else
void PDFOutDev::setDefaultCTM(double *pMat)
+#endif
{
assert(pMat);
@@ -753,7 +761,11 @@ void PDFOutDev::updateFont(GfxState *state)
aFont = it->second;
+#if POPPLER_CHECK_VERSION(0, 72, 0)
+ std::vector<char> aEsc( lcl_escapeLineFeeds(aFont.familyName.c_str()) );
+#else
std::vector<char> aEsc( lcl_escapeLineFeeds(aFont.familyName.getCString()) );
+#endif
printf( " %d %d %d %d %f %d %s",
aFont.isEmbedded,
aFont.isBold,
@@ -939,11 +951,11 @@ void PDFOutDev::endTextObject(GfxState*)
}
void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str,
- int width, int height, GBool invert,
+ int width, int height, poppler_bool invert,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
- GBool /*inlineImg*/ )
+ poppler_bool /*inlineImg*/ )
{
if (m_bSkipImages)
return;
@@ -972,9 +984,9 @@ void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str,
void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
int width, int height, GfxImageColorMap* colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
- int* maskColors, GBool /*inlineImg*/ )
+ int* maskColors, poppler_bool /*inlineImg*/ )
{
if (m_bSkipImages)
return;
@@ -1023,13 +1035,13 @@ void PDFOutDev::drawMaskedImage(GfxState*, Object*, Stream* str,
int width, int height,
GfxImageColorMap* colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
Stream* maskStr,
int maskWidth, int maskHeight,
- GBool maskInvert
+ poppler_bool maskInvert
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool /*maskInterpolate*/
+ , poppler_bool /*maskInterpolate*/
#endif
)
{
@@ -1045,13 +1057,13 @@ void PDFOutDev::drawSoftMaskedImage(GfxState*, Object*, Stream* str,
int width, int height,
GfxImageColorMap* colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
Stream* maskStr,
int maskWidth, int maskHeight,
GfxImageColorMap* maskColorMap
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool /*maskInterpolate*/
+ , poppler_bool /*maskInterpolate*/
#endif
)
{
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
index 7e65f08..533eb93 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
@@ -130,6 +130,13 @@ namespace pdfi
{ return const_cast<GooString &>(familyName); }
};
+ // Versions before 0.15 defined GBool as int; 0.15 redefined it as bool; 0.71 dropped GBool
+#if POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR < 71
+ typedef GBool poppler_bool;
+#else
+ typedef bool poppler_bool;
+#endif
+
class PDFOutDev : public OutputDev
{
// not owned by this class
@@ -151,22 +158,26 @@ namespace pdfi
// Does this device use upside-down coordinates?
// (Upside-down means (0,0) is the top left corner of the page.)
- virtual GBool upsideDown() override { return gTrue; }
+ virtual poppler_bool upsideDown() override { return true; }
// Does this device use drawChar() or drawString()?
- virtual GBool useDrawChar() override { return gTrue; }
+ virtual poppler_bool useDrawChar() override { return true; }
// Does this device use beginType3Char/endType3Char? Otherwise,
// text in Type 3 fonts will be drawn with drawChar/drawString.
- virtual GBool interpretType3Chars() override { return gFalse; }
+ virtual poppler_bool interpretType3Chars() override { return false; }
// Does this device need non-text content?
- virtual GBool needNonText() override { return gTrue; }
+ virtual poppler_bool needNonText() override { return true; }
//----- initialization and control
// Set default transform matrix.
+#if POPPLER_CHECK_VERSION(0, 71, 0)
+ virtual void setDefaultCTM(const double *ctm) override;
+#else
virtual void setDefaultCTM(double *ctm) override;
+#endif
// Start a page.
virtual void startPage(int pageNum, GfxState *state
@@ -233,40 +244,40 @@ namespace pdfi
//----- image drawing
virtual void drawImageMask(GfxState *state, Object *ref, Stream *str,
- int width, int height, GBool invert,
+ int width, int height, poppler_bool invert,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
- GBool inlineImg) override;
+ poppler_bool inlineImg) override;
virtual void drawImage(GfxState *state, Object *ref, Stream *str,
int width, int height, GfxImageColorMap *colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
- int *maskColors, GBool inlineImg) override;
+ int *maskColors, poppler_bool inlineImg) override;
virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
int width, int height,
GfxImageColorMap *colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
Stream *maskStr, int maskWidth, int maskHeight,
- GBool maskInvert
+ poppler_bool maskInvert
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool maskInterpolate
+ , poppler_bool maskInterpolate
#endif
) override;
virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
int width, int height,
GfxImageColorMap *colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
Stream *maskStr,
int maskWidth, int maskHeight,
GfxImageColorMap *maskColorMap
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool maskInterpolate
+ , poppler_bool maskInterpolate
#endif
) override;
@@ -279,9 +290,13 @@ extern FILE* g_binary_out;
// note: if you ever change Output_t, please keep in mind that the current code
// relies on it being of 8 bit size
-typedef Guchar Output_t;
+typedef unsigned char Output_t;
typedef std::vector< Output_t > OutputBuffer;
+#if !POPPLER_CHECK_VERSION(0, 73, 0)
+static_assert(std::is_same<Guchar, unsigned char>::value, "unexpected typedef");
+#endif
+
#endif // INCLUDED_SDEXT_SOURCE_PDFIMPORT_XPDFWRAPPER_PDFIOUTDEV_GPL_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
index 44f30c0..66c1751 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
@@ -242,7 +242,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf,
appendIHDR( o_rOutputBuf, width, height, 8, 6 ); // RGBA image
// initialize stream
- Guchar *p, *pm;
+ unsigned char *p, *pm;
GfxRGB rgb;
GfxGray alpha;
ImageStream* imgStr =
@@ -328,7 +328,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf,
appendIHDR( o_rOutputBuf, width, height, 8, 6 ); // RGBA image
// initialize stream
- Guchar *p;
+ unsigned char *p;
GfxRGB rgb;
ImageStream* imgStr =
new ImageStream(str,
@@ -374,7 +374,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf,
{
for( int x = 0; x < maskWidth; ++x )
{
- Guchar aPixel = 0;
+ unsigned char aPixel = 0;
imgStrMask->getPixel( &aPixel );
int nIndex = (y*height/maskHeight) * (width*4+1) + // mapped line
(x*width/maskWidth)*4 + 1 + 3 // mapped column
diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
index 16db05a..cd559ca 100644
--- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
@@ -69,7 +69,7 @@ int main(int argc, char **argv)
// read config file
globalParams = new GlobalParams();
- globalParams->setErrQuiet(gTrue);
+ globalParams->setErrQuiet(true);
#if defined(_MSC_VER)
globalParams->setupBaseFonts(nullptr);
#endif
@@ -143,7 +143,7 @@ int main(int argc, char **argv)
i,
PDFI_OUTDEV_RESOLUTION,
PDFI_OUTDEV_RESOLUTION,
- 0, gTrue, gTrue, gTrue);
+ 0, true, true, true);
rDoc.processLinks(&aOutDev, i);
}
--
2.20.1

@ -1,68 +0,0 @@
From 429f80910484079e4ef10ca904710e40a14ed3c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Wed, 19 Dec 2018 11:56:23 +0000
Subject: [PATCH] Resolves: tdf#105602 fix extended help for non-dispatchable
toolbox commands
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I832a043ca5ae3a4030b9ac22447cecfabd3650c0
Reviewed-on: https://gerrit.libreoffice.org/65422
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
---
vcl/source/window/builder.cxx | 2 +-
vcl/source/window/toolbox.cxx | 13 ++++++++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index ba0281bacc4c..857bf71f34ca 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -2121,9 +2121,9 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window *pParent, const OString &
//TODO: ImplToolItems::size_type -> sal_uInt16!
pToolBox->InsertItem(nItemId, extractLabel(rMap), nBits);
pToolBox->SetItemCommand(nItemId, aCommand);
- pToolBox->SetHelpId(nItemId, m_sHelpRoot + id);
}
+ pToolBox->SetHelpId(nItemId, m_sHelpRoot + id);
OUString sTooltip(extractTooltipText(rMap));
if (!sTooltip.isEmpty())
pToolBox->SetQuickHelpText(nItemId, sTooltip);
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 824f216ccf0c..4d203c6b9186 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -3792,6 +3792,17 @@ void ToolBox::Resize()
}
}
+namespace
+{
+ bool DispatchableCommand(const OUString& rName)
+ {
+ return rName.startsWith(".uno") ||
+ rName.startsWith("slot:") ||
+ rName.startsWith("macro:") ||
+ rName.startsWith("vnd.sun.star.script");
+ }
+}
+
const OUString& ToolBox::ImplGetHelpText( sal_uInt16 nItemId ) const
{
ImplToolItem* pItem = ImplGetItem( nItemId );
@@ -3803,7 +3814,7 @@ const OUString& ToolBox::ImplGetHelpText( sal_uInt16 nItemId ) const
Help* pHelp = Application::GetHelp();
if ( pHelp )
{
- if ( pItem->maCommandStr.getLength() )
+ if (DispatchableCommand(pItem->maCommandStr))
pItem->maHelpText = pHelp->GetHelpText( pItem->maCommandStr, this );
if ( pItem->maHelpText.isEmpty() && !pItem->maHelpId.isEmpty() )
pItem->maHelpText = pHelp->GetHelpText( OStringToOUString( pItem->maHelpId, RTL_TEXTENCODING_UTF8 ), this );
--
2.20.1

@ -1,693 +0,0 @@
From 3debd23d47d1fcbef76033c739a0b7003824d4ca Mon Sep 17 00:00:00 2001
From: Noel Grandin <noel.grandin@collabora.co.uk>
Date: Sat, 11 Aug 2018 13:25:09 +0200
Subject: [PATCH] Update mdds to 1.4.1
loplugin:constantparam
Reviewed-on: https://gerrit.libreoffice.org/58875
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit bb6f2b12e8f0bbc99a5ca93141d35fd40b043e55)
Update mdds to 1.4.1.
The largest change in 1.4.x relevant to the calc code is that the
multi_type_matrix::walk() methods now take a copy of the function
object rather than a reference, to allow for it to take an inline
lambda function. Instead, it does return a instance of the input
function object, similar to how std::for_each() behaves.
In case the function object contains a large data member, try to
make it a moveable so that it will get moved rather than copied
when going through one of the walk() methods.
Reviewed-on: https://gerrit.libreoffice.org/59584
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
(cherry picked from commit 51f73f35ea61dd81dd3194af50394b98ff1bf8e9)
mdds 1.4.1 is now a minimum requirement.
Reviewed-on: https://gerrit.libreoffice.org/59614
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
(cherry picked from commit 4d1f735fcf064b18ef2848cc1f5a2a0616b0b33d)
fd08fc4a2ed75039e5292a35ff08726e0126c77f
647bcfbdd8e0417990ed93b25c1bca00f60df709
Change-Id: I676a8408e97cc8134009f764736cad68513c89ad
---
configure.ac | 2 +-
download.lst | 4 +-
external/mdds/UnpackedTarball_mdds.mk | 3 -
external/mdds/c++17.patch | 22 ---
sc/inc/scmatrix.hxx | 6 +-
sc/source/core/tool/interpr3.cxx | 4 +-
sc/source/core/tool/scmatrix.cxx | 208 +++++++++++++++++++-------
7 files changed, 161 insertions(+), 88 deletions(-)
delete mode 100644 external/mdds/c++17.patch
diff --git a/configure.ac b/configure.ac
index 735ebf2e360a..3ff574a3f24f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8883,7 +8883,7 @@ AC_SUBST(SYSTEM_BOOST)
dnl ===================================================================
dnl Check for system mdds
dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.2 >= 1.2.3], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
+libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.4 >= 1.4.1], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
dnl ===================================================================
dnl Check for system glm
diff --git a/download.lst b/download.lst
index c40bece90e26..d4c145a0cfc9 100644
--- a/download.lst
+++ b/download.lst
@@ -166,8 +166,8 @@ export LXML_SHA256SUM := 940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a
export LXML_TARBALL := lxml-4.1.1.tgz
export MARIADB_CONNECTOR_C_SHA256SUM := fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60
export MARIADB_CONNECTOR_C_TARBALL := a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz
-export MDDS_SHA256SUM := dcb8cd2425567a5a5ec164afea475bce57784bca3e352ad4cbdd3d1a7e08e5a1
-export MDDS_TARBALL := mdds-1.3.1.tar.bz2
+export MDDS_SHA256SUM := 9ac690c37f5f06dc88551405d5daf9d9ad25edf65aae6325b59e905c2ba444c3
+export MDDS_TARBALL := mdds-1.4.1.tar.bz2
export MDNSRESPONDER_SHA256SUM := 4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0
export MDNSRESPONDER_TARBALL := mDNSResponder-576.30.4.tar.gz
export MSPUB_SHA256SUM := ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba
diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk
index 4f6db6b24e7b..c015f4c13f5a 100644
--- a/external/mdds/UnpackedTarball_mdds.mk
+++ b/external/mdds/UnpackedTarball_mdds.mk
@@ -13,10 +13,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL)))
$(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0))
-# c++17.patch upstreamed as <https://gitlab.com/mdds/mdds/merge_requests/11> "Remove some
-# unnecessary uses of obsolete std::unary_function":
$(eval $(call gb_UnpackedTarball_add_patches,mdds,\
- external/mdds/c++17.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/mdds/c++17.patch b/external/mdds/c++17.patch
deleted file mode 100644
index d96910f34e68..000000000000
--- a/external/mdds/c++17.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- include/mdds/multi_type_matrix.hpp
-+++ include/mdds/multi_type_matrix.hpp
-@@ -149,7 +149,7 @@
-
- private:
- template<typename _Func>
-- struct walk_func : std::unary_function<typename store_type::const_iterator::value_type, void>
-+ struct walk_func
- {
- _Func& m_func;
- walk_func(_Func& func) : m_func(func) {}
---- include/mdds/multi_type_vector.hpp
-+++ include/mdds/multi_type_vector.hpp
-@@ -139,7 +139,7 @@
- block& operator=(block);
- };
-
-- struct element_block_deleter : public std::unary_function<void, const element_block_type*>
-+ struct element_block_deleter
- {
- void operator() (const element_block_type* p)
- {
diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx
index 9be335fbc06b..b1bc5e0e3047 100644
--- a/sc/inc/scmatrix.hxx
+++ b/sc/inc/scmatrix.hxx
@@ -399,7 +399,7 @@ public:
virtual void DivOp(bool bFlag, double fVal, ScMatrix& rMat) = 0;
virtual void PowOp(bool bFlag, double fVal, ScMatrix& rMat) = 0;
- virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) = 0;
+ virtual std::vector<ScMatrix::IterateResult> Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) = 0;
virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos,
DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc,
@@ -617,7 +617,7 @@ public:
virtual void DivOp(bool bFlag, double fVal, ScMatrix& rMat) override;
virtual void PowOp(bool bFlag, double fVal, ScMatrix& rMat) override;
- virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override;
+ virtual std::vector<ScMatrix::IterateResult> Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override;
virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos,
DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc,
@@ -837,7 +837,7 @@ public:
virtual void DivOp(bool bFlag, double fVal, ScMatrix& rMat) override;
virtual void PowOp(bool bFlag, double fVal, ScMatrix& rMat) override;
- virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override;
+ virtual std::vector<ScMatrix::IterateResult> Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override;
virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos,
DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc,
diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index 28e8cd9a9c48..88c0d8353783 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -2745,12 +2745,12 @@ void ScInterpreter::ScFTest()
aOp.emplace_back(new sc::op::Op(0.0, [](double& rAccum, double fVal){rAccum += fVal;}));
aOp.emplace_back(new sc::op::Op(0.0, [](double& rAccum, double fVal){rAccum += fVal * fVal;}));
- auto aVal1 = pMat1->Collect(false, aOp);
+ auto aVal1 = pMat1->Collect(aOp);
fSum1 = aVal1[0].mfFirst + aVal1[0].mfRest;
fSumSqr1 = aVal1[1].mfFirst + aVal1[1].mfRest;
fCount1 = aVal1[2].mnCount;
- auto aVal2 = pMat2->Collect(false, aOp);
+ auto aVal2 = pMat2->Collect(aOp);
fSum2 = aVal2[0].mfFirst + aVal2[0].mfRest;
fSumSqr2 = aVal2[1].mfFirst + aVal2[1].mfRest;
fCount2 = aVal2[2].mnCount;
diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx
index 7f8c8767e917..7dadec9f0b57 100644
--- a/sc/source/core/tool/scmatrix.cxx
+++ b/sc/source/core/tool/scmatrix.cxx
@@ -160,6 +160,12 @@ public:
maNewMatValues.reserve(nRow*nCol);
}
+ CompareMatrixElemFunc( const CompareMatrixElemFunc& ) = delete;
+ CompareMatrixElemFunc& operator= ( const CompareMatrixElemFunc& ) = delete;
+
+ CompareMatrixElemFunc( CompareMatrixElemFunc&& ) = default;
+ CompareMatrixElemFunc& operator= ( CompareMatrixElemFunc&& ) = default;
+
void operator() (const MatrixImplType::element_block_node_type& node)
{
switch (node.type)
@@ -323,7 +329,7 @@ public:
const ScFullMatrix::EmptyOpFunction& aEmptyFunc) const;
template<typename T>
- std::vector<ScMatrix::IterateResult> ApplyCollectOperation(bool bTextAsZero, const std::vector<std::unique_ptr<T>>& aOp);
+ std::vector<ScMatrix::IterateResult> ApplyCollectOperation(const std::vector<std::unique_ptr<T>>& aOp);
void MatConcat(SCSIZE nMaxCol, SCSIZE nMaxRow, const ScMatrixRef& xMat1, const ScMatrixRef& xMat2,
SvNumberFormatter& rFormatter, svl::SharedStringPool& rPool);
@@ -979,7 +985,7 @@ void ScMatrixImpl::CompareEqual()
{
MatrixImplType::size_pair_type aSize = maMat.size();
CompareMatrixElemFunc<ElemEqualZero> aFunc(aSize.row, aSize.column);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(maMat);
}
@@ -987,7 +993,7 @@ void ScMatrixImpl::CompareNotEqual()
{
MatrixImplType::size_pair_type aSize = maMat.size();
CompareMatrixElemFunc<ElemNotEqualZero> aFunc(aSize.row, aSize.column);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(maMat);
}
@@ -995,7 +1001,7 @@ void ScMatrixImpl::CompareLess()
{
MatrixImplType::size_pair_type aSize = maMat.size();
CompareMatrixElemFunc<ElemLessZero> aFunc(aSize.row, aSize.column);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(maMat);
}
@@ -1003,7 +1009,7 @@ void ScMatrixImpl::CompareGreater()
{
MatrixImplType::size_pair_type aSize = maMat.size();
CompareMatrixElemFunc<ElemGreaterZero> aFunc(aSize.row, aSize.column);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(maMat);
}
@@ -1011,7 +1017,7 @@ void ScMatrixImpl::CompareLessEqual()
{
MatrixImplType::size_pair_type aSize = maMat.size();
CompareMatrixElemFunc<ElemLessEqualZero> aFunc(aSize.row, aSize.column);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(maMat);
}
@@ -1019,7 +1025,7 @@ void ScMatrixImpl::CompareGreaterEqual()
{
MatrixImplType::size_pair_type aSize = maMat.size();
CompareMatrixElemFunc<ElemGreaterEqualZero> aFunc(aSize.row, aSize.column);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(maMat);
}
@@ -1174,21 +1180,34 @@ public:
template<typename Op>
class WalkElementBlocksMultipleValues
{
- const std::vector<std::unique_ptr<Op>>& maOp;
+ const std::vector<std::unique_ptr<Op>>* mpOp;
std::vector<ScMatrix::IterateResult> maRes;
bool mbFirst:1;
- bool mbTextAsZero:1;
public:
- WalkElementBlocksMultipleValues(bool bTextAsZero, const std::vector<std::unique_ptr<Op>>& aOp) :
- maOp(aOp), mbFirst(true), mbTextAsZero(bTextAsZero)
+ WalkElementBlocksMultipleValues(const std::vector<std::unique_ptr<Op>>& aOp) :
+ mpOp(&aOp), mbFirst(true)
{
- for (const auto& rpOp : maOp)
+ for (const auto& rpOp : *mpOp)
{
maRes.emplace_back(rpOp->mInitVal, rpOp->mInitVal, 0);
}
maRes.emplace_back(0.0, 0.0, 0); // count
}
+ WalkElementBlocksMultipleValues( const WalkElementBlocksMultipleValues& ) = delete;
+ WalkElementBlocksMultipleValues& operator= ( const WalkElementBlocksMultipleValues& ) = delete;
+
+ WalkElementBlocksMultipleValues( WalkElementBlocksMultipleValues&& r ) :
+ mpOp(r.mpOp), maRes(std::move(r.maRes)), mbFirst(r.mbFirst) {}
+
+ WalkElementBlocksMultipleValues& operator= ( WalkElementBlocksMultipleValues&& r )
+ {
+ mpOp = r.mpOp;
+ maRes = std::move(r.maRes);
+ mbFirst = r.mbFirst;
+ return *this;
+ }
+
const std::vector<ScMatrix::IterateResult>& getResult() const { return maRes; }
void operator() (const MatrixImplType::element_block_node_type& node)
@@ -1205,17 +1224,17 @@ public:
{
if (mbFirst)
{
- for (auto i = 0u; i < maOp.size(); ++i)
+ for (auto i = 0u; i < mpOp->size(); ++i)
{
- (*maOp[i])(maRes[i].mfFirst, *it);
+ (*(*mpOp)[i])(maRes[i].mfFirst, *it);
}
mbFirst = false;
}
else
{
- for (auto i = 0u; i < maOp.size(); ++i)
+ for (auto i = 0u; i < mpOp->size(); ++i)
{
- (*maOp[i])(maRes[i].mfRest, *it);
+ (*(*mpOp)[i])(maRes[i].mfRest, *it);
}
}
}
@@ -1232,17 +1251,17 @@ public:
{
if (mbFirst)
{
- for (auto i = 0u; i < maOp.size(); ++i)
+ for (auto i = 0u; i < mpOp->size(); ++i)
{
- (*maOp[i])(maRes[i].mfFirst, *it);
+ (*(*mpOp)[i])(maRes[i].mfFirst, *it);
}
mbFirst = false;
}
else
{
- for (auto i = 0u; i < maOp.size(); ++i)
+ for (auto i = 0u; i < mpOp->size(); ++i)
{
- (*maOp[i])(maRes[i].mfRest, *it);
+ (*(*mpOp)[i])(maRes[i].mfRest, *it);
}
}
}
@@ -1250,9 +1269,6 @@ public:
}
break;
case mdds::mtm::element_string:
- if (mbTextAsZero)
- maRes.back().mnCount += node.size;
- break;
case mdds::mtm::element_empty:
default:
;
@@ -1310,8 +1326,8 @@ template<typename Type>
class WalkAndMatchElements
{
Type maMatchValue;
- const size_t mnStartIndex;
- const size_t mnStopIndex;
+ size_t mnStartIndex;
+ size_t mnStopIndex;
size_t mnResult;
size_t mnIndex;
@@ -1669,6 +1685,24 @@ public:
maResValues.reserve(nResSize);
}
+ CompareMatrixFunc( const CompareMatrixFunc& ) = delete;
+ CompareMatrixFunc& operator= ( const CompareMatrixFunc& ) = delete;
+
+ CompareMatrixFunc( CompareMatrixFunc&& r ) :
+ mrComp(r.mrComp),
+ mnMatPos(r.mnMatPos),
+ mpOptions(r.mpOptions),
+ maResValues(std::move(r.maResValues)) {}
+
+ CompareMatrixFunc& operator= ( CompareMatrixFunc&& r )
+ {
+ mrComp = r.mrComp;
+ mnMatPos = r.mnMatPos;
+ mpOptions = r.mpOptions;
+ maResValues = std::move(r.maResValues);
+ return *this;
+ }
+
void operator() (const MatrixImplType::element_block_node_type& node)
{
sc::Compare::Cell& rCell = mrComp.maCells[mnMatPos];
@@ -1777,6 +1811,24 @@ public:
maResValues.reserve(nResSize);
}
+ CompareMatrixToNumericFunc( const CompareMatrixToNumericFunc& ) = delete;
+ CompareMatrixToNumericFunc& operator= ( const CompareMatrixToNumericFunc& ) = delete;
+
+ CompareMatrixToNumericFunc( CompareMatrixToNumericFunc&& r ) :
+ mrComp(r.mrComp),
+ mfRightValue(r.mfRightValue),
+ mpOptions(r.mpOptions),
+ maResValues(std::move(r.maResValues)) {}
+
+ CompareMatrixToNumericFunc& operator= ( CompareMatrixToNumericFunc&& r )
+ {
+ mrComp = r.mrComp;
+ mfRightValue = r.mfRightValue;
+ mpOptions = r.mpOptions;
+ maResValues = std::move(r.maResValues);
+ return *this;
+ }
+
void operator() (const MatrixImplType::element_block_node_type& node)
{
sc::Compare::Cell& rCell = mrComp.maCells[0];
@@ -1840,6 +1892,17 @@ class ToDoubleArray
double mfNaN;
bool mbEmptyAsZero;
+ void moveArray( ToDoubleArray& r )
+ {
+ // Re-create the iterator from the new array after the array has been
+ // moved, to ensure that the iterator points to a valid array
+ // position.
+ size_t n = std::distance(r.maArray.begin(), r.miPos);
+ maArray = std::move(r.maArray);
+ miPos = maArray.begin();
+ std::advance(miPos, n);
+ }
+
public:
ToDoubleArray( size_t nSize, bool bEmptyAsZero ) :
maArray(nSize, 0.0), miPos(maArray.begin()), mbEmptyAsZero(bEmptyAsZero)
@@ -1847,6 +1910,23 @@ public:
mfNaN = CreateDoubleError( FormulaError::ElementNaN);
}
+ ToDoubleArray( const ToDoubleArray& ) = delete;
+ ToDoubleArray& operator= ( const ToDoubleArray& ) = delete;
+
+ ToDoubleArray( ToDoubleArray&& r ) :
+ mfNaN(r.mfNaN), mbEmptyAsZero(r.mbEmptyAsZero)
+ {
+ moveArray(r);
+ }
+
+ ToDoubleArray& operator= ( ToDoubleArray&& r )
+ {
+ mfNaN = r.mfNaN;
+ mbEmptyAsZero = r.mbEmptyAsZero;
+ moveArray(r);
+ return *this;
+ }
+
void operator() (const MatrixImplType::element_block_node_type& node)
{
using namespace mdds::mtv;
@@ -1917,6 +1997,12 @@ public:
mfNaN = CreateDoubleError( FormulaError::ElementNaN);
}
+ MergeDoubleArrayFunc( const MergeDoubleArrayFunc& ) = delete;
+ MergeDoubleArrayFunc& operator= ( const MergeDoubleArrayFunc& ) = delete;
+
+ MergeDoubleArrayFunc( MergeDoubleArrayFunc&& ) = default;
+ MergeDoubleArrayFunc& operator= ( MergeDoubleArrayFunc&& ) = default;
+
void operator() (const MatrixImplType::element_block_node_type& node)
{
using namespace mdds::mtv;
@@ -1982,7 +2068,7 @@ template<typename TOp>
ScMatrix::IterateResult GetValueWithCount(bool bTextAsZero, const MatrixImplType& maMat)
{
WalkElementBlocks<TOp> aFunc(bTextAsZero);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getResult();
}
@@ -2006,49 +2092,49 @@ ScMatrix::IterateResult ScMatrixImpl::Product(bool bTextAsZero) const
size_t ScMatrixImpl::Count(bool bCountStrings, bool bCountErrors) const
{
CountElements aFunc(bCountStrings, bCountErrors);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getCount();
}
size_t ScMatrixImpl::MatchDoubleInColumns(double fValue, size_t nCol1, size_t nCol2) const
{
WalkAndMatchElements<double> aFunc(fValue, maMat.size(), nCol1, nCol2);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getMatching();
}
size_t ScMatrixImpl::MatchStringInColumns(const svl::SharedString& rStr, size_t nCol1, size_t nCol2) const
{
WalkAndMatchElements<svl::SharedString> aFunc(rStr, maMat.size(), nCol1, nCol2);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getMatching();
}
double ScMatrixImpl::GetMaxValue( bool bTextAsZero ) const
{
CalcMaxMinValue<MaxOp> aFunc(bTextAsZero);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getValue();
}
double ScMatrixImpl::GetMinValue( bool bTextAsZero ) const
{
CalcMaxMinValue<MinOp> aFunc(bTextAsZero);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getValue();
}
double ScMatrixImpl::GetGcd() const
{
CalcGcdLcm<Gcd> aFunc;
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getResult();
}
double ScMatrixImpl::GetLcm() const
{
CalcGcdLcm<Lcm> aFunc;
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
return aFunc.getResult();
}
@@ -2065,7 +2151,7 @@ ScMatrixRef ScMatrixImpl::CompareMatrix(
// function object that has much less branching for much better
// performance.
CompareMatrixToNumericFunc aFunc(nSize, rComp, rComp.maCells[1].mfValue, pOptions);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
// We assume the result matrix has the same dimension as this matrix.
const std::vector<double>& rResVal = aFunc.getValues();
@@ -2077,7 +2163,7 @@ ScMatrixRef ScMatrixImpl::CompareMatrix(
}
CompareMatrixFunc aFunc(nSize, rComp, nMatPos, pOptions);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
// We assume the result matrix has the same dimension as this matrix.
const std::vector<double>& rResVal = aFunc.getValues();
@@ -2091,7 +2177,7 @@ void ScMatrixImpl::GetDoubleArray( std::vector<double>& rArray, bool bEmptyAsZer
{
MatrixImplType::size_pair_type aSize = maMat.size();
ToDoubleArray aFunc(aSize.row*aSize.column, bEmptyAsZero);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
aFunc.swap(rArray);
}
@@ -2107,7 +2193,7 @@ void ScMatrixImpl::MergeDoubleArray( std::vector<double>& rArray, ScFullMatrix::
case ScFullMatrix::Mul:
{
MergeDoubleArrayFunc<ArrayMul> aFunc(rArray);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(std::move(aFunc));
}
break;
default:
@@ -2329,16 +2415,26 @@ struct MatrixOpWrapper
private:
MatrixImplType& mrMat;
MatrixImplType::position_type pos;
- T maOp;
+ const T* mpOp;
public:
- MatrixOpWrapper(MatrixImplType& rMat, T const & aOp):
+ MatrixOpWrapper(MatrixImplType& rMat, const T& aOp):
mrMat(rMat),
pos(rMat.position(0,0)),
- maOp(aOp)
+ mpOp(&aOp)
{
}
+ MatrixOpWrapper( const MatrixOpWrapper& r ) : mrMat(r.mrMat), pos(r.pos), mpOp(r.mpOp) {}
+
+ MatrixOpWrapper& operator= ( const MatrixOpWrapper& r )
+ {
+ mrMat = r.mrMat;
+ pos = r.pos;
+ mpOp = r.mpOp;
+ return *this;
+ }
+
void operator()(const MatrixImplType::element_block_node_type& node)
{
switch (node.type)
@@ -2349,7 +2445,7 @@ public:
block_type::const_iterator it = block_type::begin(*node.data);
block_type::const_iterator itEnd = block_type::end(*node.data);
- MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, maOp);
+ MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, *mpOp);
pos = mrMat.set(pos,aFunc.begin(), aFunc.end());
}
break;
@@ -2360,7 +2456,7 @@ public:
block_type::const_iterator it = block_type::begin(*node.data);
block_type::const_iterator itEnd = block_type::end(*node.data);
- MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, maOp);
+ MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, *mpOp);
pos = mrMat.set(pos, aFunc.begin(), aFunc.end());
}
break;
@@ -2371,17 +2467,17 @@ public:
block_type::const_iterator it = block_type::begin(*node.data);
block_type::const_iterator itEnd = block_type::end(*node.data);
- MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, maOp);
+ MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, *mpOp);
pos = mrMat.set(pos, aFunc.begin(), aFunc.end());
}
break;
case mdds::mtm::element_empty:
{
- if (maOp.useFunctionForEmpty())
+ if (mpOp->useFunctionForEmpty())
{
std::vector<char> aVec(node.size);
MatrixIteratorWrapper<std::vector<char>, T, typename T::number_value_type>
- aFunc(aVec.begin(), aVec.end(), maOp);
+ aFunc(aVec.begin(), aVec.end(), *mpOp);
pos = mrMat.set(pos, aFunc.begin(), aFunc.end());
}
}
@@ -2397,14 +2493,14 @@ template<typename T>
void ScMatrixImpl::ApplyOperation(T aOp, ScMatrixImpl& rMat)
{
MatrixOpWrapper<T> aFunc(rMat.maMat, aOp);
- maMat.walk(aFunc);
+ aFunc = maMat.walk(aFunc);
}
template<typename T>
-std::vector<ScMatrix::IterateResult> ScMatrixImpl::ApplyCollectOperation(bool bTextAsZero, const std::vector<std::unique_ptr<T>>& aOp)
+std::vector<ScMatrix::IterateResult> ScMatrixImpl::ApplyCollectOperation(const std::vector<std::unique_ptr<T>>& aOp)
{
- WalkElementBlocksMultipleValues<T> aFunc(bTextAsZero, aOp);
- maMat.walk(aFunc);
+ WalkElementBlocksMultipleValues<T> aFunc(aOp);
+ aFunc = maMat.walk(std::move(aFunc));
return aFunc.getResult();
}
@@ -2544,8 +2640,10 @@ void ScMatrixImpl::ExecuteOperation(const std::pair<size_t, size_t>& rStartPos,
{
WalkElementBlockOperation aFunc(maMat.size().row,
aDoubleFunc, aBoolFunc, aStringFunc, aEmptyFunc);
- maMat.walk(aFunc, MatrixImplType::size_pair_type(rStartPos.first, rStartPos.second),
- MatrixImplType::size_pair_type(rEndPos.first, rEndPos.second));
+ aFunc = maMat.walk(
+ aFunc,
+ MatrixImplType::size_pair_type(rStartPos.first, rStartPos.second),
+ MatrixImplType::size_pair_type(rEndPos.first, rEndPos.second));
}
#if DEBUG_MATRIX
@@ -3452,9 +3550,9 @@ void ScFullMatrix::ExecuteOperation(const std::pair<size_t, size_t>& rStartPos,
pImpl->ExecuteOperation(rStartPos, rEndPos, aDoubleFunc, aBoolFunc, aStringFunc, aEmptyFunc);
}
-std::vector<ScMatrix::IterateResult> ScFullMatrix::Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp)
+std::vector<ScMatrix::IterateResult> ScFullMatrix::Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp)
{
- return pImpl->ApplyCollectOperation(bTextAsZero, aOp);
+ return pImpl->ApplyCollectOperation(aOp);
}
ScFullMatrix& ScFullMatrix::operator+= ( const ScFullMatrix& r )
@@ -4216,10 +4314,10 @@ void ScVectorRefMatrix::PowOp(bool bFlag, double fVal, ScMatrix& rMat)
mpFullMatrix->PowOp(bFlag, fVal, rMat);
}
-std::vector<ScMatrix::IterateResult> ScVectorRefMatrix::Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp)
+std::vector<ScMatrix::IterateResult> ScVectorRefMatrix::Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp)
{
ensureFullMatrix();
- return mpFullMatrix->Collect(bTextAsZero, aOp);
+ return mpFullMatrix->Collect(aOp);
}
void ScVectorRefMatrix::ExecuteOperation(const std::pair<size_t, size_t>& rStartPos,
--
2.17.1

@ -1,801 +0,0 @@
From 1d0727a104d76210814f41c1169df318e40c9d80 Mon Sep 17 00:00:00 2001
From: Kohei Yoshida <kohei.yoshida@gmail.com>
Date: Mon, 27 Aug 2018 11:06:17 -0400
Subject: [PATCH] Update orcus to 0.14.0.
And make all necessary adjustments for the new version of orcus.
Change-Id: I0dc207162a3ddfaad6da198a3d13b65f530757d5
Reviewed-on: https://gerrit.libreoffice.org/59884
Tested-by: Jenkins
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
---
RepositoryExternal.mk | 4 +-
configure.ac | 2 +-
download.lst | 4 +-
.../0001-Missing-header-for-std-tolower.patch | 24 ++
external/liborcus/ExternalPackage_liborcus.mk | 8 +-
external/liborcus/ExternalProject_liborcus.mk | 4 +-
external/liborcus/Library_orcus.mk | 2 +
external/liborcus/UnpackedTarball_liborcus.mk | 1 +
external/liborcus/gcc9.patch.0 | 3 +-
sc/source/filter/inc/orcusinterface.hxx | 107 ++++--
sc/source/filter/orcus/interface.cxx | 322 +++++++++++++-----
sc/source/filter/orcus/xmlcontext.cxx | 5 +-
12 files changed, 360 insertions(+), 126 deletions(-)
create mode 100644 external/liborcus/0001-Missing-header-for-std-tolower.patch
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index cec79cc105e8..f172765a84f8 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3295,7 +3295,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.13 \
+ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.14 \
)
$(if $(SYSTEM_BOOST), \
@@ -3314,7 +3314,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.13 \
+ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.14 \
)
endef
diff --git a/configure.ac b/configure.ac
index 3c9e5dc5e908..a60a3e72689f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9196,7 +9196,7 @@ AC_SUBST(ENABLE_FUZZERS)
dnl ===================================================================
dnl Orcus
dnl ===================================================================
-libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.13 >= 0.13.3])
+libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.14 >= 0.14.0])
if test "$with_system_orcus" != "yes"; then
if test "$SYSTEM_BOOST" = "TRUE"; then
# ===========================================================
diff --git a/download.lst b/download.lst
index 1ed75b36f3b3..3532e2be3aa3 100644
--- a/download.lst
+++ b/download.lst
@@ -194,8 +194,8 @@ export OPENLDAP_SHA256SUM := cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb89
export OPENLDAP_TARBALL := openldap-2.4.45.tgz
export OPENSSL_SHA256SUM := 50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00
export OPENSSL_TARBALL := openssl-1.0.2p.tar.gz
-export ORCUS_SHA256SUM := bc01b1b3e9091416f498840d3c19a1aa2704b448100e7f6b80eefe88aab06d5b
-export ORCUS_TARBALL := liborcus-0.13.4.tar.gz
+export ORCUS_SHA256SUM := 7bcfac3f4f490540292cfc87d3fde7b47eafa8450afa1e1a2c181d8293dcd4ef
+export ORCUS_TARBALL := liborcus-0.14.0.tar.gz
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
diff --git a/external/liborcus/0001-Missing-header-for-std-tolower.patch b/external/liborcus/0001-Missing-header-for-std-tolower.patch
new file mode 100644
index 000000000000..2e00be92a872
--- /dev/null
+++ b/external/liborcus/0001-Missing-header-for-std-tolower.patch
@@ -0,0 +1,24 @@
+From 3a6bb93a382b4d5f1463ee3fdd54cab7048ff996 Mon Sep 17 00:00:00 2001
+From: Kohei Yoshida <kohei.yoshida@gmail.com>
+Date: Fri, 31 Aug 2018 16:07:06 -0400
+Subject: [PATCH] Missing header for std::tolower.
+
+---
+ src/parser/sax_token_parser.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/parser/sax_token_parser.cpp b/src/parser/sax_token_parser.cpp
+index 9790b498..44ba5844 100644
+--- a/src/parser/sax_token_parser.cpp
++++ b/src/parser/sax_token_parser.cpp
+@@ -9,6 +9,7 @@
+ #include "orcus/tokens.hpp"
+
+ #include <mdds/sorted_string_map.hpp>
++#include <cctype>
+
+ namespace orcus {
+
+--
+2.17.1
+
diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk
index 32382b7d89a1..ffa0b38bea19 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.13.0.dylib,src/liborcus/.libs/liborcus-0.13.0.dylib))
-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.13.0.dylib,src/parser/.libs/liborcus-parser-0.13.0.dylib))
+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.14.0.dylib,src/liborcus/.libs/liborcus-0.14.0.dylib))
+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.14.0.dylib,src/parser/.libs/liborcus-parser-0.14.0.dylib))
else ifeq ($(DISABLE_DYNLOADING),)
-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.13.so.0,src/liborcus/.libs/liborcus-0.13.so.0.0.0))
-$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.13.so.0,src/parser/.libs/liborcus-parser-0.13.so.0.0.0))
+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.14.so.0,src/liborcus/.libs/liborcus-0.14.so.0.0.0))
+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.14.so.0,src/parser/.libs/liborcus-parser-0.14.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 928c78e3a267..1aa591228f40 100644
--- a/external/liborcus/ExternalProject_liborcus.mk
+++ b/external/liborcus/ExternalProject_liborcus.mk
@@ -114,8 +114,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.13.0.dylib \
- $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.13.0.dylib \
+ $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.14.0.dylib \
+ $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.14.0.dylib \
) \
)
diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk
index 6457ec4afc0c..1f026c425244 100644
--- a/external/liborcus/Library_orcus.mk
+++ b/external/liborcus/Library_orcus.mk
@@ -55,6 +55,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\
UnpackedTarball/liborcus/src/liborcus/detection_result \
UnpackedTarball/liborcus/src/liborcus/dom_tree \
UnpackedTarball/liborcus/src/liborcus/format_detection \
+ UnpackedTarball/liborcus/src/liborcus/formula_result \
UnpackedTarball/liborcus/src/liborcus/global \
UnpackedTarball/liborcus/src/liborcus/gnumeric_cell_context \
UnpackedTarball/liborcus/src/liborcus/gnumeric_context \
@@ -96,6 +97,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\
UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \
UnpackedTarball/liborcus/src/liborcus/orcus_xml \
UnpackedTarball/liborcus/src/liborcus/session_context \
+ UnpackedTarball/liborcus/src/liborcus/spreadsheet_iface_util \
UnpackedTarball/liborcus/src/liborcus/spreadsheet_interface \
UnpackedTarball/liborcus/src/liborcus/spreadsheet_types \
UnpackedTarball/liborcus/src/liborcus/string_helper \
diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk
index 215bd4b8cc15..f637cc73db46 100644
--- a/external/liborcus/UnpackedTarball_liborcus.mk
+++ b/external/liborcus/UnpackedTarball_liborcus.mk
@@ -19,5 +19,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\
external/liborcus/0001-workaround-a-linking-problem-on-windows.patch \
external/liborcus/rpath.patch.0 \
+ external/liborcus/0001-Missing-header-for-std-tolower.patch \
))
ifeq ($(OS),WNT)
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx
index 028fb4126f01..dce0d5b0a64e 100644
--- a/sc/source/filter/inc/orcusinterface.hxx
+++ b/sc/source/filter/inc/orcusinterface.hxx
@@ -54,6 +54,7 @@ public:
ScOrcusGlobalSettings(ScDocumentImport& rDoc);
virtual void set_origin_date(int year, int month, int day) override;
+ virtual void set_character_set(orcus::character_set_t cs) override;
virtual void set_default_formula_grammar(orcus::spreadsheet::formula_grammar_t grammar) override;
virtual orcus::spreadsheet::formula_grammar_t get_default_formula_grammar() const override;
@@ -181,7 +182,7 @@ public:
virtual ~ScOrcusAutoFilter() override;
- virtual void set_range(const char* p_ref, size_t n_ref) override;
+ virtual void set_range(const orcus::spreadsheet::range_t& range) override;
virtual void set_column(orcus::spreadsheet::col_t col) override;
@@ -214,22 +215,95 @@ public:
virtual void set_merge_cell_range(const orcus::spreadsheet::range_t& range) override;
};
+class ScOrcusSheet;
+
+class ScOrcusFormula : public orcus::spreadsheet::iface::import_formula
+{
+ enum class ResultType { NotSet, String, Value, Empty };
+
+ friend class ScOrcusSheet;
+
+ ScOrcusSheet& mrSheet;
+
+ SCCOL mnCol;
+ SCROW mnRow;
+ OUString maFormula;
+ formula::FormulaGrammar::Grammar meGrammar;
+ size_t mnSharedFormulaIndex;
+ bool mbShared;
+
+ ResultType meResType;
+ size_t mnResult; // result string index.
+ double mfResult;
+
+ void reset();
+
+public:
+ ScOrcusFormula( ScOrcusSheet& rSheet );
+ virtual ~ScOrcusFormula() override;
+
+ virtual void set_position(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override;
+ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override;
+ virtual void set_shared_formula_index(size_t index) override;
+ virtual void set_result_value(double value) override;
+ virtual void set_result_string(size_t sindex) override;
+ virtual void set_result_empty() override;
+ virtual void set_result_bool(bool value) override;
+ virtual void commit() override;
+};
+
+class ScOrcusArrayFormula : public orcus::spreadsheet::iface::import_array_formula
+{
+ friend class ScOrcusSheet;
+
+ ScOrcusSheet& mrSheet;
+
+ SCCOL mnCol;
+ SCROW mnRow;
+ uint32_t mnColRange;
+ uint32_t mnRowRange;
+ OUString maFormula;
+ formula::FormulaGrammar::Grammar meGrammar;
+
+ void reset();
+
+public:
+ ScOrcusArrayFormula( ScOrcusSheet& rSheet );
+ virtual ~ScOrcusArrayFormula() override;
+
+ virtual void set_range(const orcus::spreadsheet::range_t& range) override;
+ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override;
+ virtual void set_result_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) override;
+ virtual void set_result_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override;
+ virtual void set_result_empty(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override;
+ virtual void set_result_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override;
+ virtual void commit() override;
+};
+
class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
{
+ friend class ScOrcusFormula;
+ friend class ScOrcusArrayFormula;
+
ScDocumentImport& mrDoc;
SCTAB mnTab;
ScOrcusFactory& mrFactory;
ScOrcusStyles& mrStyles;
sc::SharedFormulaGroups maFormulaGroups;
+
ScOrcusAutoFilter maAutoFilter;
ScOrcusSheetProperties maProperties;
ScOrcusConditionalFormat maConditionalFormat;
ScOrcusNamedExpression maNamedExpressions;
+ ScOrcusFormula maFormula;
+ ScOrcusArrayFormula maArrayFormula;
int mnCellCount;
void cellInserted();
+ ScDocumentImport& getDoc();
+
public:
ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory);
@@ -238,6 +312,8 @@ public:
virtual orcus::spreadsheet::iface::import_sheet_properties* get_sheet_properties() override;
virtual orcus::spreadsheet::iface::import_conditional_format* get_conditional_format() override;
virtual orcus::spreadsheet::iface::import_named_expression* get_named_expression() override;
+ virtual orcus::spreadsheet::iface::import_formula* get_formula() override;
+ virtual orcus::spreadsheet::iface::import_array_formula* get_array_formula() override;
// Orcus import interface
virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override;
@@ -251,33 +327,13 @@ public:
virtual void set_format(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start,
orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end, size_t xf_index) override;
- 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) override;
- virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override;
- virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double val) override;
-
- 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) override;
-
- 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) override;
-
- virtual void set_shared_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override;
-
- 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) override;
-
- 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) override;
-
virtual orcus::spreadsheet::range_size_t get_sheet_size() const override;
SCTAB getIndex() const { return mnTab; }
const sc::SharedFormulaGroups& getSharedFormulaGroups() const;
+ sc::SharedFormulaGroups& getSharedFormulaGroups();
+ ScOrcusFactory& getFactory();
};
class ScOrcusStyles : public orcus::spreadsheet::iface::import_styles
@@ -312,7 +368,7 @@ private:
struct fill
{
- OUString maPattern;
+ orcus::spreadsheet::fill_pattern_t mePattern;
Color maFgColor;
Color maBgColor;
@@ -446,7 +502,7 @@ public:
// fill
virtual void set_fill_count(size_t n) override;
- virtual void set_fill_pattern_type(const char* s, size_t n) override;
+ virtual void set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp) override;
virtual void set_fill_fg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override;
virtual void set_fill_bg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override;
virtual size_t commit_fill() override;
@@ -580,6 +636,7 @@ public:
size_t appendString(const OUString& rStr);
size_t addString(const OUString& rStr);
+ const OUString* getString(size_t nIndex) const;
void pushCellStoreAutoToken( const ScAddress& rPos, const OUString& rVal );
void pushCellStoreToken( const ScAddress& rPos, uint32_t nStrIndex );
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index dcf3e83d7eae..7b8425d3007d 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -101,6 +101,11 @@ void ScOrcusGlobalSettings::set_origin_date(int year, int month, int day)
mrDoc.setOriginDate(year, month, day);
}
+void ScOrcusGlobalSettings::set_character_set(orcus::character_set_t /*cs*/)
+{
+ // TODO
+}
+
void ScOrcusGlobalSettings::set_default_formula_grammar(os::formula_grammar_t grammar)
{
meCalcGrammar = getCalcGrammarFromOrcus(grammar);
@@ -463,6 +468,11 @@ size_t ScOrcusFactory::addString(const OUString& rStr)
return appendString(rStr);
}
+const OUString* ScOrcusFactory::getString(size_t nIndex) const
+{
+ return nIndex < maStrings.size() ? &maStrings[nIndex] : nullptr;
+}
+
void ScOrcusFactory::pushCellStoreAutoToken( const ScAddress& rPos, const OUString& rVal )
{
maCellStoreTokens.emplace_back(rPos, CellStoreToken::Type::Auto);
@@ -816,10 +826,197 @@ ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& r
maProperties(mnTab, mrDoc),
maConditionalFormat(mnTab, rDoc.getDoc()),
maNamedExpressions(rDoc, rFactory.getGlobalSettings(), nTab),
+ maFormula(*this),
+ maArrayFormula(*this),
mnCellCount(0)
{
}
+void ScOrcusFormula::reset()
+{
+ mnCol = -1;
+ mnRow = -1;
+ maFormula.clear();
+ meGrammar = formula::FormulaGrammar::GRAM_UNSPECIFIED;
+ mnSharedFormulaIndex = 0;
+ mbShared = false;
+ meResType = ResultType::NotSet;
+ mnResult = 0;
+ mfResult = 0.0;
+}
+
+ScOrcusFormula::ScOrcusFormula( ScOrcusSheet& rSheet ) :
+ mrSheet(rSheet),
+ mnCol(-1),
+ mnRow(-1),
+ meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED),
+ mnSharedFormulaIndex(0),
+ mbShared(false),
+ meResType(ResultType::NotSet),
+ mnResult(0),
+ mfResult(0.0) {}
+
+ScOrcusFormula::~ScOrcusFormula() {}
+
+void ScOrcusFormula::set_position(os::row_t row, os::col_t col)
+{
+ mnCol = col;
+ mnRow = row;
+}
+
+void ScOrcusFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n)
+{
+ maFormula = OUString(p, n, RTL_TEXTENCODING_UTF8);
+ meGrammar = getCalcGrammarFromOrcus(grammar);
+}
+
+void ScOrcusFormula::set_shared_formula_index(size_t index)
+{
+ mnSharedFormulaIndex = index;
+ mbShared = true;
+}
+
+void ScOrcusFormula::set_result_value(double value)
+{
+ meResType = ResultType::Value;
+ mfResult = value;
+}
+
+void ScOrcusFormula::set_result_string(size_t sindex)
+{
+ meResType = ResultType::String;
+ mnResult = sindex;
+}
+
+void ScOrcusFormula::set_result_empty()
+{
+ meResType = ResultType::Empty;
+}
+
+void ScOrcusFormula::set_result_bool(bool value)
+{
+ meResType = ResultType::Value;
+ mfResult = value ? 1.0 : 0.0;
+}
+
+void ScOrcusFormula::commit()
+{
+ ScOrcusFactory& rFactory = mrSheet.getFactory();
+ sc::SharedFormulaGroups& rGroups = mrSheet.getSharedFormulaGroups();
+ ScAddress aPos(mnCol, mnRow, mrSheet.getIndex());
+
+ if (mbShared)
+ {
+ if (maFormula.isEmpty())
+ {
+ // shared formula that references existing formula token.
+ const ScTokenArray* pArray = rGroups.get(mnSharedFormulaIndex);
+ if (!pArray)
+ return;
+ }
+ else
+ {
+ // topmost shared formula with new formula token.
+
+ // Compile the formula expression into tokens.
+ ScCompiler aComp(&mrSheet.getDoc().getDoc(), aPos, meGrammar);
+ ScTokenArray* pArray = aComp.CompileString(maFormula);
+ if (!pArray)
+ // Tokenization failed.
+ return;
+
+ rGroups.set(mnSharedFormulaIndex, pArray);
+ }
+ rFactory.pushSharedFormulaToken(aPos, mnSharedFormulaIndex);
+ }
+ else
+ {
+ // non-shared formula
+ rFactory.pushCellStoreToken(aPos, maFormula, meGrammar);
+ }
+
+ switch (meResType)
+ {
+ case ResultType::String:
+ {
+ const OUString* pStr = rFactory.getString(mnResult);
+ if (pStr)
+ rFactory.pushFormulaResult(aPos, *pStr);
+ break;
+ }
+ case ResultType::Value:
+ rFactory.pushFormulaResult(aPos, mfResult);
+ break;
+ default:
+ ;
+ }
+
+ mrSheet.cellInserted();
+}
+
+void ScOrcusArrayFormula::reset()
+{
+ mnCol = -1;
+ mnRow = -1;
+ mnColRange = 0;
+ mnRowRange = 0;
+
+ maFormula.clear();
+ meGrammar = formula::FormulaGrammar::GRAM_UNSPECIFIED;
+}
+
+ScOrcusArrayFormula::ScOrcusArrayFormula( ScOrcusSheet& rSheet ) :
+ mrSheet(rSheet),
+ mnCol(-1),
+ mnRow(-1),
+ mnColRange(0),
+ mnRowRange(0),
+ meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED) {}
+
+ScOrcusArrayFormula::~ScOrcusArrayFormula() {}
+
+void ScOrcusArrayFormula::set_range(const os::range_t& range)
+{
+ mnCol = range.first.column;
+ mnRow = range.first.row;
+
+ mnColRange = range.last.column - range.first.column + 1;
+ mnRowRange = range.last.row - range.first.column + 1;
+}
+
+void ScOrcusArrayFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n)
+{
+ meGrammar = getCalcGrammarFromOrcus(grammar);
+ maFormula = OUString(p, n, RTL_TEXTENCODING_UTF8);
+}
+
+void ScOrcusArrayFormula::set_result_value(os::row_t /*row*/, os::col_t /*col*/, double /*value*/)
+{
+ // TODO : implement result cache for matrix
+}
+
+void ScOrcusArrayFormula::set_result_string(os::row_t /*row*/, os::col_t /*col*/, size_t /*sindex*/)
+{
+ // TODO : implement result cache for matrix
+}
+
+void ScOrcusArrayFormula::set_result_empty(os::row_t /*row*/, os::col_t /*col*/)
+{
+ // TODO : implement result cache for matrix
+}
+
+void ScOrcusArrayFormula::set_result_bool(os::row_t /*row*/, os::col_t /*col*/, bool /*value*/)
+{
+ // TODO : implement result cache for matrix
+}
+
+void ScOrcusArrayFormula::commit()
+{
+ ScAddress aPos(mnCol, mnRow, mrSheet.getIndex());
+ mrSheet.getFactory().pushMatrixFormulaToken(aPos, maFormula, meGrammar, mnRowRange, mnColRange);
+ mrSheet.cellInserted();
+}
+
void ScOrcusSheet::cellInserted()
{
++mnCellCount;
@@ -830,6 +1027,11 @@ void ScOrcusSheet::cellInserted()
}
}
+ScDocumentImport& ScOrcusSheet::getDoc()
+{
+ return mrDoc;
+}
+
os::iface::import_auto_filter* ScOrcusSheet::get_auto_filter()
{
return &maAutoFilter;
@@ -855,6 +1057,18 @@ os::iface::import_named_expression* ScOrcusSheet::get_named_expression()
return &maNamedExpressions;
}
+os::iface::import_formula* ScOrcusSheet::get_formula()
+{
+ maFormula.reset();
+ return &maFormula;
+}
+
+os::iface::import_array_formula* ScOrcusSheet::get_array_formula()
+{
+ maArrayFormula.reset();
+ return &maArrayFormula;
+}
+
void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n)
{
OUString aVal(p, n, RTL_TEXTENCODING_UTF8);
@@ -921,83 +1135,6 @@ void ScOrcusSheet::set_format(os::row_t row_start, os::col_t col_start,
mrDoc.getDoc().ApplyPatternAreaTab(col_start, row_start, col_end, row_end, mnTab, aPattern);
}
-void ScOrcusSheet::set_formula(
- os::row_t row, os::col_t col, os::formula_grammar_t grammar, const char* p, size_t n)
-{
- OUString aFormula(p, n, RTL_TEXTENCODING_UTF8);
- mrFactory.pushCellStoreToken(
- ScAddress(col, row, mnTab), aFormula, getCalcGrammarFromOrcus(grammar));
- cellInserted();
-}
-
-void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, const char* p, size_t n)
-{
- OUString aResult( p, n, RTL_TEXTENCODING_UTF8);
- mrFactory.pushFormulaResult(ScAddress(col, row, mnTab), aResult);
-}
-
-void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, double val)
-{
- mrFactory.pushFormulaResult(ScAddress(col, row, mnTab), val);
-}
-
-void ScOrcusSheet::set_shared_formula(
- os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex,
- const char* p_formula, size_t n_formula)
-{
- ScAddress aPos(col, row, mnTab);
- OUString aFormula(p_formula, n_formula, RTL_TEXTENCODING_UTF8);
- formula::FormulaGrammar::Grammar eGram = getCalcGrammarFromOrcus(grammar);
-
- // Compile the formula expression into tokens.
- ScCompiler aComp(&mrDoc.getDoc(), aPos, eGram);
- ScTokenArray* pArray = aComp.CompileString(aFormula);
- if (!pArray)
- // Tokenization failed.
- return;
-
- maFormulaGroups.set(sindex, pArray);
-
- mrFactory.pushSharedFormulaToken(aPos, sindex);
- cellInserted();
-}
-
-void ScOrcusSheet::set_shared_formula(
- os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex,
- const char* p_formula, size_t n_formula, const char* /*p_range*/, size_t /*n_range*/)
-{
- set_shared_formula(row, col, grammar, sindex, p_formula, n_formula);
-}
-
-void ScOrcusSheet::set_shared_formula(os::row_t row, os::col_t col, size_t sindex)
-{
- ScAddress aPos(col, row, mnTab);
-
- const ScTokenArray* pArray = maFormulaGroups.get(sindex);
- if (!pArray)
- return;
-
- mrFactory.pushSharedFormulaToken(aPos, sindex);
- cellInserted();
-}
-
-void ScOrcusSheet::set_array_formula(
- os::row_t row, os::col_t col, os::formula_grammar_t grammar,
- const char* p, size_t n, os::row_t array_rows, os::col_t array_cols)
-{
- OUString aFormula(p, n, RTL_TEXTENCODING_UTF8);
- formula::FormulaGrammar::Grammar eGrammar = getCalcGrammarFromOrcus(grammar);
-
- ScAddress aPos(col, row, mnTab);
- mrFactory.pushMatrixFormulaToken(aPos, aFormula, eGrammar, array_rows, array_cols);
-}
-
-void ScOrcusSheet::set_array_formula(
- os::row_t /*row*/, os::col_t /*col*/, os::formula_grammar_t /*grammar*/,
- const char* /*p*/, size_t /*n*/, const char* /*p_range*/, size_t /*n_range*/)
-{
-}
-
orcus::spreadsheet::range_size_t ScOrcusSheet::get_sheet_size() const
{
orcus::spreadsheet::range_size_t ret;
@@ -1012,6 +1149,16 @@ const sc::SharedFormulaGroups& ScOrcusSheet::getSharedFormulaGroups() const
return maFormulaGroups;
}
+sc::SharedFormulaGroups& ScOrcusSheet::getSharedFormulaGroups()
+{
+ return maFormulaGroups;
+}
+
+ScOrcusFactory& ScOrcusSheet::getFactory()
+{
+ return mrFactory;
+}
+
ScOrcusSharedStrings::ScOrcusSharedStrings(ScOrcusFactory& rFactory) :
mrFactory(rFactory) {}
@@ -1087,7 +1234,7 @@ ScOrcusStyles::font::font():
}
ScOrcusStyles::fill::fill():
- maPattern(""),
+ mePattern(orcus::spreadsheet::fill_pattern_t::none),
maFgColor(COL_WHITE),
maBgColor(COL_WHITE),
mbHasFillAttr(false)
@@ -1143,13 +1290,13 @@ void ScOrcusStyles::font::applyToItemSet(SfxItemSet& rSet) const
void ScOrcusStyles::fill::applyToItemSet(SfxItemSet& rSet) const
{
- if (maPattern.equalsIgnoreAsciiCase("none"))
+ if (mePattern == orcus::spreadsheet::fill_pattern_t::none)
{
SAL_INFO("sc.orcus.style", "no fill style");
return;
}
- if (maPattern.equalsIgnoreAsciiCase("solid"))
+ if (mePattern == orcus::spreadsheet::fill_pattern_t::solid)
rSet.Put(SvxBrushItem(maFgColor, ATTR_BACKGROUND));
}
@@ -1575,10 +1722,9 @@ void ScOrcusStyles::set_fill_count(size_t /*n*/)
// needed at all?
}
-void ScOrcusStyles::set_fill_pattern_type(const char* s, size_t n)
+void ScOrcusStyles::set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp)
{
- maCurrentFill.maPattern = OUString(s, n, RTL_TEXTENCODING_UTF8);
- maCurrentFill.mbHasFillAttr = true;
+ maCurrentFill.mePattern = fp;
}
void ScOrcusStyles::set_fill_fg_color(
@@ -1962,12 +2108,12 @@ ScOrcusAutoFilter::~ScOrcusAutoFilter()
{
}
-void ScOrcusAutoFilter::set_range(const char* p_ref, size_t n_ref)
+void ScOrcusAutoFilter::set_range(const orcus::spreadsheet::range_t& range)
{
- OUString aRange(p_ref, n_ref, RTL_TEXTENCODING_UTF8);
- SAL_INFO("sc.orcus.autofilter", "set_range: " << aRange);
-
- maRange.Parse(aRange);
+ maRange.aStart.SetRow(range.first.row);
+ maRange.aStart.SetCol(range.first.column);
+ maRange.aEnd.SetRow(range.last.row);
+ maRange.aEnd.SetCol(range.last.column);
}
void ScOrcusAutoFilter::set_column(orcus::spreadsheet::col_t col)
diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx
index e47b862c2138..5494ddefc434 100644
--- a/sc/source/filter/orcus/xmlcontext.cxx
+++ b/sc/source/filter/orcus/xmlcontext.cxx
@@ -24,6 +24,7 @@
#include <orcus/orcus_xml.hpp>
#include <orcus/global.hpp>
#include <orcus/sax_parser_base.hpp>
+#include <orcus/stream.hpp>
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
#include <comphelper/processfactory.hxx>
@@ -289,7 +290,9 @@ void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam)
}
}
- filter.read_file(path);
+ std::string content = orcus::load_file_content(path);
+ filter.read_stream(content.data(), content.size());
+
aFactory.finalize();
}
catch (const std::exception&)
--
2.17.1

@ -1,74 +0,0 @@
From 23a8d5ffbbe58761b89f590f0735abccd69a3681 Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Fri, 11 Jan 2019 17:40:17 +0100
Subject: [PATCH] Upgrade external/boost to Boost 1.69.0
<https://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2> is a copy of
<https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.bz2>,
SHA256 hash as given at <https://www.boost.org/users/download/>.
* removed from external/boost/include/boost/ those files that are no longer
present in workdir/UnpackedTarball/boost/boost/
* the shrunk external/boost/rtti.patch.0 can probably be removed completely in a
follow-up commit
* the patch to libs/filesystem/src/operations.cpp in
external/boost/boost-android-unified.patch.1 no longer applied, and appears to
be no longer necessary anyway (seeing a working build without it of
--with-distro=LibreOfficeAndroid and NDK r16b); but with the non-standard
Clang 5.0.300080 from NDK r16b, the build now caused failures like
> workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:36:11: error: class template partial specialization contains a template parameter that cannot be deduced; this partial specialization will never be used [-Wunusable-partial-specialization]
> struct is_function<Ret BOOST_TT_DEF_CALL(Args...)BOOST_TT_NOEXCEPT_DECL> : public true_type {};
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:35:38: note: non-deducible template parameter 'NE'
> template <class Ret, class...Args BOOST_TT_NOEXCEPT_PARAM>
> ^
> workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:22:40: note: expanded from macro 'BOOST_TT_NOEXCEPT_PARAM'
> #define BOOST_TT_NOEXCEPT_PARAM , bool NE
> ^
showing that that version of Clang has the same problem handling noexcept(b)
as a deduced template parameter as MSVC has, as already supported by the code
* new external/boost/sse.patch.0 needed on Windows x86 to silence errors like
> C:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\UnpackedTarball\boost\boost/type_traits/detail/is_function_cxx_11.hpp(111): error C2215: '__vectorcall' cannot be used with '/arch:SSE'
(<https://ci.libreoffice.org/job/gerrit_windows/26117/>); according to
<https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros
?view=vs-2017>: "_M_IX86_FP Defined as an integer literal value that indicates
the /arch compiler option that was set, or the default. This macro is always
defined when the compilation target is an x86 processor. Otherwise, undefined.
When defined, the value is: [...] 1 if the /arch:SSE compiler option was set."
and we specify /arch:SSE explicitly for Windows x86 since
8bd6bf93b7711a7ac7c5cbd7c3bb980481570ebd "fdo#82430: configure: MSVC build:
avoid using SSE2 instructions"
* boost::logic::tribool conversion operator to bool is explicit now
Change-Id: Iea49560d734f545539f062dce46740fbf812dd84
Reviewed-on: https://gerrit.libreoffice.org/66189
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
---
sfx2/source/appl/shutdownicon.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index a24e254c7948..65c73de125d9 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -144,7 +144,7 @@ bool LoadModule()
#endif // ENABLE_QUICKSTART_APPLET
}
assert(!boost::logic::indeterminate(loaded));
- return loaded;
+ return bool(loaded);
}
}
--
2.20.1

@ -1,73 +0,0 @@
From 08755c7f3c285576ba29fe8dd875b18d0792de39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Tue, 4 Dec 2018 13:01:14 +0000
Subject: [PATCH] tdf#121855 like osx case don't search near-infinite calc grid
for focus
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: Ie6bccd2781fbbdc5f4d5dc2eb6903191aafe8265
Reviewed-on: https://gerrit.libreoffice.org/64520
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit cd0c794a6cfaf9c008682596d2cdae6aa57c8bbf)
---
vcl/osx/a11ywrapper.mm | 2 +-
vcl/unx/gtk/gtksalframe.cxx | 7 +++++++
vcl/unx/gtk3/gtk3gtkframe.cxx | 7 +++++++
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm
index 67e155e81e53..b35a1d22745d 100644
--- a/vcl/osx/a11ywrapper.mm
+++ b/vcl/osx/a11ywrapper.mm
@@ -992,7 +992,7 @@ Reference < XAccessibleContext > hitTestRunner ( css::awt::Point point,
bool bSafeToIterate = true;
sal_Int32 nCount = rxAccessibleContext -> getAccessibleChildCount();
- if ( nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */ )
+ if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */)
bSafeToIterate = false;
else { // manages descendants is an horror from the a11y standards guys.
Reference< XAccessibleStateSet > xStateSet;
diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx
index 16e716b16daa..56cb33520443 100644
--- a/vcl/unx/gtk/gtksalframe.cxx
+++ b/vcl/unx/gtk/gtksalframe.cxx
@@ -3666,6 +3666,13 @@ uno::Reference<accessibility::XAccessibleEditableText>
}
}
+ bool bSafeToIterate = true;
+ sal_Int32 nCount = xContext->getAccessibleChildCount();
+ if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */)
+ bSafeToIterate = false;
+ if (!bSafeToIterate)
+ return uno::Reference< accessibility::XAccessibleEditableText >();
+
for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i)
{
uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i);
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 71ab50efc813..95e616473608 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -4213,6 +4213,13 @@ uno::Reference<accessibility::XAccessibleEditableText>
}
}
+ bool bSafeToIterate = true;
+ sal_Int32 nCount = xContext->getAccessibleChildCount();
+ if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */)
+ bSafeToIterate = false;
+ if (!bSafeToIterate)
+ return uno::Reference< accessibility::XAccessibleEditableText >();
+
for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i)
{
uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i);
--
2.19.2

@ -3,7 +3,7 @@
%global _python_bytecompile_extra 1 %global _python_bytecompile_extra 1
# download path contains version without the last (fourth) digit # download path contains version without the last (fourth) digit
%global libo_version 6.1.4 %global libo_version 6.2.0
# Should contain .alphaX / .betaX, if this is pre-release (actually # Should contain .alphaX / .betaX, if this is pre-release (actually
# pre-RC) version. The pre-release string is part of tarball file names, # pre-RC) version. The pre-release string is part of tarball file names,
# so we need a way to define it easily at one place. # so we need a way to define it easily at one place.
@ -53,8 +53,8 @@
Summary: Free Software Productivity Suite Summary: Free Software Productivity Suite
Name: libreoffice Name: libreoffice
Epoch: 1 Epoch: 1
Version: %{libo_version}.2 Version: %{libo_version}.3
Release: 5%{?libo_prerelease}%{?dist} Release: 1%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0 License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0
URL: http://www.libreoffice.org/ URL: http://www.libreoffice.org/
@ -236,12 +236,7 @@ Patch0: 0001-don-t-suppress-crashes.patch
# not upstreamed # not upstreamed
Patch1: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch Patch1: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch
# not upstreamed # not upstreamed
Patch2: 0001-Update-mdds-to-1.4.1.patch Patch2: 0001-Upgrade-external-boost-to-Boost-1.69.0.patch
Patch3: 0001-Update-orcus-to-0.14.0.patch
Patch4: 0001-tdf-121855-like-osx-case-don-t-search-near-infinite-.patch
Patch5: 0001-Fix-build-with-poppler-0.73.0.patch
Patch6: 0001-Upgrade-external-boost-to-Boost-1.69.0.patch
Patch7: 0001-Resolves-tdf-105602-fix-extended-help-for-non-dispat.patch
%if 0%{?rhel} %if 0%{?rhel}
# not upstreamed # not upstreamed
@ -2174,6 +2169,9 @@ done
%{_includedir}/LibreOfficeKit %{_includedir}/LibreOfficeKit
%changelog %changelog
* Thu Feb 07 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.0.3-1
- latest version
* Fri Feb 01 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.1.4.2-5 * Fri Feb 01 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.1.4.2-5
- Resolves: rhbz#1671340 extended tooltips not working in impress navigator - Resolves: rhbz#1671340 extended tooltips not working in impress navigator

@ -5,9 +5,9 @@ SHA512 (185d60944ea767075d27247c3162b3bc-unowinreg.dll) = 854b8ae29b57b40ba6bb6f
SHA512 (a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip) = 2d3835f7ac356805025cafedcad97faa48d0f5da386e6ac7b7451030059df8e2fdb0861ade07a576ebf9fb5b88a973585ab0437944b06aac9289d6898ba8586a SHA512 (a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip) = 2d3835f7ac356805025cafedcad97faa48d0f5da386e6ac7b7451030059df8e2fdb0861ade07a576ebf9fb5b88a973585ab0437944b06aac9289d6898ba8586a
SHA512 (0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz) = b9c02d63e9b47a838dbe67c05b9e9e4983d13b9d74794e1c30c73d341c3bc905c9edec3a72fa339ae8c0e06d97e69ac2ea23bf51336b77af14cab7ae67721a46 SHA512 (0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz) = b9c02d63e9b47a838dbe67c05b9e9e4983d13b9d74794e1c30c73d341c3bc905c9edec3a72fa339ae8c0e06d97e69ac2ea23bf51336b77af14cab7ae67721a46
SHA512 (libreoffice-multiliblauncher.sh) = db532afdf5000bc66f9e02c7d0ab586468466f63f8f0bdb204832581e8277c5c59f688fa096548d642411cb8c46e8de4a744676b4e624c075262cfd6945138cd SHA512 (libreoffice-multiliblauncher.sh) = db532afdf5000bc66f9e02c7d0ab586468466f63f8f0bdb204832581e8277c5c59f688fa096548d642411cb8c46e8de4a744676b4e624c075262cfd6945138cd
SHA512 (libreoffice-6.1.4.2.tar.xz) = ba81b7744b908f9fe67a83e72c17c08b3b2e99599a5fd4f9cc1f2d81b3fd0ddb8065ae466205f85185ab9420350cea0b2d60108df3e583b74bd1fcd9e4eb0c3c SHA512 (libreoffice-6.2.0.3.tar.xz) = 991cab829c88010b5df0c40e6422fd725f7854d256cfa7ffcf595549ccc49aeebe135513b56c5ccdc810ea07b8df186004a3d9e5d84b5d69992996158166d0c1
SHA512 (libreoffice-6.1.4.2.tar.xz.asc) = 4e1c45211ea654cb12ce2a4accd4c49e8f7fef5e2f99e018fd69514566cd1117432c8f868e0d5c32dd570935d23a9709cfdafaa67c1b47837def28bc80d10ae7 SHA512 (libreoffice-6.2.0.3.tar.xz.asc) = e66a1d018f02250106a473693ac4b4b643438087c686f00a63c4876266a678ecee6624575964110ff9c9226c5de5660b1c242322ece09d66d5d36644961ea16b
SHA512 (libreoffice-help-6.1.4.2.tar.xz) = e24f2f6795856da62f77ebfdcfedc8190b8ecef74e395fc263f0cab4a27c0fe3d95f37665747a590fc7a6a93c6c3473a2a4501c50d415cc602f85838955fe9ab SHA512 (libreoffice-help-6.2.0.3.tar.xz) = 7b1c7949ede3fdd6dcc09fd38b62f17d68c5f79e75fb72cedb9d55889d8d8cf261d6614aa5e2e3eae3e26764b2cdb0e4344bef25851daef6041ac3935ad64fb1
SHA512 (libreoffice-help-6.1.4.2.tar.xz.asc) = 8817ef14327998cd8b32bfe6f404388aa6a5da693fa2f5805c5ec251ddff4fc825c900ea14bc2c5663702891686ef28074d07699802cef82731d0ae7f2b39c4a SHA512 (libreoffice-help-6.2.0.3.tar.xz.asc) = 7962ec4216991ca42a0774af0c51003ce9700a299554f2b49b5c8d559f11c13bab3b516631ddc45b2d074f5153fa81fdbfe6872f1b871f8d7c069d47e4ddff60
SHA512 (libreoffice-translations-6.1.4.2.tar.xz) = 6a07c4fd1388c2b84905ea16fe9a512301519a1579fbd3c8097cea6a9c6ff6109a659bf6d2e61cb7abff3a72b80dfa0388576e94fdd5a6280e1e10ea3bbf31aa SHA512 (libreoffice-translations-6.2.0.3.tar.xz) = c1431ec79e14818cdc5f536eb8f92ab88aba3d22e6c87a15ad1755daf3a14fdc06dba16ce69791c6dd6fade779db775e38709001f5aba639ff6c8368c539db7d
SHA512 (libreoffice-translations-6.1.4.2.tar.xz.asc) = ed4c972ac3585d4695b0aa9276c65f9f94194578de7baf09ed82a50c7fd296afccd50fb5706e5caf3d2d81d999ca6023eb44404096107a6bfbc6e32d94254502 SHA512 (libreoffice-translations-6.2.0.3.tar.xz.asc) = f3d06ddefbdbdcae29ca255e0c94b7860d366163ced6cda417e98f00dfbae6447ffed8cef64ae447a57e182ea3714b3e931c820997f5b35ca81e02b4d51ad98f

Loading…
Cancel
Save