Accepting request 694222 from LibreOffice:Factory
- Update to 6.2.3.2: * Bugfix release 6.2.3 - Remove merged patches: * old-boost.patch * libreoffice-postgresql.patch * 0001-Fix-LTO-segfault-in-libtest_sw_uwriter-test.patch * boost_169.patch * kde5.patch * old-icu.patch OBS-URL: https://build.opensuse.org/request/show/694222 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=178
This commit is contained in:
commit
0e37f13a43
@ -1,42 +0,0 @@
|
|||||||
From a1cd2b69ed7af0b9a07a099c38f7854b4b43d6be Mon Sep 17 00:00:00 2001
|
|
||||||
From: marxin <mliska@suse.cz>
|
|
||||||
Date: Thu, 7 Mar 2019 09:28:14 +0100
|
|
||||||
Subject: [PATCH] Fix LTO segfault in libtest_sw_uwriter test.
|
|
||||||
|
|
||||||
The problem was seen here:
|
|
||||||
https://bugzilla.suse.com/show_bug.cgi?id=1127857.
|
|
||||||
|
|
||||||
One needs to call SwGlobals::ensure in order to initialize
|
|
||||||
SfxApplication via SfxApplication::SetModule(SfxToolsModule::Writer.
|
|
||||||
|
|
||||||
Change-Id: I3add24b56dc44a93ad81c1b52539da821f6244fc
|
|
||||||
---
|
|
||||||
sw/qa/core/test_ToxTextGenerator.cxx | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/sw/qa/core/test_ToxTextGenerator.cxx b/sw/qa/core/test_ToxTextGenerator.cxx
|
|
||||||
index 25304a382ed3..ffe76233282e 100644
|
|
||||||
--- a/sw/qa/core/test_ToxTextGenerator.cxx
|
|
||||||
+++ b/sw/qa/core/test_ToxTextGenerator.cxx
|
|
||||||
@@ -22,10 +22,17 @@
|
|
||||||
#include <cppunit/extensions/HelperMacros.h>
|
|
||||||
#include <cppunit/plugin/TestPlugIn.h>
|
|
||||||
|
|
||||||
+#include <swdll.hxx>
|
|
||||||
+
|
|
||||||
using namespace sw;
|
|
||||||
|
|
||||||
class ToxTextGeneratorTest : public CppUnit::TestFixture {
|
|
||||||
public:
|
|
||||||
+ virtual void setUp() override
|
|
||||||
+ {
|
|
||||||
+ SwGlobals::ensure();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
void EmptyStringIsReturnedForPageNumberPlaceholderOfZeroItems();
|
|
||||||
void OneAtSignIsReturnedForPageNumberPlaceholderOfOneItem();
|
|
||||||
void TwoAtSignsAreReturnedForPageNumberPlaceholderOfOneItem();
|
|
||||||
--
|
|
||||||
2.21.0
|
|
||||||
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
Index: libreoffice-6.2.1.2/sfx2/source/appl/shutdownicon.cxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.1.2.orig/sfx2/source/appl/shutdownicon.cxx
|
|
||||||
+++ libreoffice-6.2.1.2/sfx2/source/appl/shutdownicon.cxx
|
|
||||||
@@ -143,7 +143,7 @@ bool LoadModule()
|
|
||||||
#endif // ENABLE_QUICKSTART_APPLET
|
|
||||||
}
|
|
||||||
assert(!boost::logic::indeterminate(loaded));
|
|
||||||
- return loaded;
|
|
||||||
+ return (bool)loaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
350
kde5.patch
350
kde5.patch
@ -1,350 +0,0 @@
|
|||||||
From 265caa4381c048c346c907b017561ab0fe0367ff Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Stahl <Michael.Stahl@cib.de>
|
|
||||||
Date: Fri, 22 Feb 2019 19:19:27 +0100
|
|
||||||
Subject: [PATCH] tdf#119856 vcl: Qt5/KDE5 RunInMainThread
|
|
||||||
|
|
||||||
The problem with the current approach of transferring calls to the main
|
|
||||||
thread with Q_EMIT signals is that if the code that should run in the
|
|
||||||
main thread needs SolarMutex, then the non-main-thread must use
|
|
||||||
SolarMutexReleaser - but then the main thread will run not only the call
|
|
||||||
that is needed right now, but will potentially process all pending
|
|
||||||
events, and the other thread hasn't prepared for that.
|
|
||||||
|
|
||||||
We need the inter-thread feature of Qt::BlockingQueuedConnection and the
|
|
||||||
non-queued feature of Qt::DirectConnection, but this combination doesn't
|
|
||||||
appear to exist.
|
|
||||||
|
|
||||||
So the SolarMutexReleaser needs to go - but then the main thread does
|
|
||||||
need SolarMutex for some things, and hence we need to trick it into
|
|
||||||
believing it has SolarMutex with the m_bNoYieldLock hack.
|
|
||||||
|
|
||||||
Then it becomes apparent that the main thread may be blocked on either
|
|
||||||
Qt events, which is fine, or on the SalYieldMutex's m_aMutex, which will
|
|
||||||
never be released now.
|
|
||||||
|
|
||||||
So the main thread must never block on m_aMutex; the alternative is to
|
|
||||||
use the same approach as the osx code (and, in a somewhat different
|
|
||||||
form, the svp code), and add some condition variables on which the main
|
|
||||||
thread can block if it fails to acquire the m_aMutex immediately.
|
|
||||||
|
|
||||||
It's even possible to do this in a somewhat generic way with lambdas.
|
|
||||||
|
|
||||||
This does appear to work, but it makes the Q_EMIT approach entirely
|
|
||||||
untenable, because now the main thread will be blocked on the condition
|
|
||||||
variable and the non-main-thread will be blocked until the Qt event is
|
|
||||||
processed.
|
|
||||||
|
|
||||||
Change-Id: I6480a6b909d5ec8814b2ff10dbefb0f3686a83c7
|
|
||||||
Reviewed-on: https://gerrit.libreoffice.org/68232
|
|
||||||
Tested-by: Jenkins
|
|
||||||
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
|
|
||||||
---
|
|
||||||
vcl/inc/qt5/Qt5Instance.hxx | 7 +-
|
|
||||||
vcl/qt5/Qt5Instance.cxx | 175 ++++++++++++++++++++++++++++---
|
|
||||||
vcl/unx/kde5/KDE5SalInstance.cxx | 23 ++--
|
|
||||||
vcl/unx/kde5/KDE5SalInstance.hxx | 8 +-
|
|
||||||
4 files changed, 181 insertions(+), 32 deletions(-)
|
|
||||||
|
|
||||||
Index: libreoffice-6.2.2.1/vcl/inc/qt5/Qt5Instance.hxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/vcl/inc/qt5/Qt5Instance.hxx
|
|
||||||
+++ libreoffice-6.2.2.1/vcl/inc/qt5/Qt5Instance.hxx
|
|
||||||
@@ -27,6 +27,8 @@
|
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
|
||||||
|
|
||||||
+#include <functional>
|
|
||||||
+
|
|
||||||
class QApplication;
|
|
||||||
class SalYieldMutex;
|
|
||||||
class SalFrame;
|
|
||||||
@@ -50,15 +52,18 @@ public:
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
|
||||||
bool ImplYield(bool bWait, bool bHandleAllCurrentEvents);
|
|
||||||
+ void ImplRunInMain();
|
|
||||||
|
|
||||||
Q_SIGNALS:
|
|
||||||
bool ImplYieldSignal(bool bWait, bool bHandleAllCurrentEvents);
|
|
||||||
- std::unique_ptr<SalMenu> createMenuSignal(bool, Menu*);
|
|
||||||
+ void ImplRunInMainSignal();
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit Qt5Instance(bool bUseCairo = false);
|
|
||||||
virtual ~Qt5Instance() override;
|
|
||||||
|
|
||||||
+ void RunInMainThread(std::function<void()> func);
|
|
||||||
+
|
|
||||||
virtual SalFrame* CreateFrame(SalFrame* pParent, SalFrameStyleFlags nStyle) override;
|
|
||||||
virtual SalFrame* CreateChildFrame(SystemParentData* pParent,
|
|
||||||
SalFrameStyleFlags nStyle) override;
|
|
||||||
Index: libreoffice-6.2.2.1/vcl/qt5/Qt5Instance.cxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/vcl/qt5/Qt5Instance.cxx
|
|
||||||
+++ libreoffice-6.2.2.1/vcl/qt5/Qt5Instance.cxx
|
|
||||||
@@ -43,13 +43,165 @@
|
|
||||||
#include <QtWidgets/QWidget>
|
|
||||||
|
|
||||||
#include <vclpluginapi.h>
|
|
||||||
+#include <tools/debug.hxx>
|
|
||||||
+#include <comphelper/flagguard.hxx>
|
|
||||||
#include <sal/log.hxx>
|
|
||||||
#include <osl/process.h>
|
|
||||||
|
|
||||||
#include <headless/svpbmp.hxx>
|
|
||||||
|
|
||||||
+#include <mutex>
|
|
||||||
+#include <condition_variable>
|
|
||||||
+
|
|
||||||
+/// TODO: not much Qt5 specific here? could be generalised, esp. for OSX...
|
|
||||||
+/// this subclass allows for the transfer of a closure for running on the main
|
|
||||||
+/// thread, to handle all the thread affine stuff in Qt5; the SolarMutex is
|
|
||||||
+/// "loaned" to the main thread for the execution of the closure.
|
|
||||||
+/// @note it doesn't work to just use "emit" and signals/slots to move calls to
|
|
||||||
+/// the main thread, because the other thread has the SolarMutex; the other
|
|
||||||
+/// thread (typically) cannot release SolarMutex, because then the main thread
|
|
||||||
+/// will handle all sorts of events and whatnot; this design ensures that the
|
|
||||||
+/// main thread only runs the passed closure (unless the closure releases
|
|
||||||
+/// SolarMutex itself, which should probably be avoided).
|
|
||||||
+class Qt5YieldMutex : public SalYieldMutex
|
|
||||||
+{
|
|
||||||
+public:
|
|
||||||
+ /// flag only accessed on main thread:
|
|
||||||
+ /// main thread has "borrowed" SolarMutex from another thread
|
|
||||||
+ bool m_bNoYieldLock = false;
|
|
||||||
+ /// members for communication from non-main thread to main thread
|
|
||||||
+ std::mutex m_RunInMainMutex;
|
|
||||||
+ std::condition_variable m_InMainCondition;
|
|
||||||
+ bool m_isWakeUpMain = false;
|
|
||||||
+ std::function<void()> m_Closure; ///< code for main thread to run
|
|
||||||
+ /// members for communication from main thread to non-main thread
|
|
||||||
+ std::condition_variable m_ResultCondition;
|
|
||||||
+ bool m_isResultReady = false;
|
|
||||||
+
|
|
||||||
+ virtual bool IsCurrentThread() const override;
|
|
||||||
+ virtual void doAcquire(sal_uInt32 nLockCount) override;
|
|
||||||
+ virtual sal_uInt32 doRelease(bool const bUnlockAll) override;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+bool Qt5YieldMutex::IsCurrentThread() const
|
|
||||||
+{
|
|
||||||
+ auto const* pSalInst(static_cast<Qt5Instance const*>(GetSalData()->m_pInstance));
|
|
||||||
+ assert(pSalInst);
|
|
||||||
+ if (pSalInst->IsMainThread() && m_bNoYieldLock)
|
|
||||||
+ {
|
|
||||||
+ return true; // main thread has borrowed SolarMutex
|
|
||||||
+ }
|
|
||||||
+ return SalYieldMutex::IsCurrentThread();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void Qt5YieldMutex::doAcquire(sal_uInt32 nLockCount)
|
|
||||||
+{
|
|
||||||
+ auto const* pSalInst(static_cast<Qt5Instance const*>(GetSalData()->m_pInstance));
|
|
||||||
+ assert(pSalInst);
|
|
||||||
+ if (!pSalInst->IsMainThread())
|
|
||||||
+ {
|
|
||||||
+ SalYieldMutex::doAcquire(nLockCount);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ if (m_bNoYieldLock)
|
|
||||||
+ {
|
|
||||||
+ return; // special case for main thread: borrowed from other thread
|
|
||||||
+ }
|
|
||||||
+ do // main thread acquire...
|
|
||||||
+ {
|
|
||||||
+ std::function<void()> func; // copy of closure on thread stack
|
|
||||||
+ {
|
|
||||||
+ std::unique_lock<std::mutex> g(m_RunInMainMutex);
|
|
||||||
+ if (m_aMutex.tryToAcquire())
|
|
||||||
+ {
|
|
||||||
+ // if there's a closure, the other thread holds m_aMutex
|
|
||||||
+ assert(!m_Closure);
|
|
||||||
+ m_isWakeUpMain = false;
|
|
||||||
+ --nLockCount; // have acquired once!
|
|
||||||
+ ++m_nCount;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ m_InMainCondition.wait(g, [this]() { return m_isWakeUpMain; });
|
|
||||||
+ m_isWakeUpMain = false;
|
|
||||||
+ std::swap(func, m_Closure);
|
|
||||||
+ }
|
|
||||||
+ if (func)
|
|
||||||
+ {
|
|
||||||
+ assert(!m_bNoYieldLock);
|
|
||||||
+ m_bNoYieldLock = true; // execute closure with borrowed SolarMutex
|
|
||||||
+ func();
|
|
||||||
+ m_bNoYieldLock = false;
|
|
||||||
+ std::unique_lock<std::mutex> g(m_RunInMainMutex);
|
|
||||||
+ assert(!m_isResultReady);
|
|
||||||
+ m_isResultReady = true;
|
|
||||||
+ m_ResultCondition.notify_all(); // unblock other thread
|
|
||||||
+ }
|
|
||||||
+ } while (true);
|
|
||||||
+ SalYieldMutex::doAcquire(nLockCount);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+sal_uInt32 Qt5YieldMutex::doRelease(bool const bUnlockAll)
|
|
||||||
+{
|
|
||||||
+ auto const* pSalInst(static_cast<Qt5Instance const*>(GetSalData()->m_pInstance));
|
|
||||||
+ assert(pSalInst);
|
|
||||||
+ if (pSalInst->IsMainThread() && m_bNoYieldLock)
|
|
||||||
+ {
|
|
||||||
+ return 1; // dummy value
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ std::unique_lock<std::mutex> g(m_RunInMainMutex);
|
|
||||||
+ // read m_nCount before doRelease (it's guarded by m_aMutex)
|
|
||||||
+ bool const isReleased(bUnlockAll || m_nCount == 1);
|
|
||||||
+ sal_uInt32 nCount = SalYieldMutex::doRelease(bUnlockAll);
|
|
||||||
+ if (isReleased && !pSalInst->IsMainThread())
|
|
||||||
+ {
|
|
||||||
+ m_isWakeUpMain = true;
|
|
||||||
+ m_InMainCondition.notify_all(); // unblock main thread
|
|
||||||
+ }
|
|
||||||
+ return nCount;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+// this could be abstracted to be independent of Qt5 by passing in the
|
|
||||||
+// event-trigger as another function parameter...
|
|
||||||
+// it could also be a template of the return type, then it could return the
|
|
||||||
+// result of func... but then how to handle the result in doAcquire?
|
|
||||||
+void Qt5Instance::RunInMainThread(std::function<void()> func)
|
|
||||||
+{
|
|
||||||
+ DBG_TESTSOLARMUTEX();
|
|
||||||
+ if (IsMainThread())
|
|
||||||
+ {
|
|
||||||
+ func();
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ Qt5YieldMutex* const pMutex(static_cast<Qt5YieldMutex*>(GetYieldMutex()));
|
|
||||||
+ {
|
|
||||||
+ std::unique_lock<std::mutex> g(pMutex->m_RunInMainMutex);
|
|
||||||
+ assert(!pMutex->m_Closure);
|
|
||||||
+ pMutex->m_Closure = func;
|
|
||||||
+ // unblock main thread in case it is blocked on condition
|
|
||||||
+ pMutex->m_isWakeUpMain = true;
|
|
||||||
+ pMutex->m_InMainCondition.notify_all();
|
|
||||||
+ }
|
|
||||||
+ // wake up main thread in case it is blocked on event queue
|
|
||||||
+ // TriggerUserEventProcessing() appears to be insufficient in case the
|
|
||||||
+ // main thread does QEventLoop::WaitForMoreEvents
|
|
||||||
+ Q_EMIT ImplRunInMainSignal();
|
|
||||||
+ {
|
|
||||||
+ std::unique_lock<std::mutex> g(pMutex->m_RunInMainMutex);
|
|
||||||
+ pMutex->m_ResultCondition.wait(g, [pMutex]() { return pMutex->m_isResultReady; });
|
|
||||||
+ pMutex->m_isResultReady = false;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void Qt5Instance::ImplRunInMain()
|
|
||||||
+{
|
|
||||||
+ SolarMutexGuard g; // trigger the dispatch code in Qt5YieldMutex::doAcquire
|
|
||||||
+ (void)this; // suppress unhelpful [loplugin:staticmethods]; can't be static
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
Qt5Instance::Qt5Instance(bool bUseCairo)
|
|
||||||
- : SalGenericInstance(o3tl::make_unique<SalYieldMutex>())
|
|
||||||
+ : SalGenericInstance(o3tl::make_unique<Qt5YieldMutex>())
|
|
||||||
, m_postUserEventId(-1)
|
|
||||||
, m_bUseCairo(bUseCairo)
|
|
||||||
{
|
|
||||||
@@ -65,8 +217,8 @@ Qt5Instance::Qt5Instance(bool bUseCairo)
|
|
||||||
// is processed before the thread emitting the signal continues
|
|
||||||
connect(this, SIGNAL(ImplYieldSignal(bool, bool)), this, SLOT(ImplYield(bool, bool)),
|
|
||||||
Qt::BlockingQueuedConnection);
|
|
||||||
- connect(this, &Qt5Instance::createMenuSignal, this, &Qt5Instance::CreateMenu,
|
|
||||||
- Qt::BlockingQueuedConnection);
|
|
||||||
+ connect(this, &Qt5Instance::ImplRunInMainSignal, this, &Qt5Instance::ImplRunInMain,
|
|
||||||
+ Qt::QueuedConnection); // no Blocking!
|
|
||||||
}
|
|
||||||
|
|
||||||
Qt5Instance::~Qt5Instance()
|
|
||||||
@@ -136,15 +288,14 @@ Qt5Instance::CreateVirtualDevice(SalGrap
|
|
||||||
|
|
||||||
std::unique_ptr<SalMenu> Qt5Instance::CreateMenu(bool bMenuBar, Menu* pVCLMenu)
|
|
||||||
{
|
|
||||||
- if (qApp->thread() != QThread::currentThread())
|
|
||||||
- {
|
|
||||||
- SolarMutexReleaser aReleaser;
|
|
||||||
- return Q_EMIT createMenuSignal(bMenuBar, pVCLMenu);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- Qt5Menu* pSalMenu = new Qt5Menu(bMenuBar);
|
|
||||||
- pSalMenu->SetMenu(pVCLMenu);
|
|
||||||
- return std::unique_ptr<SalMenu>(pSalMenu);
|
|
||||||
+ std::unique_ptr<SalMenu> pRet;
|
|
||||||
+ RunInMainThread([&pRet, bMenuBar, pVCLMenu]() {
|
|
||||||
+ Qt5Menu* pSalMenu = new Qt5Menu(bMenuBar);
|
|
||||||
+ pRet.reset(pSalMenu);
|
|
||||||
+ pSalMenu->SetMenu(pVCLMenu);
|
|
||||||
+ });
|
|
||||||
+ assert(pRet);
|
|
||||||
+ return pRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<SalMenuItem> Qt5Instance::CreateMenuItem(const SalItemParams& rItemData)
|
|
||||||
Index: libreoffice-6.2.2.1/vcl/unx/kde5/KDE5SalInstance.cxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/vcl/unx/kde5/KDE5SalInstance.cxx
|
|
||||||
+++ libreoffice-6.2.2.1/vcl/unx/kde5/KDE5SalInstance.cxx
|
|
||||||
@@ -46,21 +46,16 @@ KDE5SalInstance::KDE5SalInstance()
|
|
||||||
pSVData->maAppData.mxToolkitName = OUString("kde5");
|
|
||||||
|
|
||||||
KDE5SalData::initNWF();
|
|
||||||
-
|
|
||||||
- connect(this, &KDE5SalInstance::createFrameSignal, this, &KDE5SalInstance::CreateFrame,
|
|
||||||
- Qt::BlockingQueuedConnection);
|
|
||||||
- connect(this, &KDE5SalInstance::createFilePickerSignal, this,
|
|
||||||
- &KDE5SalInstance::createFilePicker, Qt::BlockingQueuedConnection);
|
|
||||||
}
|
|
||||||
|
|
||||||
SalFrame* KDE5SalInstance::CreateFrame(SalFrame* pParent, SalFrameStyleFlags nState)
|
|
||||||
{
|
|
||||||
- if (!IsMainThread())
|
|
||||||
- {
|
|
||||||
- SolarMutexReleaser aReleaser;
|
|
||||||
- return Q_EMIT createFrameSignal(pParent, nState);
|
|
||||||
- }
|
|
||||||
- return new KDE5SalFrame(static_cast<KDE5SalFrame*>(pParent), nState, true);
|
|
||||||
+ SalFrame* pRet(nullptr);
|
|
||||||
+ RunInMainThread([&pRet, pParent, nState]() {
|
|
||||||
+ pRet = new KDE5SalFrame(static_cast<KDE5SalFrame*>(pParent), nState, true);
|
|
||||||
+ });
|
|
||||||
+ assert(pRet);
|
|
||||||
+ return pRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
uno::Reference<ui::dialogs::XFilePicker2>
|
|
||||||
@@ -68,7 +63,11 @@ KDE5SalInstance::createFilePicker(const
|
|
||||||
{
|
|
||||||
if (!IsMainThread())
|
|
||||||
{
|
|
||||||
- return Q_EMIT createFilePickerSignal(xMSF);
|
|
||||||
+ uno::Reference<ui::dialogs::XFilePicker2> xRet;
|
|
||||||
+ RunInMainThread(
|
|
||||||
+ [&xRet, this, xMSF]() { xRet = this->createFilePicker(xMSF); });
|
|
||||||
+ assert(xRet);
|
|
||||||
+ return xRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
// In order to insert custom controls, KDE5FilePicker currently relies on KFileWidget
|
|
||||||
Index: libreoffice-6.2.2.1/vcl/unx/kde5/KDE5SalInstance.hxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/vcl/unx/kde5/KDE5SalInstance.hxx
|
|
||||||
+++ libreoffice-6.2.2.1/vcl/unx/kde5/KDE5SalInstance.hxx
|
|
||||||
@@ -42,13 +42,7 @@ public:
|
|
||||||
|
|
||||||
virtual bool IsMainThread() const override;
|
|
||||||
|
|
||||||
-Q_SIGNALS:
|
|
||||||
- SalFrame* createFrameSignal(SalFrame* pParent, SalFrameStyleFlags nStyle);
|
|
||||||
-
|
|
||||||
- css::uno::Reference<css::ui::dialogs::XFilePicker2>
|
|
||||||
- createFilePickerSignal(const css::uno::Reference<css::uno::XComponentContext>&);
|
|
||||||
-
|
|
||||||
-private Q_SLOTS:
|
|
||||||
+private:
|
|
||||||
virtual SalFrame* CreateFrame(SalFrame* pParent, SalFrameStyleFlags nStyle) override;
|
|
||||||
|
|
||||||
virtual css::uno::Reference<css::ui::dialogs::XFilePicker2>
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b83ad3a8aa7bebf34db9e984d518a8f2248ed685e04be8373cfa87bb04e31f69
|
|
||||||
size 214029032
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAlyMCLQACgkQ9DSh76/u
|
|
||||||
rqPa6w//fQXFAkUgOqDprN/wO07NIpDj5o3dONHdUk1o7cVZ9jV9SDxaKJ/+CDdW
|
|
||||||
+d7e5fkVZXo6JRul3sG9ovszpF7D09Af8C4RKGaarEj0oK4TurKaW58J+0jnOGRG
|
|
||||||
IRZITZwN68hSu1pwINOso6aSctCd6RYEkUZjb7ZA25c00kQpNhFr/pIDl2hG6tm6
|
|
||||||
V9KH/j1Cc/gYEWKt8cag8ByVCeUwNfFRhjvmBS6f2ms26D/mMVMypKyI2UcgMZE3
|
|
||||||
kcd5Q0C5JIf9AQhzWrPTrFoZq5CH9Axlfb9r5EFhj1vt0aw0gqQmNXfi/iZIPbyC
|
|
||||||
KrGh8GRiJmu0aOinEF1TXDuzBX9VX93yBUCcxF1vEniF+esGeq+Mqb5rPyvD047e
|
|
||||||
uK67/GEnG86j2ewDJHgHr/rteQCP09kbkICHQwKuEmc+hi8H2GBVB0YihFETBh3l
|
|
||||||
WXHnPVMGDcihrXGiggaGVXFv7Br4SFZCia9C3Hj1RNBD4HO4VXnhCJgXuC2HFga8
|
|
||||||
oetINLa2WqKl6MJEfp0lIsjSBn9byv9VlodaQRy103tm3OGKviKsrlfqqYl2vFUn
|
|
||||||
cVEWyHZx2nLOPS6kjnlf0OtxZnqhyh0VeojDOAcpv+hbV84BprGEcyrx3OWGnMfg
|
|
||||||
yXdvHTBWhSJUDOXM0vxirrZTI4JgrcPJOzWJZCYJXCyyNqMKdB8=
|
|
||||||
=uRnL
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
libreoffice-6.2.3.2.tar.xz
Normal file
3
libreoffice-6.2.3.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f1ddb94fb2bab615ec446da83e62f2bcf963bddc7b9fe600e326701926dc6daf
|
||||||
|
size 214234080
|
16
libreoffice-6.2.3.2.tar.xz.asc
Normal file
16
libreoffice-6.2.3.2.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAlyt0mAACgkQ9DSh76/u
|
||||||
|
rqNMEQ//baoCPlnLh0+yJzpGFwRGtnQYtXwkv1si/2y43H9tB/uyCB5bhxSKW+oG
|
||||||
|
ZfqFUD5z58qawEVjzA9rv5SiPVx+QJgFyEOj4WHhOhlQhqI69tqeg0EIAdmYmlzM
|
||||||
|
D+13tF1j0O1pg9+Kj62xEk0qunZaO0x1yiKZ7VKpbyvyjSKCZ8Qgx84dF4L29TKX
|
||||||
|
zx7C+oUN+uSioLLg7kps7h9hfRk50ya6wihSxOZTFJNHLHbCeEV2pjMtkddLcDkD
|
||||||
|
LFB6ol31KYxgn+oAIasO2+rsdUsDDKx+DQVXStm9mWPWMV0jO5lDpHGsUxUWMJLK
|
||||||
|
Lnb+RYqnfZzAQ1f/Cta0LK/HnclOxx/YHXLF9WeYjLxm6gjbesuLjmbTZMIyfoxH
|
||||||
|
/FvPwdyU4V6JuO1DQc7Bk4ieGqmU+92tO96kUGugUIEOezCSJQJ0YK6kQJCFQ9Dz
|
||||||
|
RgxpJK0Uam/A6qBht3cTsaNgBolCw/7Eck9iMYdND4TkQ/K6RPrc0W+e/rnsPOl0
|
||||||
|
zL/ZdSesjyCc7+x37qDkS+akeQq2BVET/+p6t2DgzMXAg4xvmE091WRMaR8O53xk
|
||||||
|
U+scM6YkF908CJdxYOtqQg6f3B2OcE/YKSKhuApwt+P6Wbbh858gkwN5EDc8TxLn
|
||||||
|
bgDuF4u78zF/vMnCO7YRJGKkZS+MAwSKuBgU8e74nMyfIRg8kmA=
|
||||||
|
=qO+T
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:619f92db787dc8cb4aa81f203b3eefbd02a4affd382bf8d1b9268c846d360d92
|
|
||||||
size 15267780
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAlyMCLgACgkQ9DSh76/u
|
|
||||||
rqOx1Q/9EEm+O4ly/+Sf79Hmhgi4nD3OmZOpN9s+Z0zxbEq/7P9UtBxQiD21yqwW
|
|
||||||
XQN0w77dJwFflVVF8yb2rvsdfs9LFs4XzbnSEMmlCNq3OAKYazRbK9XYz2pnazB6
|
|
||||||
mEHi3mE0z2jdvbbO9xbRjrIc90bg3T2dEFKX27FjpL19JpSQDpEILJyi9VHqyupJ
|
|
||||||
GsQnIdPK8Z9bKX6tcftu4ldh1601UNoRBNprj/0Ay+j4XPpYoWhdDaOA9sI+CP6L
|
|
||||||
irWZTCObulzrFObpkCzZm/fx9qegGLZ1f/X9B64aBDGPPOACc3smmjhAFSwpOsvT
|
|
||||||
JrvHb46Xgd3gM4fs64uZ/BOSkw5NCEM/kRZoCTrwVMezi4np/0mZEeN0wYa+jJaH
|
|
||||||
n+fWYiraAHibnIfvypWveUyXYRkeUaqJfthg7ajewbfvA4e4Fsx5TMgIz9/WQafm
|
|
||||||
NlznBHAoCWo8jXrub1RDk32zU1ubLnroZxFvdDmGZZSNIuom9wIc2pv/YAsc6ISC
|
|
||||||
EnwRMu8WEyQWu4yKNcLQaVqZnTX+6Xks7aCmEUBy4uLRiAOMPK2kzPeJsq68Jwpp
|
|
||||||
7yuZoi8GbpQo08Y8yQ6V5MdjSFwjSK9Vv1SiOONF/MFxNqYrVRQEQwgfs0Mk2aem
|
|
||||||
goVHu6jGvNV+Z3RTbCsTS/7mqrJUKlZPXzwr75BFrUcZ7894W24=
|
|
||||||
=2T6D
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
libreoffice-help-6.2.3.2.tar.xz
Normal file
3
libreoffice-help-6.2.3.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c1b6923eb66610abeecde79fcc28c9c61353e5b1f2772a37c7aa7a018dbe1132
|
||||||
|
size 13024476
|
16
libreoffice-help-6.2.3.2.tar.xz.asc
Normal file
16
libreoffice-help-6.2.3.2.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAlyt0mUACgkQ9DSh76/u
|
||||||
|
rqNSrw/+PUp9c3ZqAMCRgUQVWCIXPw8mOqEof30cqO94hbYwea7nVu2KREGkXggq
|
||||||
|
yLydZO0L+V9ArGaQLBnnUtR5W+XtI8TMOEfk8nJV+TAhAF7qc5VYMZ61ZYfAEUex
|
||||||
|
f8jkSXx9MPHV3Baq/cqv3aRHjAk7Jg8V85rj8L3tz1q5J1dVrya9PXjMGzLpqidK
|
||||||
|
UNVVW9C7IGdSOBMa/VgncFV9XLqKELhxsi667Zg6fEXyoG7/hMWkxehpiMZkf9NE
|
||||||
|
UeuS8kuAwCPYDp8gyErwRDMsDr4imtbFUtRkvmlwLUKhte4K2N7Gm4VS5WMGp87g
|
||||||
|
7VxGUnF8eawHD8J5yydfzctnOFKkUYIcxz5vfc+sp+LRNIxeyn7AA3zW/0ZBtAYn
|
||||||
|
4kg09XzZX2bmU590SddSno2k4GkTqwZjXaaRkPoyZyuAjTFHTcV95hWEEoiIoh1P
|
||||||
|
ty7B1NviRgumRgFR/cgNKS7SBHETPXNF3vgRmjrlTti9qRtfLP5O+RGkLSsRMAxh
|
||||||
|
lXvWfE2t8x3iG017WYBnKKDzke+3mYLQ/B4WLsfaKUyZ9yU7oskvS0qE6r4aOFIK
|
||||||
|
uj0BOZlb0Hfc3+DclZIa80iS+F9eF+NDlkeuavJLcDeQ60KHGXkWG5Eo1CPkUZ0Y
|
||||||
|
ExJKtb2RdTKQUMXKTCCc8EGu/JeguMzaIwpiVWYI+tyhzZPKq7U=
|
||||||
|
=aaIC
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,24 +0,0 @@
|
|||||||
--- configure.ac.orig
|
|
||||||
+++ configure.ac
|
|
||||||
@@ -8669,11 +8669,17 @@ if test "x$enable_postgresql_sdbc" != "x
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
AC_PATH_PROG(PGCONFIG, pg_config, ,$PATH$pg_supp_path)
|
|
||||||
- if test -z "$PGCONFIG"; then
|
|
||||||
- AC_MSG_ERROR([pg_config needed; set PGCONFIG if not in PATH])
|
|
||||||
+ if test -n "$PGCONFIG"; then
|
|
||||||
+ POSTGRESQL_INC=-I$(${PGCONFIG} --includedir)
|
|
||||||
+ POSTGRESQL_LIB="-L$(${PGCONFIG} --libdir)"
|
|
||||||
+ else
|
|
||||||
+ PKG_CHECK_MODULES(POSTGRESQL, libpq, [
|
|
||||||
+ POSTGRESQL_INC=$POSTGRESQL_CFLAGS
|
|
||||||
+ POSTGRESQL_LIB=$POSTGRESQL_LIBS
|
|
||||||
+ ],[
|
|
||||||
+ AC_MSG_ERROR([pg_config or 'pkg-config libpq' needed; set PGCONFIG if not in PATH])
|
|
||||||
+ ])
|
|
||||||
fi
|
|
||||||
- POSTGRESQL_INC=-I$(${PGCONFIG} --includedir)
|
|
||||||
- POSTGRESQL_LIB="-L$(${PGCONFIG} --libdir)"
|
|
||||||
FilterLibs "${POSTGRESQL_LIB}"
|
|
||||||
POSTGRESQL_LIB="${filteredlibs}"
|
|
||||||
else
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:37e86f2675003a43379658ca5ad65e9093df5353dc0e6dc0a2d34450dbab1745
|
|
||||||
size 141946920
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAlyMCLgACgkQ9DSh76/u
|
|
||||||
rqPn+g/+PpdUeW8Mx8/whNCsIt04ONGc1/e+3506krbFJmd38a4n/MoHQuljQjID
|
|
||||||
tWODxMjXp7perwaR6wGVzHEkRv8YXZq7CiSwhuxa+e+dwWunkc99/4ICHLXMdkaR
|
|
||||||
uDgDQRHaoT6bYpU1vkzXglrJl+Vs+N+LBJQq7kjNbHztzb1MJkOkn6EmJKutUaQP
|
|
||||||
ijDpRAnrJ2G8HpcPQjgSCyzBdJ54whm7FGCTasaTk/RtKIweFiopBZQ9l8gJIFyg
|
|
||||||
yivdEG1VugAIwVBZy9OtWy9vuIF47BfIa02OmnHkq3P5ZQa24OFrAf9N+JohnPwN
|
|
||||||
zV5DfHxluBi3BRsS/UtVgQPk+LCmnfCdscM+XULHcJUAXUey8C6oKPltgNRq6kcK
|
|
||||||
V10rm7npmUpDkM16RQ7JN/PbSMnDBPXp5ImE3wCgRLbZJk2uzR/+1hZ5UO9BeZnK
|
|
||||||
EQVWWLXx1Tf2d8oRyRIl5DJ4ncOATOW+R0e04qYtgI2ckiYACNnkUteRzsaKIcgn
|
|
||||||
d7U/hAlUpXmwCad4uZMfUF4xSd0iiql/YBxLkfEh2WB46cDmX96qU4FQV0htBHbi
|
|
||||||
VfQX2nNLWUxgv58Gi15VUlzMj3JDQWfr5TzgMgc9wQtg5MhhyMu0uhsPSGjxKmbV
|
|
||||||
88J95raPPqRXXL+OBVHRakoQUOSwoh+49aMpstCn7rLfcXEvTO0=
|
|
||||||
=OAxv
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
libreoffice-translations-6.2.3.2.tar.xz
Normal file
3
libreoffice-translations-6.2.3.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:77bfeac5cefb96210a09557ad7f5c40ae399b0658f879fddb02891ac4d2add3e
|
||||||
|
size 141965408
|
16
libreoffice-translations-6.2.3.2.tar.xz.asc
Normal file
16
libreoffice-translations-6.2.3.2.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAlyt0mYACgkQ9DSh76/u
|
||||||
|
rqOb5xAAzLO/8MvPk2JdL0xO4/+/jMyXkuNWMppvQ4LtD1veioTRzETA1JSkhsih
|
||||||
|
DxTG/zF2OviUpjtuvtGINpgPgIxzj44ZLjWfrOmixad3KDqdTOeN1dd8n+A0T+qP
|
||||||
|
0+9kcULqvnENc+c/SFJHRtl0wMU1ZQa+cH5mIP1YIZFk/HUSkKJECOQmhSDWVj5k
|
||||||
|
pquydJIjTAeEg8cvJyeSX8D4uxmjTYdV3pkT4KMckbu14CMRAurVqOFXlzyo3FiT
|
||||||
|
sv7wat5iBq3B1dS1ggusfHqWwkY/cjI+dwyZP9n68Ueb2ydwim5nyOaiQBh8GDQa
|
||||||
|
hLX4NILIOG5jQRXpkDf7HgzA05JfANGdFg3q96z0P4cooHQGKxarIJKElvr1V30a
|
||||||
|
hEfgwjM2q4I/8RK4FV04XsIYYwXvPinGeg5oaTIFjvYHmJqoNrCRTnEfU9NMj2P0
|
||||||
|
sina23xA86bwJuDP3wjLLfMIaIXI9MvBRIRvNyhva/OBxciaaa1vmv4ijIfyK2tA
|
||||||
|
3RMwLrPwPg40a4FEuhHLAtSK71AUDpwdHu5vO5ccAvpUZ/yL1PqBUN2x92Qr1nuA
|
||||||
|
SGpguqNzEqQgghZAlm4QqFUm0/ka01uBT417Wa3VzejNzTDy57+ChXvNy7IxGQI5
|
||||||
|
39keTTNzu8yg3KQ5lyTc72JkCSTOrX1hTReHghqYR44bzrJpHzY=
|
||||||
|
=JxYO
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 15 09:14:47 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||||
|
|
||||||
|
- Update to 6.2.3.2:
|
||||||
|
* Bugfix release 6.2.3
|
||||||
|
- Remove merged patches:
|
||||||
|
* old-boost.patch
|
||||||
|
* libreoffice-postgresql.patch
|
||||||
|
* 0001-Fix-LTO-segfault-in-libtest_sw_uwriter-test.patch
|
||||||
|
* boost_169.patch
|
||||||
|
* kde5.patch
|
||||||
|
* old-icu.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 4 11:34:54 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
Thu Apr 4 11:34:54 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
%bcond_with gtk3
|
%bcond_with gtk3
|
||||||
%endif
|
%endif
|
||||||
Name: libreoffice
|
Name: libreoffice
|
||||||
Version: 6.2.2.2
|
Version: 6.2.3.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A Free Office Suite (Framework)
|
Summary: A Free Office Suite (Framework)
|
||||||
License: LGPL-3.0-or-later AND MPL-2.0+
|
License: LGPL-3.0-or-later AND MPL-2.0+
|
||||||
@ -99,12 +99,6 @@ Patch1: scp2-user-config-suse.diff
|
|||||||
# FIXME: the right fix is to compile the help and produce the .db_, .ht_, and other files
|
# FIXME: the right fix is to compile the help and produce the .db_, .ht_, and other files
|
||||||
Patch2: nlpsolver-no-broken-help.diff
|
Patch2: nlpsolver-no-broken-help.diff
|
||||||
Patch3: mediawiki-no-broken-help.diff
|
Patch3: mediawiki-no-broken-help.diff
|
||||||
Patch5: old-boost.patch
|
|
||||||
Patch7: libreoffice-postgresql.patch
|
|
||||||
Patch8: 0001-Fix-LTO-segfault-in-libtest_sw_uwriter-test.patch
|
|
||||||
Patch9: boost_169.patch
|
|
||||||
Patch10: kde5.patch
|
|
||||||
Patch11: old-icu.patch
|
|
||||||
Patch12: 0001-Use-sort-on-finds-to-improve-deterministic-build.patch
|
Patch12: 0001-Use-sort-on-finds-to-improve-deterministic-build.patch
|
||||||
# try to save space by using hardlinks
|
# try to save space by using hardlinks
|
||||||
Patch990: install-with-hardlinks.diff
|
Patch990: install-with-hardlinks.diff
|
||||||
@ -968,12 +962,6 @@ Provides %{langname} translations and additional resources (help files, etc.) fo
|
|||||||
%endif # Leap 42/SLE-12
|
%endif # Leap 42/SLE-12
|
||||||
%patch2
|
%patch2
|
||||||
%patch3
|
%patch3
|
||||||
%patch5 -p1
|
|
||||||
%patch7
|
|
||||||
%patch8 -p1
|
|
||||||
%patch9 -p1
|
|
||||||
%patch10 -p1
|
|
||||||
%patch11 -p1
|
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch990 -p1
|
%patch990 -p1
|
||||||
%patch991 -p1
|
%patch991 -p1
|
||||||
|
@ -1,56 +0,0 @@
|
|||||||
Index: libreoffice-6.2.2.1/vcl/unx/gtk3_kde5/gtk3_kde5_filepicker_ipc.cxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/vcl/unx/gtk3_kde5/gtk3_kde5_filepicker_ipc.cxx
|
|
||||||
+++ libreoffice-6.2.2.1/vcl/unx/gtk3_kde5/gtk3_kde5_filepicker_ipc.cxx
|
|
||||||
@@ -58,7 +58,7 @@ OUString applicationDirPath()
|
|
||||||
const auto utf8Path = applicationSystemPath.toUtf8();
|
|
||||||
auto ret = boost::filesystem::path(utf8Path.getStr(), utf8Path.getStr() + utf8Path.getLength());
|
|
||||||
ret.remove_filename();
|
|
||||||
- return OUString::fromUtf8(OString(ret.c_str(), ret.size()));
|
|
||||||
+ return OUString::fromUtf8(OString(ret.c_str(), strlen(ret.c_str())));
|
|
||||||
}
|
|
||||||
|
|
||||||
OUString findPickerExecutable()
|
|
||||||
Index: libreoffice-6.2.2.1/sw/source/core/crsr/findtxt.cxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/sw/source/core/crsr/findtxt.cxx
|
|
||||||
+++ libreoffice-6.2.2.1/sw/source/core/crsr/findtxt.cxx
|
|
||||||
@@ -152,7 +152,11 @@ public:
|
|
||||||
{
|
|
||||||
if (pFrame)
|
|
||||||
{
|
|
||||||
+#if BOOST_VERSION < 105600
|
|
||||||
+ m_oMergedIter.reset(*pFrame);
|
|
||||||
+#else
|
|
||||||
m_oMergedIter.emplace(*pFrame);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: libreoffice-6.2.2.1/sw/source/core/inc/txtfrm.hxx
|
|
||||||
===================================================================
|
|
||||||
--- libreoffice-6.2.2.1.orig/sw/source/core/inc/txtfrm.hxx
|
|
||||||
+++ libreoffice-6.2.2.1/sw/source/core/inc/txtfrm.hxx
|
|
||||||
@@ -24,6 +24,8 @@
|
|
||||||
#include <ndtxt.hxx>
|
|
||||||
#include "TextFrameIndex.hxx"
|
|
||||||
|
|
||||||
+#include <boost/version.hpp>
|
|
||||||
+
|
|
||||||
namespace com { namespace sun { namespace star { namespace linguistic2 { class XHyphenatedWord; } } } }
|
|
||||||
|
|
||||||
namespace sw { namespace mark { class IMark; } }
|
|
||||||
@@ -980,8 +982,13 @@ struct MergedPara
|
|
||||||
class MergedAttrIterBase
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
+#if BOOST_VERSION < 105600
|
|
||||||
+ sw::MergedPara const* m_pMerged;
|
|
||||||
+ SwTextNode const* m_pNode;
|
|
||||||
+#else
|
|
||||||
sw::MergedPara const*const m_pMerged;
|
|
||||||
SwTextNode const*const m_pNode;
|
|
||||||
+#endif
|
|
||||||
size_t m_CurrentExtent;
|
|
||||||
size_t m_CurrentHint;
|
|
||||||
MergedAttrIterBase(SwTextFrame const& rFrame);
|
|
@ -1,49 +0,0 @@
|
|||||||
From 8e264d64093e11fbabdd13e0f86bec8b7c989796 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
|
|
||||||
Date: Fri, 15 Mar 2019 16:43:31 +0100
|
|
||||||
Subject: [PATCH] Use RegexMatcher.find(pos, status) call on old ICU
|
|
||||||
|
|
||||||
The RegexMatcher.find(status) is new since icu 55 and this works even
|
|
||||||
on the old releases thus revert there to the available albeit slower
|
|
||||||
call.
|
|
||||||
|
|
||||||
Change-Id: I964c10efd15515b04ac9037cda3b5b309910baf5
|
|
||||||
---
|
|
||||||
sc/source/core/tool/interpr1.cxx | 14 ++++++++++++--
|
|
||||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
|
|
||||||
index 75fd8f82b874..0281ab3f4cbf 100644
|
|
||||||
--- a/sc/source/core/tool/interpr1.cxx
|
|
||||||
+++ b/sc/source/core/tool/interpr1.cxx
|
|
||||||
@@ -9408,7 +9408,12 @@ void ScInterpreter::ScRegex()
|
|
||||||
{
|
|
||||||
// Find n-th occurrence.
|
|
||||||
sal_Int32 nCount = 0;
|
|
||||||
- while (aRegexMatcher.find( status) && U_SUCCESS(status) && ++nCount < nOccurrence)
|
|
||||||
+#if (U_ICU_VERSION_MAJOR_NUM < 55)
|
|
||||||
+ int32_t nStartPos = 0;
|
|
||||||
+ while (aRegexMatcher.find(nStartPos, status) && U_SUCCESS(status) && ++nCount < nOccurrence)
|
|
||||||
+#else
|
|
||||||
+ while (aRegexMatcher.find(status) && U_SUCCESS(status) && ++nCount < nOccurrence)
|
|
||||||
+#endif
|
|
||||||
;
|
|
||||||
if (U_FAILURE(status))
|
|
||||||
{
|
|
||||||
@@ -9448,7 +9453,12 @@ void ScInterpreter::ScRegex()
|
|
||||||
{
|
|
||||||
// Replace n-th occurrence of match with replacement.
|
|
||||||
sal_Int32 nCount = 0;
|
|
||||||
- while (aRegexMatcher.find( status) && U_SUCCESS(status))
|
|
||||||
+#if (U_ICU_VERSION_MAJOR_NUM < 55)
|
|
||||||
+ int32_t nStartPos = 0;
|
|
||||||
+ while (aRegexMatcher.find(nStartPos, status) && U_SUCCESS(status))
|
|
||||||
+#else
|
|
||||||
+ while (aRegexMatcher.find(status) && U_SUCCESS(status))
|
|
||||||
+#endif
|
|
||||||
{
|
|
||||||
// XXX NOTE: After several RegexMatcher::find() the
|
|
||||||
// RegexMatcher::appendReplacement() still starts at the
|
|
||||||
--
|
|
||||||
2.21.0
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user