Toshaan Bharvani
11 months ago
commit
dd733dccee
32 changed files with 9966 additions and 0 deletions
@ -0,0 +1,69 @@ |
|||||||
|
From 26c9da40d44f1469df97398362667c74553be7d2 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Mon, 20 Dec 2021 17:05:44 +0000 |
||||||
|
Subject: [PATCH] only use X509Data |
||||||
|
|
||||||
|
Change-Id: I52e6588f5fac04bb26d77c1f3af470db73e41f72 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127193 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Miklos Vajna <vmiklos@collabora.com> |
||||||
|
(cherry picked from commit be446d81e07b5499152efeca6ca23034e51ea5ff) |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127178 |
||||||
|
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> |
||||||
|
(cherry picked from commit b0404f80577de9ff69e58390c6f6ef949fdb0139) |
||||||
|
--- |
||||||
|
.../source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx | 6 ++++++ |
||||||
|
xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx | 6 ++++++ |
||||||
|
2 files changed, 12 insertions(+) |
||||||
|
|
||||||
|
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx |
||||||
|
index c699c950f351..9f816479f9dd 100644 |
||||||
|
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx |
||||||
|
+++ b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx |
||||||
|
@@ -22,6 +22,8 @@ |
||||||
|
#include <rtl/uuid.h> |
||||||
|
#include <xmlsec-wrapper.h> |
||||||
|
|
||||||
|
+#include <xmlsec/mscng/x509.h> |
||||||
|
+ |
||||||
|
#include <com/sun/star/xml/crypto/SecurityOperationStatus.hpp> |
||||||
|
#include <com/sun/star/xml/crypto/XXMLSignature.hpp> |
||||||
|
|
||||||
|
@@ -233,6 +235,10 @@ SAL_CALL XMLSignature_MSCryptImpl::validate( |
||||||
|
// We do certificate verification ourselves. |
||||||
|
pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; |
||||||
|
|
||||||
|
+ // limit possible key data to valid X509 certificates only, no KeyValues |
||||||
|
+ if (xmlSecPtrListAdd(&(pDsigCtx->keyInfoReadCtx.enabledKeyData), BAD_CAST xmlSecMSCngKeyDataX509GetKlass()) < 0) |
||||||
|
+ throw RuntimeException("failed to limit allowed key data"); |
||||||
|
+ |
||||||
|
//Verify signature |
||||||
|
//The documentation says that the signature is only valid if the return value is 0 (that is, not < 0) |
||||||
|
//AND pDsigCtx->status == xmlSecDSigStatusSucceeded. That is, we must not make any assumptions, if |
||||||
|
diff --git a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx |
||||||
|
index b41d754f7407..975c17272dc7 100644 |
||||||
|
--- a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx |
||||||
|
+++ b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx |
||||||
|
@@ -20,6 +20,8 @@ |
||||||
|
#include <sal/config.h> |
||||||
|
#include <xmlsec-wrapper.h> |
||||||
|
|
||||||
|
+#include <xmlsec/nss/x509.h> |
||||||
|
+ |
||||||
|
#include <xmlelementwrapper_xmlsecimpl.hxx> |
||||||
|
#include <xmlsec/xmlstreamio.hxx> |
||||||
|
#include <xmlsec/errorcallback.hxx> |
||||||
|
@@ -247,6 +249,10 @@ SAL_CALL XMLSignature_NssImpl::validate( |
||||||
|
// We do certificate verification ourselves. |
||||||
|
pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; |
||||||
|
|
||||||
|
+ // limit possible key data to valid X509 certificates only, no KeyValues |
||||||
|
+ if (xmlSecPtrListAdd(&(pDsigCtx->keyInfoReadCtx.enabledKeyData), BAD_CAST xmlSecNssKeyDataX509GetKlass()) < 0) |
||||||
|
+ throw RuntimeException("failed to limit allowed key data"); |
||||||
|
+ |
||||||
|
//Verify signature |
||||||
|
int rs = xmlSecDSigCtxVerify( pDsigCtx.get() , pNode ); |
||||||
|
|
||||||
|
-- |
||||||
|
2.35.1 |
||||||
|
|
@ -0,0 +1,53 @@ |
|||||||
|
From 3925cf39742ebee935498b14571f13f3e8b64b49 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Sat, 19 Feb 2022 20:43:33 +0000 |
||||||
|
Subject: [PATCH] EditTextObjectImpl copy ctor doesn't exactly copy |
||||||
|
EditTextObjectImpl |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
and this is apparently relied on, so eliding the copy gives unexpected |
||||||
|
results. |
||||||
|
|
||||||
|
EditTextObjectImpl::Clone returns a copy of *this, but the |
||||||
|
EditTextObjectImpl copy ctor explicitly does not copy the "PortionInfo" |
||||||
|
member, so in: |
||||||
|
|
||||||
|
commit fb8973f31f111229be5184f4e4223e963ced2c7b |
||||||
|
Author: Caolán McNamara <caolanm@redhat.com> |
||||||
|
Date: Sat Oct 10 19:21:38 2020 +0100 |
||||||
|
|
||||||
|
ofz#23492 the only user of this ctor throws away the original of the clone |
||||||
|
|
||||||
|
so we can take ownership of the original instead |
||||||
|
|
||||||
|
where the copy was optimized away we want from a state where there was a |
||||||
|
new EditTextObjectImpl with an empty PortionInfo member to one where the |
||||||
|
PortionInfo of the EditTextObjectImpl was retained. |
||||||
|
|
||||||
|
So explicitly clear this unwanted info. |
||||||
|
|
||||||
|
It's very hard to make rational judgements about code if a copy behaves |
||||||
|
differently than the orignal :-( |
||||||
|
|
||||||
|
Change-Id: I642d60841d6bdccbf830f8a2ccdbd9f542a8aa18 |
||||||
|
--- |
||||||
|
editeng/source/outliner/outliner.cxx | 1 + |
||||||
|
1 file changed, 1 insertion(+) |
||||||
|
|
||||||
|
diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx |
||||||
|
index 9c474131352c..d48e4a542723 100644 |
||||||
|
--- a/editeng/source/outliner/outliner.cxx |
||||||
|
+++ b/editeng/source/outliner/outliner.cxx |
||||||
|
@@ -383,6 +383,7 @@ std::unique_ptr<OutlinerParaObject> Outliner::CreateParaObject( sal_Int32 nStart |
||||||
|
aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara); |
||||||
|
} |
||||||
|
|
||||||
|
+ xText->ClearPortionInfo(); // tdf#147166 the PortionInfo is unwanted here |
||||||
|
std::unique_ptr<OutlinerParaObject> pPObj(new OutlinerParaObject(std::move(xText), aParagraphDataVector, bIsEditDoc)); |
||||||
|
pPObj->SetOutlinerMode(GetMode()); |
||||||
|
|
||||||
|
-- |
||||||
|
2.35.1 |
||||||
|
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,36 @@ |
|||||||
|
From caddaaa6afd2709f72dfb6160a485d405ac03966 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Rico Tzschichholz <ricotz@ubuntu.com> |
||||||
|
Date: Tue, 11 Jul 2023 20:21:15 +0200 |
||||||
|
Subject: [PATCH] Only pass -I... arguments to g-ir-scanner by using |
||||||
|
pkg-config's --cflags-only-I |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
Otherwise it is possible that e.g. -Wl,--export-dynamic is passed which is fatal. |
||||||
|
|
||||||
|
Change-Id: I1735641e3149c86456e1164b67509a719e09d446 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154340 |
||||||
|
Reviewed-by: René Engelhard <rene@debian.org> |
||||||
|
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> |
||||||
|
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> |
||||||
|
--- |
||||||
|
sysui/CustomTarget_share.mk | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/sysui/CustomTarget_share.mk b/sysui/CustomTarget_share.mk |
||||||
|
index b86521a3a80f..912048b2ad66 100644 |
||||||
|
--- a/sysui/CustomTarget_share.mk |
||||||
|
+++ b/sysui/CustomTarget_share.mk |
||||||
|
@@ -167,7 +167,7 @@ $(share_WORKDIR)/%/LOKDocView-0.1.gir: \ |
||||||
|
mkdir -p $(dir $@) |
||||||
|
PYTHONWARNINGS=default g-ir-scanner "${SRCDIR}/include/LibreOfficeKit/LibreOfficeKitGtk.h" \ |
||||||
|
"${SRCDIR}/libreofficekit/source/gtk/lokdocview.cxx" \ |
||||||
|
- `${PKG_CONFIG} --cflags gobject-introspection-1.0 gtk+-3.0` \ |
||||||
|
+ `${PKG_CONFIG} --cflags-only-I gobject-introspection-1.0 gtk+-3.0` \ |
||||||
|
-I"${SRCDIR}/include/" \ |
||||||
|
--include=GLib-2.0 --include=GObject-2.0 --include=Gio-2.0 \ |
||||||
|
--library=libreofficekitgtk --library-path="${INSTDIR}/program" \ |
||||||
|
-- |
||||||
|
2.41.0 |
||||||
|
|
@ -0,0 +1,162 @@ |
|||||||
|
From 366e9237399a948d2ef616b758d390bd7d0978a5 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Stephan Bergmann <sbergman@redhat.com> |
||||||
|
Date: Mon, 31 May 2021 09:36:28 +0200 |
||||||
|
Subject: [PATCH] Replace inet_ntoa with inet_ntop |
||||||
|
|
||||||
|
...as inet_ntoa is potentially not thread-safe; and add a test |
||||||
|
|
||||||
|
Change-Id: I9df945b006ba7194c3b1444c4886101c08339ad0 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116425 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Stephan Bergmann <sbergman@redhat.com> |
||||||
|
(cherry picked from commit 33bf4f0bcf941ee4609f558442035514f54cbc8a) |
||||||
|
|
||||||
|
and |
||||||
|
|
||||||
|
Replace inet_addr with inet_pton |
||||||
|
|
||||||
|
...as inet_addr is deprecated (it does not allow to distinguish successful |
||||||
|
return for "255.255.255.255" from -1 error return); and update tests |
||||||
|
|
||||||
|
Change-Id: I605cb2ba18fe9bd11d2d68c8f1c94271c4503509 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116441 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Stephan Bergmann <sbergman@redhat.com> |
||||||
|
(cherry picked from commit 1fef071c01caf6c293dd941ee7c8340e6894afc3) |
||||||
|
|
||||||
|
fix leak in SocketTest |
||||||
|
|
||||||
|
Change-Id: I8c5e2d4c4687beab08876fe3e945d19a1629bc36 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116514 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> |
||||||
|
(cherry picked from commit 313eaf979ea2d69e4ffa88a5e87cc09ffe0ff088) |
||||||
|
--- |
||||||
|
sal/CppunitTest_sal_osl.mk | 1 + |
||||||
|
sal/osl/unx/socket.cxx | 16 +++++++---- |
||||||
|
sal/qa/osl/socket.cxx | 58 ++++++++++++++++++++++++++++++++++++++ |
||||||
|
3 files changed, 70 insertions(+), 5 deletions(-) |
||||||
|
create mode 100644 sal/qa/osl/socket.cxx |
||||||
|
|
||||||
|
diff --git a/sal/CppunitTest_sal_osl.mk b/sal/CppunitTest_sal_osl.mk |
||||||
|
index 2e4b77509f56..d8c2627d9e0f 100644 |
||||||
|
--- a/sal/CppunitTest_sal_osl.mk |
||||||
|
+++ b/sal/CppunitTest_sal_osl.mk |
||||||
|
@@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sal_osl,\ |
||||||
|
sal/qa/osl/process/osl_Thread \ |
||||||
|
sal/qa/osl/profile/osl_old_testprofile \ |
||||||
|
sal/qa/osl/setthreadname/test-setthreadname \ |
||||||
|
+ sal/qa/osl/socket \ |
||||||
|
)) |
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_libraries,sal_osl,\ |
||||||
|
diff --git a/sal/osl/unx/socket.cxx b/sal/osl/unx/socket.cxx |
||||||
|
index 56a8f6cd63ac..9fafc6d1db81 100644 |
||||||
|
--- a/sal/osl/unx/socket.cxx |
||||||
|
+++ b/sal/osl/unx/socket.cxx |
||||||
|
@@ -437,7 +437,10 @@ oslSocketAddr SAL_CALL osl_createInetBroadcastAddr ( |
||||||
|
&pDottedAddr, strDottedAddr->buffer, strDottedAddr->length, |
||||||
|
RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS); |
||||||
|
|
||||||
|
- nAddr = inet_addr (pDottedAddr->buffer); |
||||||
|
+ in_addr buf; |
||||||
|
+ if (inet_pton (AF_INET, pDottedAddr->buffer, &buf) == 1) { |
||||||
|
+ nAddr = buf.s_addr; |
||||||
|
+ } |
||||||
|
rtl_string_release (pDottedAddr); |
||||||
|
} |
||||||
|
|
||||||
|
@@ -505,11 +508,11 @@ oslSocketAddr osl_psz_createInetSocketAddr ( |
||||||
|
sal_Int32 Port) |
||||||
|
{ |
||||||
|
oslSocketAddr pAddr = nullptr; |
||||||
|
- sal_Int32 Addr = inet_addr(pszDottedAddr); |
||||||
|
- if(Addr != -1) |
||||||
|
+ in_addr buf; |
||||||
|
+ if(inet_pton(AF_INET, pszDottedAddr, &buf) == 1) |
||||||
|
{ |
||||||
|
/* valid dotted addr */ |
||||||
|
- pAddr = createSocketAddrWithFamily( osl_Socket_FamilyInet, htons(Port) , Addr ); |
||||||
|
+ pAddr = createSocketAddrWithFamily( osl_Socket_FamilyInet, htons(Port) , buf.s_addr ); |
||||||
|
} |
||||||
|
return pAddr; |
||||||
|
} |
||||||
|
@@ -1090,7 +1093,10 @@ oslSocketResult SAL_CALL osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, r |
||||||
|
return osl_Socket_Error; |
||||||
|
} |
||||||
|
|
||||||
|
- rtl_uString_newFromAscii(ustrDottedInetAddr,inet_ntoa(pSystemInetAddr->sin_addr)); |
||||||
|
+ char buf[INET_ADDRSTRLEN]; |
||||||
|
+ auto const text = inet_ntop(AF_INET, &pSystemInetAddr->sin_addr, buf, INET_ADDRSTRLEN); |
||||||
|
+ assert(text != nullptr); |
||||||
|
+ rtl_uString_newFromAscii(ustrDottedInetAddr,text); |
||||||
|
|
||||||
|
return osl_Socket_Ok; |
||||||
|
|
||||||
|
diff --git a/sal/qa/osl/socket.cxx b/sal/qa/osl/socket.cxx |
||||||
|
new file mode 100644 |
||||||
|
index 000000000000..ed31c9ede7ae |
||||||
|
--- /dev/null |
||||||
|
+++ b/sal/qa/osl/socket.cxx |
||||||
|
@@ -0,0 +1,58 @@ |
||||||
|
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ |
||||||
|
+/* |
||||||
|
+ * This file is part of the LibreOffice project. |
||||||
|
+ * |
||||||
|
+ * This Source Code Form is subject to the terms of the Mozilla Public |
||||||
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this |
||||||
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
||||||
|
+ */ |
||||||
|
+ |
||||||
|
+#include <cppunit/TestAssert.h> |
||||||
|
+#include <cppunit/TestFixture.h> |
||||||
|
+#include <cppunit/extensions/HelperMacros.h> |
||||||
|
+ |
||||||
|
+#include <osl/socket.h> |
||||||
|
+#include <rtl/ustring.hxx> |
||||||
|
+ |
||||||
|
+namespace |
||||||
|
+{ |
||||||
|
+class SocketTest : public CppUnit::TestFixture |
||||||
|
+{ |
||||||
|
+ CPPUNIT_TEST_SUITE(SocketTest); |
||||||
|
+ CPPUNIT_TEST(test_createInetSocketAddr); |
||||||
|
+ CPPUNIT_TEST(test_createInetBroadcastAddr); |
||||||
|
+ CPPUNIT_TEST_SUITE_END(); |
||||||
|
+ |
||||||
|
+ void test_createInetSocketAddr() |
||||||
|
+ { |
||||||
|
+ OUString const in("123.4.56.78"); |
||||||
|
+ auto const addr = osl_createInetSocketAddr(in.pData, 100); |
||||||
|
+ CPPUNIT_ASSERT(addr != nullptr); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(osl_Socket_FamilyInet, osl_getFamilyOfSocketAddr(addr)); |
||||||
|
+ OUString out; |
||||||
|
+ auto const res = osl_getDottedInetAddrOfSocketAddr(addr, &out.pData); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(osl_Socket_Ok, res); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(in, out); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), osl_getInetPortOfSocketAddr(addr)); |
||||||
|
+ osl_destroySocketAddr(addr); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ void test_createInetBroadcastAddr() |
||||||
|
+ { |
||||||
|
+ OUString const in("123.4.56.78"); |
||||||
|
+ auto const addr = osl_createInetBroadcastAddr(in.pData, 100); |
||||||
|
+ CPPUNIT_ASSERT(addr != nullptr); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(osl_Socket_FamilyInet, osl_getFamilyOfSocketAddr(addr)); |
||||||
|
+ OUString out; |
||||||
|
+ auto const res = osl_getDottedInetAddrOfSocketAddr(addr, &out.pData); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(osl_Socket_Ok, res); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(OUString("123.255.255.255"), out); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), osl_getInetPortOfSocketAddr(addr)); |
||||||
|
+ osl_destroySocketAddr(addr); |
||||||
|
+ } |
||||||
|
+}; |
||||||
|
+ |
||||||
|
+CPPUNIT_TEST_SUITE_REGISTRATION(SocketTest); |
||||||
|
+} |
||||||
|
+ |
||||||
|
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,26 @@ |
|||||||
|
From 87b90b6fbf010effd44ef0e2bd3d75b27562a82b Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Mon, 27 Mar 2017 11:47:01 +0100 |
||||||
|
Subject: [PATCH] Resolves: rhbz#1432468 disable opencl by default |
||||||
|
|
||||||
|
Change-Id: Ie037fcabdd219f195425979dd721501fb5527573 |
||||||
|
--- |
||||||
|
officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs |
||||||
|
index 99b4104f6499..ef7ada84c2f3 100644 |
||||||
|
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs |
||||||
|
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs |
||||||
|
@@ -5652,7 +5652,7 @@ |
||||||
|
<desc>Determines whether OpenCL can be used, when available, to speed up |
||||||
|
some operations.</desc> |
||||||
|
</info> |
||||||
|
- <value>true</value> |
||||||
|
+ <value>false</value> |
||||||
|
</prop> |
||||||
|
<prop oor:name="OpenCLDenyList" oor:type="oor:string-list" oor:nillable="false"> |
||||||
|
<!-- UIHints: Tools - Options General OpenCL --> |
||||||
|
-- |
||||||
|
2.29.2 |
||||||
|
|
@ -0,0 +1,123 @@ |
|||||||
|
From 197efb35e6f9661ecbeac2897d36a25bc2f6433e Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Sun, 14 Nov 2021 14:59:38 +0000 |
||||||
|
Subject: [PATCH] Resolves: tdf#140250 don't share adjustments between |
||||||
|
differerent spinbuttons |
||||||
|
|
||||||
|
Change-Id: Ib684c746ff3176cf45ea9364efc12f2d6dde1f70 |
||||||
|
--- |
||||||
|
cui/uiconfig/ui/breaknumberoption.ui | 18 ++++++++++++++++-- |
||||||
|
cui/uiconfig/ui/calloutpage.ui | 14 ++++++++++++-- |
||||||
|
svx/uiconfig/ui/sidebareffect.ui | 7 ++++++- |
||||||
|
3 files changed, 34 insertions(+), 5 deletions(-) |
||||||
|
|
||||||
|
diff --git a/cui/uiconfig/ui/breaknumberoption.ui b/cui/uiconfig/ui/breaknumberoption.ui |
||||||
|
index 2641babeeb5d..23fe294ec702 100644 |
||||||
|
--- a/cui/uiconfig/ui/breaknumberoption.ui |
||||||
|
+++ b/cui/uiconfig/ui/breaknumberoption.ui |
||||||
|
@@ -9,6 +9,20 @@ |
||||||
|
<property name="step_increment">1</property> |
||||||
|
<property name="page_increment">10</property> |
||||||
|
</object> |
||||||
|
+ <object class="GtkAdjustment" id="adjustment2"> |
||||||
|
+ <property name="lower">2</property> |
||||||
|
+ <property name="upper">9</property> |
||||||
|
+ <property name="value">1</property> |
||||||
|
+ <property name="step_increment">1</property> |
||||||
|
+ <property name="page_increment">10</property> |
||||||
|
+ </object> |
||||||
|
+ <object class="GtkAdjustment" id="adjustment3"> |
||||||
|
+ <property name="lower">2</property> |
||||||
|
+ <property name="upper">9</property> |
||||||
|
+ <property name="value">1</property> |
||||||
|
+ <property name="step_increment">1</property> |
||||||
|
+ <property name="page_increment">10</property> |
||||||
|
+ </object> |
||||||
|
<object class="GtkDialog" id="BreakNumberOption"> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
<property name="border_width">6</property> |
||||||
|
@@ -134,7 +148,7 @@ |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="halign">start</property> |
||||||
|
<property name="activates_default">True</property> |
||||||
|
- <property name="adjustment">adjustment1</property> |
||||||
|
+ <property name="adjustment">adjustment2</property> |
||||||
|
<property name="truncate-multiline">True</property> |
||||||
|
<child internal-child="accessible"> |
||||||
|
<object class="AtkObject" id="afterbreak-atkobject"> |
||||||
|
@@ -179,7 +193,7 @@ |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="halign">start</property> |
||||||
|
<property name="activates_default">True</property> |
||||||
|
- <property name="adjustment">adjustment1</property> |
||||||
|
+ <property name="adjustment">adjustment3</property> |
||||||
|
<property name="truncate-multiline">True</property> |
||||||
|
<child internal-child="accessible"> |
||||||
|
<object class="AtkObject" id="wordlength-atkobject"> |
||||||
|
diff --git a/cui/uiconfig/ui/calloutpage.ui b/cui/uiconfig/ui/calloutpage.ui |
||||||
|
index 87d4eff64eb4..00898dc3390c 100644 |
||||||
|
--- a/cui/uiconfig/ui/calloutpage.ui |
||||||
|
+++ b/cui/uiconfig/ui/calloutpage.ui |
||||||
|
@@ -7,6 +7,16 @@ |
||||||
|
<property name="step_increment">0.5</property> |
||||||
|
<property name="page_increment">10</property> |
||||||
|
</object> |
||||||
|
+ <object class="GtkAdjustment" id="adjustment2"> |
||||||
|
+ <property name="upper">2400</property> |
||||||
|
+ <property name="step_increment">0.5</property> |
||||||
|
+ <property name="page_increment">10</property> |
||||||
|
+ </object> |
||||||
|
+ <object class="GtkAdjustment" id="adjustment3"> |
||||||
|
+ <property name="upper">2400</property> |
||||||
|
+ <property name="step_increment">0.5</property> |
||||||
|
+ <property name="page_increment">10</property> |
||||||
|
+ </object> |
||||||
|
<object class="GtkBox" id="CalloutPage"> |
||||||
|
<property name="visible">True</property> |
||||||
|
<property name="can_focus">False</property> |
||||||
|
@@ -231,7 +241,7 @@ |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="activates_default">True</property> |
||||||
|
<property name="text">0.00</property> |
||||||
|
- <property name="adjustment">adjustment1</property> |
||||||
|
+ <property name="adjustment">adjustment2</property> |
||||||
|
<property name="digits">2</property> |
||||||
|
<property name="truncate-multiline">True</property> |
||||||
|
<child internal-child="accessible"> |
||||||
|
@@ -277,7 +287,7 @@ |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="activates_default">True</property> |
||||||
|
<property name="text">0.00</property> |
||||||
|
- <property name="adjustment">adjustment1</property> |
||||||
|
+ <property name="adjustment">adjustment3</property> |
||||||
|
<property name="digits">2</property> |
||||||
|
<property name="truncate-multiline">True</property> |
||||||
|
<child internal-child="accessible"> |
||||||
|
diff --git a/svx/uiconfig/ui/sidebareffect.ui b/svx/uiconfig/ui/sidebareffect.ui |
||||||
|
index 0e633242cd5c..1e041a2a8726 100644 |
||||||
|
--- a/svx/uiconfig/ui/sidebareffect.ui |
||||||
|
+++ b/svx/uiconfig/ui/sidebareffect.ui |
||||||
|
@@ -12,6 +12,11 @@ |
||||||
|
<property name="step_increment">1</property> |
||||||
|
<property name="page_increment">10</property> |
||||||
|
</object> |
||||||
|
+ <object class="GtkAdjustment" id="adjustment3"> |
||||||
|
+ <property name="upper">150</property> |
||||||
|
+ <property name="step_increment">1</property> |
||||||
|
+ <property name="page_increment">10</property> |
||||||
|
+ </object> |
||||||
|
<!-- n-columns=1 n-rows=1 --> |
||||||
|
<object class="GtkGrid" id="EffectPropertyPanel"> |
||||||
|
<property name="visible">True</property> |
||||||
|
@@ -195,7 +200,7 @@ |
||||||
|
<property name="can_focus">True</property> |
||||||
|
<property name="hexpand">True</property> |
||||||
|
<property name="truncate-multiline">True</property> |
||||||
|
- <property name="adjustment">adjustment1</property> |
||||||
|
+ <property name="adjustment">adjustment3</property> |
||||||
|
</object> |
||||||
|
<packing> |
||||||
|
<property name="left_attach">1</property> |
||||||
|
-- |
||||||
|
2.33.1 |
||||||
|
|
@ -0,0 +1,63 @@ |
|||||||
|
From ea6cfca48017b76bfeb8898e6d9e47b3011a3add Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Sat, 6 Nov 2021 21:32:21 +0000 |
||||||
|
Subject: [PATCH] Resolves: tdf#145567 restore focus to the usual frame focus |
||||||
|
widget |
||||||
|
|
||||||
|
when tearing down the start center. Don't leave the focus in an |
||||||
|
arbitrary widget. |
||||||
|
|
||||||
|
Change-Id: I82c30c94121dc43b2ea1b4fbc66a0a3e79f7e664 |
||||||
|
--- |
||||||
|
vcl/unx/gtk3/gtk3gtkinst.cxx | 28 ++++++++++++++++++++++++++++ |
||||||
|
1 file changed, 28 insertions(+) |
||||||
|
|
||||||
|
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx |
||||||
|
index a5d233e2f95e..0fddb27aaa2d 100644 |
||||||
|
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx |
||||||
|
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx |
||||||
|
@@ -1899,6 +1899,26 @@ GdkDragAction VclToGdk(sal_Int8 dragOperation) |
||||||
|
return eRet; |
||||||
|
} |
||||||
|
|
||||||
|
+GtkWindow* get_active_window() |
||||||
|
+{ |
||||||
|
+ GtkWindow* pFocus = nullptr; |
||||||
|
+ |
||||||
|
+ GList* pList = gtk_window_list_toplevels(); |
||||||
|
+ |
||||||
|
+ for (GList* pEntry = pList; pEntry; pEntry = pEntry->next) |
||||||
|
+ { |
||||||
|
+ if (gtk_window_has_toplevel_focus(GTK_WINDOW(pEntry->data))) |
||||||
|
+ { |
||||||
|
+ pFocus = GTK_WINDOW(pEntry->data); |
||||||
|
+ break; |
||||||
|
+ } |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ g_list_free(pList); |
||||||
|
+ |
||||||
|
+ return pFocus; |
||||||
|
+} |
||||||
|
+ |
||||||
|
class GtkInstanceWidget : public virtual weld::Widget |
||||||
|
{ |
||||||
|
protected: |
||||||
|
@@ -16635,6 +16655,14 @@ private: |
||||||
|
// rehook handler and let vcl cycle its own way through this widget's |
||||||
|
// children |
||||||
|
pFrame->AllowCycleFocusOut(); |
||||||
|
+ |
||||||
|
+ // tdf#145567 if the focus is in this hierarchy then, now that we are tearing down, |
||||||
|
+ // move focus to the usual focus candidate for the frame |
||||||
|
+ GtkWindow* pFocusWin = get_active_window(); |
||||||
|
+ GtkWidget* pFocus = pFocusWin ? gtk_window_get_focus(pFocusWin) : nullptr; |
||||||
|
+ bool bHasFocus = pFocus && gtk_widget_is_ancestor(pFocus, pTopLevel); |
||||||
|
+ if (bHasFocus) |
||||||
|
+ pFrame->GrabFocus(); |
||||||
|
} |
||||||
|
|
||||||
|
static void signalUnmap(GtkWidget*, gpointer user_data) |
||||||
|
-- |
||||||
|
2.33.1 |
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,39 @@ |
|||||||
|
From 68a6c70f25762374f7aed0d4d755345c6f37c78d Mon Sep 17 00:00:00 2001 |
||||||
|
From: Stephan Bergmann <sbergman@redhat.com> |
||||||
|
Date: Mon, 31 May 2021 10:56:38 +0200 |
||||||
|
Subject: [PATCH] Simplify construction of a hardcoded IPv4 address |
||||||
|
|
||||||
|
Change-Id: I822313ee708935dd4ecb636c13a961fdd054d660 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116434 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Stephan Bergmann <sbergman@redhat.com> |
||||||
|
--- |
||||||
|
sd/source/ui/remotecontrol/DiscoveryService.cxx | 12 +----------- |
||||||
|
1 file changed, 1 insertion(+), 11 deletions(-) |
||||||
|
|
||||||
|
diff --git a/sd/source/ui/remotecontrol/DiscoveryService.cxx b/sd/source/ui/remotecontrol/DiscoveryService.cxx |
||||||
|
index 9ed2ae727761..cf0043387403 100644 |
||||||
|
--- a/sd/source/ui/remotecontrol/DiscoveryService.cxx |
||||||
|
+++ b/sd/source/ui/remotecontrol/DiscoveryService.cxx |
||||||
|
@@ -119,17 +119,7 @@ void DiscoveryService::setupSockets() |
||||||
|
|
||||||
|
struct ip_mreq multicastRequest; |
||||||
|
|
||||||
|
-// the Win32 SDK 8.1 deprecates inet_addr() |
||||||
|
-#if defined(_WIN32) |
||||||
|
- IN_ADDR addr; |
||||||
|
- INT ret = InetPtonW(AF_INET, L"239.0.0.1", & addr); |
||||||
|
- if (1 == ret) |
||||||
|
- { |
||||||
|
- multicastRequest.imr_multiaddr.s_addr = addr.S_un.S_addr; |
||||||
|
- } |
||||||
|
-#else |
||||||
|
- multicastRequest.imr_multiaddr.s_addr = inet_addr( "239.0.0.1" ); |
||||||
|
-#endif |
||||||
|
+ multicastRequest.imr_multiaddr.s_addr = htonl((239U << 24) | 1U); // 239.0.0.1 |
||||||
|
multicastRequest.imr_interface.s_addr = htonl(INADDR_ANY); |
||||||
|
|
||||||
|
rc = setsockopt( mSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, |
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,143 @@ |
|||||||
|
From 6de192ad5ffe9ec04328bfd178050cb8a33e1cbb Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Wed, 15 Dec 2021 12:46:24 +0000 |
||||||
|
Subject: [PATCH] annocheck warning about missing .note.gnu.property section |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
copy and paste recommendation from: |
||||||
|
https://sourceware.org/annobin/annobin.html/Test-cf-protection.html |
||||||
|
|
||||||
|
and adapt like: |
||||||
|
https://github.com/openssl/openssl/commit/51994e505dbb1cd0dd76869ec962e2948b77b585 |
||||||
|
where https://bugs.ruby-lang.org/attachments/8962 is similar |
||||||
|
|
||||||
|
Intel docs have "The ENDBR32 and ENDBR64 (collectively ENDBRANCH) are |
||||||
|
two new instructions that are used to mark valid indirect CALL/JMP |
||||||
|
target locations in the program." |
||||||
|
|
||||||
|
Change-Id: Ie867c263a888763db4478720ba189c9ec6cc974d |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126859 |
||||||
|
Tested-by: Jenkins |
||||||
|
Tested-by: Caolán McNamara <caolanm@redhat.com> |
||||||
|
Reviewed-by: Caolán McNamara <caolanm@redhat.com> |
||||||
|
(cherry picked from commit af55dc3891f7950d392175004b2090cb0e54828e) |
||||||
|
--- |
||||||
|
.../source/cpp_uno/gcc3_linux_intel/call.s | 16 ++++++++++++++++ |
||||||
|
.../source/cpp_uno/gcc3_linux_x86-64/call.s | 19 +++++++++++++++++++ |
||||||
|
config_host.mk.in | 1 + |
||||||
|
configure.ac | 14 ++++++++++++++ |
||||||
|
solenv/gbuild/platform/com_GCC_class.mk | 1 + |
||||||
|
5 files changed, 51 insertions(+) |
||||||
|
|
||||||
|
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/call.s b/bridges/source/cpp_uno/gcc3_linux_intel/call.s |
||||||
|
index 6be583247733..0a5870defcf3 100644 |
||||||
|
--- a/bridges/source/cpp_uno/gcc3_linux_intel/call.s |
||||||
|
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/call.s |
||||||
|
@@ -290,3 +290,19 @@ privateSnippetExecutorClass: |
||||||
|
.align 4 |
||||||
|
.LEFDEc: |
||||||
|
.section .note.GNU-stack,"",@progbits |
||||||
|
+ .section .note.gnu.property,"a" |
||||||
|
+ .p2align 2 |
||||||
|
+ .long 1f - 0f |
||||||
|
+ .long 4f - 1f |
||||||
|
+ .long 5 |
||||||
|
+0: |
||||||
|
+ .string "GNU" |
||||||
|
+1: |
||||||
|
+ .p2align 2 |
||||||
|
+ .long 0xc0000002 |
||||||
|
+ .long 3f - 2f |
||||||
|
+2: |
||||||
|
+ .long 0x3 |
||||||
|
+3: |
||||||
|
+ .p2align 2 |
||||||
|
+4: |
||||||
|
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s |
||||||
|
index 447ac0cecfdd..2e9346dff8a0 100644 |
||||||
|
--- a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s |
||||||
|
+++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s |
||||||
|
@@ -22,6 +22,9 @@ |
||||||
|
.type privateSnippetExecutor, @function |
||||||
|
privateSnippetExecutor: |
||||||
|
.LFB3: |
||||||
|
+#if defined(END_BRANCH_INS_SUPPORT) |
||||||
|
+ endbr64 |
||||||
|
+#endif |
||||||
|
pushq %rbp |
||||||
|
.LCFI0: |
||||||
|
movq %rsp, %rbp |
||||||
|
@@ -115,3 +118,19 @@ privateSnippetExecutor: |
||||||
|
.align 8 |
||||||
|
.LEFDE1: |
||||||
|
.section .note.GNU-stack,"",@progbits |
||||||
|
+ .section .note.gnu.property,"a" |
||||||
|
+ .p2align 3 |
||||||
|
+ .long 1f - 0f |
||||||
|
+ .long 4f - 1f |
||||||
|
+ .long 5 |
||||||
|
+0: |
||||||
|
+ .string "GNU" |
||||||
|
+1: |
||||||
|
+ .p2align 3 |
||||||
|
+ .long 0xc0000002 |
||||||
|
+ .long 3f - 2f |
||||||
|
+2: |
||||||
|
+ .long 0x3 |
||||||
|
+3: |
||||||
|
+ .p2align 3 |
||||||
|
+4: |
||||||
|
diff --git a/config_host.mk.in b/config_host.mk.in |
||||||
|
index d6edba704b21..6ac2a90695e2 100644 |
||||||
|
--- a/config_host.mk.in |
||||||
|
+++ b/config_host.mk.in |
||||||
|
@@ -260,6 +260,7 @@ export GTK3_CFLAGS=$(gb_SPACE)@GTK3_CFLAGS@ |
||||||
|
export GTK3_LIBS=$(gb_SPACE)@GTK3_LIBS@ |
||||||
|
export USING_X11=@USING_X11@ |
||||||
|
export HAMCREST_JAR=@HAMCREST_JAR@ |
||||||
|
+export HAVE_ASM_END_BRANCH_INS_SUPPORT=@HAVE_ASM_END_BRANCH_INS_SUPPORT@ |
||||||
|
export HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=@HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED@ |
||||||
|
export HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR=@HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR@ |
||||||
|
export HAVE_LO_CLANG_DLLEXPORTINLINES=@HAVE_LO_CLANG_DLLEXPORTINLINES@ |
||||||
|
diff --git a/configure.ac b/configure.ac |
||||||
|
index bd28bc6eb38e..ef03408e8e98 100644 |
||||||
|
--- a/configure.ac |
||||||
|
+++ b/configure.ac |
||||||
|
@@ -7730,6 +7730,20 @@ _ACEOF |
||||||
|
|
||||||
|
CPPFLAGS="$save_CPPFLAGS" |
||||||
|
|
||||||
|
+ AC_MSG_CHECKING([if CET endbranch is recognized]) |
||||||
|
+cat > endbr.s <<_ACEOF |
||||||
|
+endbr32 |
||||||
|
+_ACEOF |
||||||
|
+ HAVE_ASM_END_BRANCH_INS_SUPPORT= |
||||||
|
+ if $CXX -c endbr.s -o endbr.o >/dev/null 2>&5; then |
||||||
|
+ AC_MSG_RESULT([yes]) |
||||||
|
+ HAVE_ASM_END_BRANCH_INS_SUPPORT=TRUE |
||||||
|
+ else |
||||||
|
+ AC_MSG_RESULT([no]) |
||||||
|
+ fi |
||||||
|
+ rm -f endbr.s endbr.o |
||||||
|
+ AC_SUBST(HAVE_ASM_END_BRANCH_INS_SUPPORT) |
||||||
|
+ |
||||||
|
AC_LANG_POP([C++]) |
||||||
|
fi |
||||||
|
|
||||||
|
diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk |
||||||
|
index c29e2a979fd9..e2056abf9682 100644 |
||||||
|
--- a/solenv/gbuild/platform/com_GCC_class.mk |
||||||
|
+++ b/solenv/gbuild/platform/com_GCC_class.mk |
||||||
|
@@ -44,6 +44,7 @@ $(call gb_Helper_abbreviate_dirs,\ |
||||||
|
-x assembler-with-cpp \ |
||||||
|
$(gb_LTOFLAGS) \ |
||||||
|
$(gb_AFLAGS) \ |
||||||
|
+ $(if $(HAVE_ASM_END_BRANCH_INS_SUPPORT),-DEND_BRANCH_INS_SUPPORT) \ |
||||||
|
-c $(3) \ |
||||||
|
-o $(1)) \ |
||||||
|
$(INCLUDE) && \ |
||||||
|
-- |
||||||
|
2.33.1 |
||||||
|
|
@ -0,0 +1,58 @@ |
|||||||
|
From ffceb48dd576ababe346c9548b12ca18f31d3293 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Fri, 10 Mar 2023 11:41:45 +0000 |
||||||
|
Subject: [PATCH] default to sifr for gnome light mode |
||||||
|
|
||||||
|
https://pagure.io/fedora-workstation/issue/361 |
||||||
|
|
||||||
|
"Fedora Workstation currently uses the rather outdated-looking |
||||||
|
Elementary icon theme for LibreOffice, instead of the Sifr icon theme |
||||||
|
which was designed to fit in with GNOME's icons. The Sifr theme saw a |
||||||
|
nice update with LibreOffice 7.5, the version being shipped in Fedora |
||||||
|
Linux 38, which makes the icons fit better with the current GNOME design |
||||||
|
language." |
||||||
|
|
||||||
|
Change-Id: Ic37bbe8e7ad754ab070ead06dc0b006c6ccf3adb |
||||||
|
--- |
||||||
|
vcl/qa/cppunit/app/test_IconThemeSelector.cxx | 4 ++-- |
||||||
|
vcl/source/app/IconThemeSelector.cxx | 2 +- |
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/vcl/qa/cppunit/app/test_IconThemeSelector.cxx b/vcl/qa/cppunit/app/test_IconThemeSelector.cxx |
||||||
|
index 72ee344b1437..8d1aea0c3889 100644 |
||||||
|
--- a/vcl/qa/cppunit/app/test_IconThemeSelector.cxx |
||||||
|
+++ b/vcl/qa/cppunit/app/test_IconThemeSelector.cxx |
||||||
|
@@ -85,7 +85,7 @@ IconThemeSelectorTest::ElementaryIsReturnedForGnomeDesktop() |
||||||
|
std::vector<vcl::IconThemeInfo> themes = GetFakeInstalledThemes(); |
||||||
|
vcl::IconThemeSelector s; |
||||||
|
OUString r = s.SelectIconThemeForDesktopEnvironment(themes, "gnome"); |
||||||
|
- CPPUNIT_ASSERT_EQUAL_MESSAGE("'elementary' theme is returned for gnome desktop", OUString("elementary"), r); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("'sifr' theme is returned for gnome desktop", OUString("sifr"), r); |
||||||
|
} |
||||||
|
|
||||||
|
void |
||||||
|
@@ -96,7 +96,7 @@ IconThemeSelectorTest::ThemeIsOverriddenByPreferredTheme() |
||||||
|
s.SetPreferredIconTheme(preferred, false); |
||||||
|
std::vector<vcl::IconThemeInfo> themes = GetFakeInstalledThemes(); |
||||||
|
OUString selected = s.SelectIconThemeForDesktopEnvironment(themes, "gnome"); |
||||||
|
- CPPUNIT_ASSERT_EQUAL_MESSAGE("'elementary' theme is overridden by breeze", preferred, selected); |
||||||
|
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("'sifr' theme is overridden by breeze", preferred, selected); |
||||||
|
} |
||||||
|
|
||||||
|
void |
||||||
|
diff --git a/vcl/source/app/IconThemeSelector.cxx b/vcl/source/app/IconThemeSelector.cxx |
||||||
|
index 6b8dfc0f42c7..ee30e577f3f5 100644 |
||||||
|
--- a/vcl/source/app/IconThemeSelector.cxx |
||||||
|
+++ b/vcl/source/app/IconThemeSelector.cxx |
||||||
|
@@ -86,7 +86,7 @@ IconThemeSelector::GetIconThemeForDesktopEnvironment(const OUString& desktopEnvi |
||||||
|
desktopEnvironment.equalsIgnoreAsciiCase("mate") || |
||||||
|
desktopEnvironment.equalsIgnoreAsciiCase("unity") ) { |
||||||
|
if (!bPreferDarkIconTheme) |
||||||
|
- r = "elementary"; |
||||||
|
+ r = "sifr"; |
||||||
|
else |
||||||
|
r = "sifr_dark"; |
||||||
|
} else |
||||||
|
-- |
||||||
|
2.40.1 |
||||||
|
|
@ -0,0 +1,145 @@ |
|||||||
|
From 0b613b941c3ffbe432934269f8865bc1f9e59cde Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Tue, 27 Sep 2022 15:13:59 -0700 |
||||||
|
Subject: [PATCH] disable libe-book support |
||||||
|
|
||||||
|
--- |
||||||
|
configure.ac | 3 --- |
||||||
|
external/Module_external.mk | 1 - |
||||||
|
filter/Configuration_filter.mk | 8 -------- |
||||||
|
writerperfect/Library_wpftwriter.mk | 2 -- |
||||||
|
writerperfect/qa/unit/WpftFilterFixture.hxx | 4 ---- |
||||||
|
writerperfect/qa/unit/WpftWriterFilterTest.cxx | 5 ----- |
||||||
|
writerperfect/source/writer/wpftwriter.component | 6 ------ |
||||||
|
7 files changed, 29 deletions(-) |
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac |
||||||
|
index 8babc85..e7733de 100644 |
||||||
|
--- a/configure.ac |
||||||
|
+++ b/configure.ac |
||||||
|
@@ -9606,9 +9606,6 @@ libo_PKG_VERSION([ETONYEK], [libetonyek-0.1], [0.1.10]) |
||||||
|
|
||||||
|
libo_CHECK_SYSTEM_MODULE([libfreehand],[FREEHAND],[libfreehand-0.1]) |
||||||
|
|
||||||
|
-libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.1]) |
||||||
|
-libo_PKG_VERSION([EBOOK], [libe-book-0.1], [0.1.2]) |
||||||
|
- |
||||||
|
libo_CHECK_SYSTEM_MODULE([libabw],[ABW],[libabw-0.1]) |
||||||
|
|
||||||
|
libo_CHECK_SYSTEM_MODULE([libpagemaker],[PAGEMAKER],[libpagemaker-0.0]) |
||||||
|
diff --git a/external/Module_external.mk b/external/Module_external.mk |
||||||
|
index 366fff2..bc987d1 100644 |
||||||
|
--- a/external/Module_external.mk |
||||||
|
+++ b/external/Module_external.mk |
||||||
|
@@ -31,7 +31,6 @@ $(eval $(call gb_Module_add_moduledirs,external,\ |
||||||
|
$(call gb_Helper_optional,CURL,curl) \ |
||||||
|
$(call gb_Helper_optional,DRAGONBOX,dragonbox) \ |
||||||
|
dtoa \ |
||||||
|
- $(call gb_Helper_optional,EBOOK,libebook) \ |
||||||
|
$(call gb_Helper_optional,EPM,epm) \ |
||||||
|
$(call gb_Helper_optional,EPOXY,epoxy) \ |
||||||
|
$(call gb_Helper_optional,EPUBGEN,libepubgen) \ |
||||||
|
diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk |
||||||
|
index a58b839..526b447 100644 |
||||||
|
--- a/filter/Configuration_filter.mk |
||||||
|
+++ b/filter/Configuration_filter.mk |
||||||
|
@@ -359,10 +359,6 @@ $(eval $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu |
||||||
|
writer_OOXML_Template \ |
||||||
|
writer_layout_dump_xml \ |
||||||
|
writer_indexing_export_xml \ |
||||||
|
- writer_BroadBand_eBook \ |
||||||
|
- writer_FictionBook_2 \ |
||||||
|
- writer_PalmDoc \ |
||||||
|
- writer_Plucker_eBook \ |
||||||
|
writer_ApplePages \ |
||||||
|
MWAW_Text_Document \ |
||||||
|
Palm_Text_Document \ |
||||||
|
@@ -409,10 +405,6 @@ $(eval $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters |
||||||
|
OOXML_Text_Template \ |
||||||
|
writer_layout_dump \ |
||||||
|
writer_indexing_export \ |
||||||
|
- BroadBand_eBook \ |
||||||
|
- FictionBook_2 \ |
||||||
|
- PalmDoc \ |
||||||
|
- Plucker_eBook \ |
||||||
|
ApplePages \ |
||||||
|
MWAW_Text_Document \ |
||||||
|
Palm_Text_Document \ |
||||||
|
diff --git a/writerperfect/Library_wpftwriter.mk b/writerperfect/Library_wpftwriter.mk |
||||||
|
index 840a86f..70a8933 100644 |
||||||
|
--- a/writerperfect/Library_wpftwriter.mk |
||||||
|
+++ b/writerperfect/Library_wpftwriter.mk |
||||||
|
@@ -64,7 +64,6 @@ endif |
||||||
|
$(eval $(call gb_Library_use_externals,wpftwriter,\ |
||||||
|
abw \ |
||||||
|
boost_headers \ |
||||||
|
- ebook \ |
||||||
|
$(if $(ENABLE_WASM_STRIP_SWEXPORTS),,etonyek) \ |
||||||
|
icu_headers \ |
||||||
|
icui18n \ |
||||||
|
@@ -93,7 +92,6 @@ endif |
||||||
|
ifneq ($(ENABLE_WASM_STRIP_SWEXPORTS),TRUE) |
||||||
|
$(eval $(call gb_Library_add_exception_objects,wpftwriter,\ |
||||||
|
writerperfect/source/writer/AbiWordImportFilter \ |
||||||
|
- writerperfect/source/writer/EBookImportFilter \ |
||||||
|
writerperfect/source/writer/MSWorksImportFilter \ |
||||||
|
writerperfect/source/writer/MWAWImportFilter \ |
||||||
|
writerperfect/source/writer/PagesImportFilter \ |
||||||
|
diff --git a/writerperfect/qa/unit/WpftFilterFixture.hxx b/writerperfect/qa/unit/WpftFilterFixture.hxx |
||||||
|
index 2fdd6a2..dbdd672 100644 |
||||||
|
--- a/writerperfect/qa/unit/WpftFilterFixture.hxx |
||||||
|
+++ b/writerperfect/qa/unit/WpftFilterFixture.hxx |
||||||
|
@@ -25,10 +25,6 @@ |
||||||
|
|| ((major) == (req_major) \ |
||||||
|
&& ((minor) > (req_minor) || ((minor) == (req_minor) && ((micro) >= (req_micro))))) |
||||||
|
|
||||||
|
-#define REQUIRE_EBOOK_VERSION(major, minor, micro) \ |
||||||
|
- REQUIRE_VERSION(EBOOK_VERSION_MAJOR, EBOOK_VERSION_MINOR, EBOOK_VERSION_MICRO, major, minor, \ |
||||||
|
- micro) |
||||||
|
- |
||||||
|
#define REQUIRE_ETONYEK_VERSION(major, minor, micro) \ |
||||||
|
REQUIRE_VERSION(ETONYEK_VERSION_MAJOR, ETONYEK_VERSION_MINOR, ETONYEK_VERSION_MICRO, major, \ |
||||||
|
minor, micro) |
||||||
|
diff --git a/writerperfect/qa/unit/WpftWriterFilterTest.cxx b/writerperfect/qa/unit/WpftWriterFilterTest.cxx |
||||||
|
index 78d24dc..39924f9 100644 |
||||||
|
--- a/writerperfect/qa/unit/WpftWriterFilterTest.cxx |
||||||
|
+++ b/writerperfect/qa/unit/WpftWriterFilterTest.cxx |
||||||
|
@@ -30,9 +30,6 @@ WpftWriterFilterTest::WpftWriterFilterTest() |
||||||
|
|
||||||
|
void WpftWriterFilterTest::test() |
||||||
|
{ |
||||||
|
- const writerperfect::test::WpftOptionalMap_t aEBookOptional{ |
||||||
|
- { "FictionBook2.fb2.zip", REQUIRE_EBOOK_VERSION(0, 1, 1) }, |
||||||
|
- }; |
||||||
|
const writerperfect::test::WpftOptionalMap_t aEtonyekOptional{ |
||||||
|
{ "Pages_4.pages", REQUIRE_ETONYEK_VERSION(0, 1, 2) }, |
||||||
|
{ "Pages_5.pages", REQUIRE_ETONYEK_VERSION(0, 1, 8) }, |
||||||
|
@@ -59,8 +56,6 @@ void WpftWriterFilterTest::test() |
||||||
|
|
||||||
|
doTest("com.sun.star.comp.Writer.AbiWordImportFilter", |
||||||
|
u"/writerperfect/qa/unit/data/writer/libabw/"); |
||||||
|
- doTest("org.libreoffice.comp.Writer.EBookImportFilter", |
||||||
|
- u"/writerperfect/qa/unit/data/writer/libe-book/", aEBookOptional); |
||||||
|
doTest("com.sun.star.comp.Writer.MSWorksImportFilter", |
||||||
|
u"/writerperfect/qa/unit/data/writer/libwps/", aWpsOptional); |
||||||
|
doTest("com.sun.star.comp.Writer.MWAWImportFilter", |
||||||
|
diff --git a/writerperfect/source/writer/wpftwriter.component b/writerperfect/source/writer/wpftwriter.component |
||||||
|
index 176d487..0c89217 100644 |
||||||
|
--- a/writerperfect/source/writer/wpftwriter.component |
||||||
|
+++ b/writerperfect/source/writer/wpftwriter.component |
||||||
|
@@ -42,12 +42,6 @@ |
||||||
|
<service name="com.sun.star.document.ImportFilter"/> |
||||||
|
<optional/> |
||||||
|
</implementation> |
||||||
|
- <implementation name="org.libreoffice.comp.Writer.EBookImportFilter" |
||||||
|
- constructor="org_libreoffice_comp_Writer_EBookImportFilter_get_implementation"> |
||||||
|
- <service name="com.sun.star.document.ExtendedTypeDetection"/> |
||||||
|
- <service name="com.sun.star.document.ImportFilter"/> |
||||||
|
- <optional/> |
||||||
|
- </implementation> |
||||||
|
<implementation name="org.libreoffice.comp.Writer.PagesImportFilter" |
||||||
|
constructor="org_libreoffice_comp_Writer_PagesImportFilter_get_implementation"> |
||||||
|
<service name="com.sun.star.document.ExtendedTypeDetection"/> |
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,26 @@ |
|||||||
|
From d6e2cdb0023e422546e3ece5bf9915f7c490ced8 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Fri, 20 Mar 2020 14:24:05 +0000 |
||||||
|
Subject: [PATCH] disble tip-of-the-day dialog by default |
||||||
|
|
||||||
|
Change-Id: Ie7f0e3fe3dda12c2ec88c376d2b57419253ae5cf |
||||||
|
--- |
||||||
|
officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs |
||||||
|
index e7c339e2e22e..9aa88ef1aa02 100644 |
||||||
|
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs |
||||||
|
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs |
||||||
|
@@ -5570,7 +5570,7 @@ |
||||||
|
<info> |
||||||
|
<desc>Determines whether the Tip-of-the-Day dialog is shown on startup.</desc> |
||||||
|
</info> |
||||||
|
- <value>true</value> |
||||||
|
+ <value>false</value> |
||||||
|
</prop> |
||||||
|
<prop oor:name="LastTipOfTheDayShown" oor:type="xs:int" oor:nillable="false"> |
||||||
|
<info> |
||||||
|
-- |
||||||
|
2.24.1 |
||||||
|
|
@ -0,0 +1,45 @@ |
|||||||
|
From ce37356f6bcaaef62a80814d7d54d3aa6d53167d Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Tue, 12 Oct 2021 09:52:53 +0100 |
||||||
|
Subject: [PATCH] document-new shouldn't get prefixed to become |
||||||
|
libreoffice-document-new |
||||||
|
|
||||||
|
seen by rpminspect as .desktop "references icon libreoffice-document-new |
||||||
|
but no subpackages contain libreoffice-document-new" |
||||||
|
|
||||||
|
introduced by: |
||||||
|
|
||||||
|
commit f767d5e2b017c0d0cfd23ff3318cb30901847722 |
||||||
|
Date: Sun Sep 1 11:30:12 2019 +0200 |
||||||
|
|
||||||
|
Add icons to New Document desktop file actions |
||||||
|
|
||||||
|
in the [Desktop Action NewDocument] section |
||||||
|
|
||||||
|
Change-Id: I64ce5e2dbaca32083b2f76e960c33a815f8a3773 |
||||||
|
--- |
||||||
|
sysui/desktop/share/brand.pl | 8 +++++--- |
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/sysui/desktop/share/brand.pl b/sysui/desktop/share/brand.pl |
||||||
|
index 9d73e619c495..b17a7374fd62 100644 |
||||||
|
--- a/sysui/desktop/share/brand.pl |
||||||
|
+++ b/sysui/desktop/share/brand.pl |
||||||
|
@@ -81,9 +81,11 @@ while ($arg = shift) { |
||||||
|
# remove possible Windows line-ends |
||||||
|
chomp; |
||||||
|
|
||||||
|
- # patch all occurrences of openoffice in ICON line with |
||||||
|
- # $prefix |
||||||
|
- s/Icon=/Icon=$iconprefix/; |
||||||
|
+ # patch all icons in ICON line with $prefix |
||||||
|
+ if (! /Icon=document-new/ ) { # except for Icon=document-new which |
||||||
|
+ # is a stock icon, not one of ours |
||||||
|
+ s/Icon=/Icon=$iconprefix/; |
||||||
|
+ } |
||||||
|
|
||||||
|
# patch all occurrences of openoffice in icon_filename |
||||||
|
# line with $prefix |
||||||
|
-- |
||||||
|
2.32.0 |
||||||
|
|
@ -0,0 +1,37 @@ |
|||||||
|
From a6f2cba43d79347b6975b3b8069b423c94a7dba6 Mon Sep 17 00:00:00 2001 |
||||||
|
From: David Tardon <dtardon@redhat.com> |
||||||
|
Date: Tue, 8 Nov 2016 11:50:06 +0100 |
||||||
|
Subject: [PATCH] don't suppress crashes |
||||||
|
|
||||||
|
An automatic restart after a crash makes the crash invisible to abrt. |
||||||
|
|
||||||
|
Change-Id: I3854e619356049b144b08575879d289a3c12e4c9 |
||||||
|
--- |
||||||
|
desktop/source/app/app.cxx | 4 +--- |
||||||
|
1 file changed, 1 insertion(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx |
||||||
|
index c54aea9dd4f7..a613fe12cef2 100644 |
||||||
|
--- a/desktop/source/app/app.cxx |
||||||
|
+++ b/desktop/source/app/app.cxx |
||||||
|
@@ -1165,8 +1165,6 @@ |
||||||
|
if( bRestart ) |
||||||
|
{ |
||||||
|
RequestHandler::Disable(); |
||||||
|
- if( pSignalHandler ) |
||||||
|
- osl_removeSignalHandler( pSignalHandler ); |
||||||
|
|
||||||
|
restartOnMac(false); |
||||||
|
#if !ENABLE_WASM_STRIP_SPLASH |
||||||
|
@@ -1174,7 +1172,7 @@ |
||||||
|
m_rSplashScreen->reset(); |
||||||
|
#endif |
||||||
|
|
||||||
|
- _exit( EXITHELPER_CRASH_WITH_RESTART ); |
||||||
|
+ return; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
-- |
||||||
|
2.29.2 |
||||||
|
|
@ -0,0 +1,40 @@ |
|||||||
|
From a94b58277c7aeaa83ce14347cd0b8f7137969d03 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com> |
||||||
|
Date: Fri, 29 Oct 2021 14:20:57 +0200 |
||||||
|
Subject: [PATCH] fix comparison when searching cache |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
This made the cache always fail and re-cache, making CJK text layout |
||||||
|
slower over time. A mistake from ef513fd4b049b214a03fbe6e that |
||||||
|
converted !strcmp() to != instead of ==. |
||||||
|
|
||||||
|
Change-Id: Ib70579cd36d7b1df062e4d067e03f5c65e34b142 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124432 |
||||||
|
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> |
||||||
|
Reviewed-by: Luboš Luňák <l.lunak@collabora.com> |
||||||
|
Tested-by: Luboš Luňák <l.lunak@collabora.com> |
||||||
|
(cherry picked from commit 5b38b5744af1e896892df708c16b83e1b551d2c7) |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124206 |
||||||
|
Tested-by: Jenkins |
||||||
|
--- |
||||||
|
i18npool/source/breakiterator/xdictionary.cxx | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/i18npool/source/breakiterator/xdictionary.cxx b/i18npool/source/breakiterator/xdictionary.cxx |
||||||
|
index 947a23c5073b..6b57433370c7 100644 |
||||||
|
--- a/i18npool/source/breakiterator/xdictionary.cxx |
||||||
|
+++ b/i18npool/source/breakiterator/xdictionary.cxx |
||||||
|
@@ -152,7 +152,7 @@ void xdictionary::initDictionaryData(const char *pLang) |
||||||
|
osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ); |
||||||
|
for(const datacache & i : aLoadedCache) |
||||||
|
{ |
||||||
|
- if( i.maLang != pLang ) |
||||||
|
+ if( i.maLang == pLang ) |
||||||
|
{ |
||||||
|
data = i.maData; |
||||||
|
return; |
||||||
|
-- |
||||||
|
2.33.1 |
||||||
|
|
@ -0,0 +1,40 @@ |
|||||||
|
From 2f11e4247b6332b06a5b23c33207fa10767244a6 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Thierry Vignaud <thierry.vignaud@gmail.com> |
||||||
|
Date: Thu, 30 Jan 2020 11:19:20 +0000 |
||||||
|
Subject: [PATCH] fix detecting qrcodegen |
||||||
|
|
||||||
|
Change-Id: Ib945b57420083489273cefc5655eb50932b5a3f8 |
||||||
|
--- |
||||||
|
configure.ac | 2 +- |
||||||
|
cui/source/dialogs/QrCodeGenDialog.cxx | 2 +- |
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac |
||||||
|
index 5a14369..ebd1b55 100644 |
||||||
|
--- a/configure.ac |
||||||
|
+++ b/configure.ac |
||||||
|
@@ -10250,7 +10250,7 @@ else |
||||||
|
AC_MSG_RESULT([external]) |
||||||
|
SYSTEM_QRCODEGEN=TRUE |
||||||
|
AC_LANG_PUSH([C++]) |
||||||
|
- AC_CHECK_HEADER(qrcodegen/QrCode.hpp, [], |
||||||
|
+ AC_CHECK_HEADER(qrcodegencpp/QrCode.hpp, [], |
||||||
|
[AC_MSG_ERROR(qrcodegen headers not found.)], [#include <stdexcept>]) |
||||||
|
AC_CHECK_LIB([qrcodegencpp], [main], [:], |
||||||
|
[ AC_MSG_ERROR(qrcodegen C++ library not found.) ], []) |
||||||
|
diff --git a/cui/source/dialogs/QrCodeGenDialog.cxx b/cui/source/dialogs/QrCodeGenDialog.cxx |
||||||
|
index 7f3f6a8..b79a356 100644 |
||||||
|
--- a/cui/source/dialogs/QrCodeGenDialog.cxx |
||||||
|
+++ b/cui/source/dialogs/QrCodeGenDialog.cxx |
||||||
|
@@ -19,7 +19,7 @@ |
||||||
|
|
||||||
|
#if ENABLE_QRCODEGEN |
||||||
|
#if defined(SYSTEM_QRCODEGEN) |
||||||
|
-#include <qrcodegen/QrCode.hpp> |
||||||
|
+#include <qrcodegencpp/QrCode.hpp> |
||||||
|
#else |
||||||
|
#include <QrCode.hpp> |
||||||
|
#endif |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,118 @@ |
|||||||
|
From b06e5e2b9761d242d9269b091da9a98ec705d2b1 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Tue, 1 Jun 2021 13:20:43 +0100 |
||||||
|
Subject: [PATCH] gtk3: workaround missing gdk_threads_enter calls in external |
||||||
|
code |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
with gtk3 file dialog. file, open, +other locations, |
||||||
|
type davs://somewhere + return |
||||||
|
|
||||||
|
#0 0x00007ffff7a6e2a2 in raise () at /lib64/libc.so.6 |
||||||
|
#1 0x00007ffff7a578a4 in abort () at /lib64/libc.so.6 |
||||||
|
#2 0x00007ffff7a57789 in _nl_load_domain.cold () at /lib64/libc.so.6 |
||||||
|
#3 0x00007ffff7a66a16 in () at /lib64/libc.so.6 |
||||||
|
#4 0x00007fffd9be7672 in GtkYieldMutex::ThreadsLeave() (this=0x513480) at vcl/unx/gtk3/gtkinst.cxx:354 |
||||||
|
#5 0x00007fffd9be6a53 in GdkThreadsLeave() () at vcl/unx/gtk3/gtkinst.cxx:116 |
||||||
|
#6 0x00007fffd947ac2d in gtk_dialog_run (dialog=0xa984310) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkdialog.c:1397 |
||||||
|
^^^ this also (see #30) calls gdk_threads_leave before g_main_loop_run, but no gdk_threads_enter has been called, presumably emit_show_error_message should have called it (?) ^^^ |
||||||
|
#7 0x00007fffd94a6dc6 in error_message_with_parent (detail=0xa97f9b0 "HTTP Error: Error resolving “nowhere”: Name or service not known", msg=<optimized out>, parent=<optimized out>) |
||||||
|
at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkfilechooserwidget.c:763 |
||||||
|
#8 error_message (impl=<optimized out>, msg=<optimized out>, detail=0xa97f9b0 "HTTP Error: Error resolving “nowhere”: Name or service not known") at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkfilechooserwidget.c:786 |
||||||
|
#9 0x00007fffe996ec2f in g_closure_invoke () at /lib64/libgobject-2.0.so.0 |
||||||
|
#10 0x00007fffe998aea6 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0 |
||||||
|
#11 0x00007fffe998c76a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0 |
||||||
|
#12 0x00007fffe998c983 in g_signal_emit () at /lib64/libgobject-2.0.so.0 |
||||||
|
#13 0x00007fffd9561fc7 in emit_show_error_message (secondary_message=0x7fffbc0566f0 "HTTP Error: Error resolving “nowhere”: Name or service not known", primary_message=<optimized out>, view=0x900a240) |
||||||
|
at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkplacesview.c:171 |
||||||
|
#14 server_mount_ready_cb (source_file=0x7fffbc05b4c0, res=<optimized out>, user_data=0x900a240) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkplacesview.c:1232 |
||||||
|
#15 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 |
||||||
|
#16 0x00007fffe9a64c7b in g_task_return () at /lib64/libgio-2.0.so.0 |
||||||
|
#17 0x00007fffd80653b8 in mount_reply () at /usr/lib64/gio/modules/libgvfsdbus.so |
||||||
|
#18 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 |
||||||
|
#19 0x00007fffe9a64c7b in g_task_return () at /lib64/libgio-2.0.so.0 |
||||||
|
#20 0x00007fffe9acd2dd in reply_cb () at /lib64/libgio-2.0.so.0 |
||||||
|
#21 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 |
||||||
|
#22 0x00007fffe9a64c7b in g_task_return () at /lib64/libgio-2.0.so.0 |
||||||
|
#23 0x00007fffe9ac4c34 in g_dbus_connection_call_done () at /lib64/libgio-2.0.so.0 |
||||||
|
#24 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 |
||||||
|
#25 0x00007fffe9a64abd in complete_in_idle_cb () at /lib64/libgio-2.0.so.0 |
||||||
|
#26 0x00007fffe987074b in g_idle_dispatch () at /lib64/libglib-2.0.so.0 |
||||||
|
#27 0x00007fffe98744cf in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 |
||||||
|
#28 0x00007fffe98c84e8 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 |
||||||
|
#29 0x00007fffe9873a93 in g_main_loop_run () at /lib64/libglib-2.0.so.0 |
||||||
|
#30 0x00007fffd947ac37 in gtk_dialog_run (dialog=0x1604460) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkdialog.c:1398 |
||||||
|
^^^ this will call gdk_threads_leave before g_main_loop_run, (gdk_threads_enter has been called earlier, and gdk_threads_enter will be called after g_main_loop_run) ^^^ |
||||||
|
#31 0x00007fffd9bdbd96 in RunDialog::run() (this=0x9134f00) at vcl/unx/gtk3/fpicker/SalGtkPicker.cxx:199 |
||||||
|
#32 0x00007fffd9bbf23f in SalGtkFilePicker::execute() (this=0x9004690) at vcl/unx/gtk3/fpicker/SalGtkFilePicker.cxx:953 |
||||||
|
#33 0x00007ffff474741a in sfx2::FileDialogHelper_Impl::implDoExecute() (this=0x1667470) at sfx2/source/dialog/filedlghelper.cxx:1279 |
||||||
|
|
||||||
|
#14 presumably server_mount_ready_cb of gtkplacesview.c should protect its gtk |
||||||
|
calls with gdk_threads_enter/gdk_threads_leave like enclosing_volume_mount_cb |
||||||
|
of gtkfilesystem.c does. |
||||||
|
|
||||||
|
Seeing as gdk_threads_leave/gdk_threads_enter is gone in gtk4 I doubt |
||||||
|
there's any point looking for a fix in gtk3 and we should just try and |
||||||
|
survive the problem. |
||||||
|
|
||||||
|
Change-Id: I007be4dee4f615d4431e27034dcf7f3d446c3e9a |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116559 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Caolán McNamara <caolanm@redhat.com> |
||||||
|
(cherry picked from commit 08b7529f628eda1d209cf27f9bbe52ee336fef62) |
||||||
|
--- |
||||||
|
vcl/unx/gtk3/gtk3gtkinst.cxx | 30 ++++++++++++++++++++++-------- |
||||||
|
1 file changed, 22 insertions(+), 8 deletions(-) |
||||||
|
|
||||||
|
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx |
||||||
|
index 2d4dc36ce5fe..bba4e07f3003 100644 |
||||||
|
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx |
||||||
|
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx |
||||||
|
@@ -314,20 +314,34 @@ thread_local std::stack<sal_uInt32> GtkYieldMutex::yieldCounts; |
||||||
|
void GtkYieldMutex::ThreadsEnter() |
||||||
|
{ |
||||||
|
acquire(); |
||||||
|
- if (!yieldCounts.empty()) { |
||||||
|
- auto n = yieldCounts.top(); |
||||||
|
- yieldCounts.pop(); |
||||||
|
- assert(n > 0); |
||||||
|
- n--; |
||||||
|
- if (n > 0) |
||||||
|
- acquire(n); |
||||||
|
+ if (yieldCounts.empty()) |
||||||
|
+ return; |
||||||
|
+ auto n = yieldCounts.top(); |
||||||
|
+ yieldCounts.pop(); |
||||||
|
+ |
||||||
|
+ const bool bUndoingLeaveWithoutEnter = n == 0; |
||||||
|
+ // if the ThreadsLeave bLeaveWithoutEnter of true condition occurred to |
||||||
|
+ // create this entry then return early undoing the initial acquire of the |
||||||
|
+ // function |
||||||
|
+ if G_UNLIKELY(bUndoingLeaveWithoutEnter) |
||||||
|
+ { |
||||||
|
+ release(); |
||||||
|
+ return; |
||||||
|
} |
||||||
|
+ |
||||||
|
+ assert(n > 0); |
||||||
|
+ n--; |
||||||
|
+ if (n > 0) |
||||||
|
+ acquire(n); |
||||||
|
} |
||||||
|
|
||||||
|
void GtkYieldMutex::ThreadsLeave() |
||||||
|
{ |
||||||
|
- assert(m_nCount != 0); |
||||||
|
+ const bool bLeaveWithoutEnter = m_nCount == 0; |
||||||
|
+ SAL_WARN_IF(bLeaveWithoutEnter, "vcl.gtk", "gdk_threads_leave without matching gdk_threads_enter"); |
||||||
|
yieldCounts.push(m_nCount); |
||||||
|
+ if G_UNLIKELY(bLeaveWithoutEnter) // this ideally shouldn't happen, but can due to the gtk3 file dialog |
||||||
|
+ return; |
||||||
|
release(true); |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,111 @@ |
|||||||
|
From 748a9fd3a8e90e52a126190dbe0d97da6e0941ff Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Wed, 11 Aug 2021 20:55:14 +0100 |
||||||
|
Subject: [PATCH] make --with-idlc-cpp=cpp work for gcc cpp as a ucpp |
||||||
|
replacement |
||||||
|
|
||||||
|
e.g. the example of |
||||||
|
https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1524638 |
||||||
|
has the same output .urd using cpp with these flags as ucpp created |
||||||
|
|
||||||
|
Change-Id: Iadfd2deba7d365c66c3260fd6736c031987e107c |
||||||
|
--- |
||||||
|
config_host.mk.in | 1 + |
||||||
|
configure.ac | 14 ++++++++++++++ |
||||||
|
idlc/Executable_idlc.mk | 8 ++++++++ |
||||||
|
idlc/source/idlccompile.cxx | 8 ++++++++ |
||||||
|
4 files changed, 31 insertions(+) |
||||||
|
|
||||||
|
diff --git a/config_host.mk.in b/config_host.mk.in |
||||||
|
index 58ca1d1c14fb..6810660067b0 100644 |
||||||
|
--- a/config_host.mk.in |
||||||
|
+++ b/config_host.mk.in |
||||||
|
@@ -635,6 +635,7 @@ export SYSTEM_RHINO=@SYSTEM_RHINO@ |
||||||
|
export SYSTEM_SERF=@SYSTEM_SERF@ |
||||||
|
export SYSTEM_STAROFFICE=@SYSTEM_STAROFFICE@ |
||||||
|
export SYSTEM_UCPP=@SYSTEM_UCPP@ |
||||||
|
+export SYSTEM_UCPP_IS_GCC=@SYSTEM_UCPP_IS_GCC@ |
||||||
|
export SYSTEM_VISIO=@SYSTEM_VISIO@ |
||||||
|
export SYSTEM_WPD=@SYSTEM_WPD@ |
||||||
|
export SYSTEM_WPG=@SYSTEM_WPG@ |
||||||
|
diff --git a/configure.ac b/configure.ac |
||||||
|
index 3d2bf7e24555..ac226fd46ace 100644 |
||||||
|
--- a/configure.ac |
||||||
|
+++ b/configure.ac |
||||||
|
@@ -8807,9 +8807,22 @@ dnl =================================================================== |
||||||
|
dnl Check for C preprocessor to use |
||||||
|
dnl =================================================================== |
||||||
|
AC_MSG_CHECKING([which C preprocessor to use in idlc]) |
||||||
|
+SYSTEM_UCPP_IS_GCC= |
||||||
|
if test -n "$with_idlc_cpp"; then |
||||||
|
AC_MSG_RESULT([$with_idlc_cpp]) |
||||||
|
AC_PATH_PROG(SYSTEM_UCPP, $with_idlc_cpp) |
||||||
|
+ AC_MSG_CHECKING([if $with_idlc_cpp is GCC CPP]) |
||||||
|
+ # ucpp will accept -v (to output version), warn about the others as unknown |
||||||
|
+ # and return 1 (due to -v) |
||||||
|
+ # gcc will accept -v (as verbose), --version (to output version) and -nostdinc |
||||||
|
+ # and return 0 (due to --version ) if all options are supported |
||||||
|
+ $SYSTEM_UCPP -v --version -nostdinc >/dev/null 2>/dev/null |
||||||
|
+ if test $? -eq 0; then |
||||||
|
+ SYSTEM_UCPP_IS_GCC=TRUE |
||||||
|
+ AC_MSG_RESULT([yes]) |
||||||
|
+ else |
||||||
|
+ AC_MSG_RESULT([no]) |
||||||
|
+ fi |
||||||
|
else |
||||||
|
AC_MSG_RESULT([ucpp]) |
||||||
|
AC_MSG_CHECKING([which ucpp tp use]) |
||||||
|
@@ -8822,6 +8835,7 @@ else |
||||||
|
fi |
||||||
|
fi |
||||||
|
AC_SUBST(SYSTEM_UCPP) |
||||||
|
+AC_SUBST(SYSTEM_UCPP_IS_GCC) |
||||||
|
|
||||||
|
dnl =================================================================== |
||||||
|
dnl Check for epm (not needed for Windows) |
||||||
|
diff --git a/idlc/Executable_idlc.mk b/idlc/Executable_idlc.mk |
||||||
|
index e194e9049c77..f2f79dcb8911 100644 |
||||||
|
--- a/idlc/Executable_idlc.mk |
||||||
|
+++ b/idlc/Executable_idlc.mk |
||||||
|
@@ -35,10 +35,18 @@ $(eval $(call gb_Executable_add_scanners,idlc,\ |
||||||
|
)) |
||||||
|
|
||||||
|
ifneq (,$(SYSTEM_UCPP)) |
||||||
|
+ |
||||||
|
$(eval $(call gb_Executable_add_defs,idlc,\ |
||||||
|
-DSYSTEM_UCPP \ |
||||||
|
-DUCPP=\"file://$(SYSTEM_UCPP)\" \ |
||||||
|
)) |
||||||
|
+ |
||||||
|
+ifneq ($(SYSTEM_UCPP_IS_GCC),) |
||||||
|
+$(eval $(call gb_Executable_add_defs,idlc,\ |
||||||
|
+ -DSYSTEM_UCPP_IS_GCC \ |
||||||
|
+)) |
||||||
|
+endif |
||||||
|
+ |
||||||
|
endif |
||||||
|
|
||||||
|
$(eval $(call gb_Executable_add_exception_objects,idlc,\ |
||||||
|
diff --git a/idlc/source/idlccompile.cxx b/idlc/source/idlccompile.cxx |
||||||
|
index bf3325d6821a..1902d63e0cad 100644 |
||||||
|
--- a/idlc/source/idlccompile.cxx |
||||||
|
+++ b/idlc/source/idlccompile.cxx |
||||||
|
@@ -237,7 +237,15 @@ sal_Int32 compileFile(const OString * pathname) |
||||||
|
::std::vector< OUString> lCppArgs; |
||||||
|
lCppArgs.emplace_back("-DIDL"); |
||||||
|
lCppArgs.emplace_back("-C"); |
||||||
|
+#ifdef SYSTEM_UCPP_IS_GCC |
||||||
|
+ // -nostdinc Do not search the standard system directories for header files |
||||||
|
+ lCppArgs.emplace_back("-nostdinc"); |
||||||
|
+ // with gcc cpp, even when not explicitly including anything, /usr/include/stdc-predef.h |
||||||
|
+ // gets inserted without -nostdinc |
||||||
|
+#else |
||||||
|
+ // -zI Do not use the standard (compile-time) include path. |
||||||
|
lCppArgs.emplace_back("-zI"); |
||||||
|
+#endif |
||||||
|
|
||||||
|
Options* pOptions = idlc()->getOptions(); |
||||||
|
|
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,39 @@ |
|||||||
|
From f586051919d047e2b67d32637817c3d96a898494 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Wed, 9 Jun 2021 09:13:23 +0100 |
||||||
|
Subject: [PATCH] math.desktop include "Spreadsheet" category |
||||||
|
|
||||||
|
but it's not a spreadsheet |
||||||
|
|
||||||
|
since... |
||||||
|
|
||||||
|
commit dad7fe7227fb80a32d3c2c777584dc9d74b9e929 |
||||||
|
Date: Thu Jan 2 16:16:55 2014 +0100 |
||||||
|
|
||||||
|
Fix math categories to make SUSE rpm check happy |
||||||
|
|
||||||
|
Change-Id: I0397ea12cd7f29f4b0c1f0e0ad76a3429b55c455 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116884 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> |
||||||
|
(cherry picked from commit 2df2ce1b51d13bc9e203fab1b7eb3c88c906588c) |
||||||
|
--- |
||||||
|
sysui/desktop/menus/math.desktop | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/sysui/desktop/menus/math.desktop b/sysui/desktop/menus/math.desktop |
||||||
|
index d2391be5c234..5a8192ae4abc 100644 |
||||||
|
--- a/sysui/desktop/menus/math.desktop |
||||||
|
+++ b/sysui/desktop/menus/math.desktop |
||||||
|
@@ -21,7 +21,7 @@ Terminal=false |
||||||
|
NoDisplay=false |
||||||
|
Icon=math |
||||||
|
Type=Application |
||||||
|
-Categories=Office;Spreadsheet;Education;Science;Math;X-Red-Hat-Base;X-MandrivaLinux-Office-Other; |
||||||
|
+Categories=Office;Education;Science;Math;X-Red-Hat-Base;X-MandrivaLinux-Office-Other; |
||||||
|
Exec=${UNIXBASISROOTNAME} --math %%FILE%% |
||||||
|
MimeType=application/vnd.oasis.opendocument.formula;application/vnd.sun.xml.math;application/vnd.oasis.opendocument.formula-template;text/mathml;application/mathml+xml; |
||||||
|
Name=%PRODUCTNAME Math |
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,26 @@ |
|||||||
|
From 8b8a49e14c1010c5ab325b64fc3b65524a6a6049 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Wed, 20 Jan 2021 09:19:25 +0000 |
||||||
|
Subject: [PATCH] rhbz#1918152 fix FTBFS |
||||||
|
|
||||||
|
Change-Id: I5c03c810d3b2572b0e58c62293add49bd7025e70 |
||||||
|
--- |
||||||
|
vcl/source/gdi/bitmap3.cxx | 2 -- |
||||||
|
1 file changed, 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx |
||||||
|
index ec80b03c6008..8ea5c31bee3e 100644 |
||||||
|
--- a/vcl/source/gdi/bitmap3.cxx |
||||||
|
+++ b/vcl/source/gdi/bitmap3.cxx |
||||||
|
@@ -17,8 +17,6 @@ |
||||||
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 . |
||||||
|
*/ |
||||||
|
|
||||||
|
-#include <math.h> |
||||||
|
- |
||||||
|
#include <vcl/bitmapaccess.hxx> |
||||||
|
#include <vcl/bitmapex.hxx> |
||||||
|
#include <vcl/bitmap.hxx> |
||||||
|
-- |
||||||
|
2.28.0 |
||||||
|
|
@ -0,0 +1,428 @@ |
|||||||
|
From aec3e189e6e9aa1eb2fe91cbb1c46f308b074cd5 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> |
||||||
|
Date: Tue, 13 Jul 2021 12:38:07 +0100 |
||||||
|
Subject: [PATCH] rhbz#1980800 allow --convert-to csv to write each sheet to a |
||||||
|
separate file |
||||||
|
|
||||||
|
Related: tdf#135762 except only currently implemented for command line use |
||||||
|
|
||||||
|
sample usage: |
||||||
|
soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,-1 sample.ods |
||||||
|
where the new (11th!) final token ("-1") enables writing each sheet to a |
||||||
|
new file based on the suggested target name so output in this example |
||||||
|
is files sample-Sheet1.csv and sample-Sheet2.csv |
||||||
|
|
||||||
|
Only -1 for 'all sheets' vs 0 for existing 'current sheet only' (which |
||||||
|
is always sheet 0 from the command line) are currently options but the |
||||||
|
token could be expanded in the future to select specific sheets to |
||||||
|
export. |
||||||
|
|
||||||
|
Change-Id: Ib99a120f1a2c8d1008a7a3c59a6b39f572fb346e |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118850 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Eike Rathke <erack@redhat.com> |
||||||
|
(cherry picked from commit b8903bc106dad036acb3d117e5c4fc955697fe02) |
||||||
|
|
||||||
|
Related: tdf#135762 Allow --convert-to csv to specify 1-based sheet number |
||||||
|
|
||||||
|
Same multifile mechanism as for -1 all sheets is used, so |
||||||
|
|
||||||
|
soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,2 sample.ods |
||||||
|
|
||||||
|
writes a file sample-Sheet2.csv |
||||||
|
|
||||||
|
Change-Id: Ib9248c9561e4e340c88458ac5dfd159e443a4cfd |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118971 |
||||||
|
Reviewed-by: Eike Rathke <erack@redhat.com> |
||||||
|
Tested-by: Jenkins |
||||||
|
(cherry picked from commit fda91f8be16ba760e360940ebafd6244c648cb8c) |
||||||
|
|
||||||
|
Related: tdf#135762 Suppress cout if not command line |
||||||
|
|
||||||
|
Change-Id: I9431221aadf97739bb197871f25fa151ef4c391c |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119294 |
||||||
|
Reviewed-by: Eike Rathke <erack@redhat.com> |
||||||
|
Tested-by: Jenkins |
||||||
|
(cherry picked from commit 0cda081c9aa3b3dcb363f97bac60c845ce9a13e0) |
||||||
|
--- |
||||||
|
desktop/source/app/dispatchwatcher.cxx | 50 +++++++-- |
||||||
|
sc/source/ui/dbgui/imoptdlg.cxx | 16 ++- |
||||||
|
sc/source/ui/docshell/docsh.cxx | 141 +++++++++++++++++++++---- |
||||||
|
sc/source/ui/inc/docsh.hxx | 2 +- |
||||||
|
sc/source/ui/inc/imoptdlg.hxx | 6 +- |
||||||
|
5 files changed, 179 insertions(+), 36 deletions(-) |
||||||
|
|
||||||
|
diff --git a/desktop/source/app/dispatchwatcher.cxx b/desktop/source/app/dispatchwatcher.cxx |
||||||
|
index 50b92ecb7834..3df4f34ccf83 100644 |
||||||
|
--- a/desktop/source/app/dispatchwatcher.cxx |
||||||
|
+++ b/desktop/source/app/dispatchwatcher.cxx |
||||||
|
@@ -30,6 +30,7 @@ |
||||||
|
#include "officeipcthread.hxx" |
||||||
|
#include <rtl/ustring.hxx> |
||||||
|
#include <comphelper/processfactory.hxx> |
||||||
|
+#include <comphelper/string.hxx> |
||||||
|
#include <comphelper/synchronousdispatch.hxx> |
||||||
|
#include <com/sun/star/io/IOException.hpp> |
||||||
|
#include <com/sun/star/util/XCloseable.hpp> |
||||||
|
@@ -598,6 +599,8 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest |
||||||
|
aFilter = impl_GuessFilter( aOutFile, aDocService ); |
||||||
|
} |
||||||
|
|
||||||
|
+ bool bMultiFileTarget = false; |
||||||
|
+ |
||||||
|
if (aFilter.isEmpty()) |
||||||
|
{ |
||||||
|
std::cerr << "Error: no export filter" << std::endl; |
||||||
|
@@ -605,29 +608,54 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest |
||||||
|
else |
||||||
|
{ |
||||||
|
sal_Int32 nFilterOptionsIndex = aFilter.indexOf(':'); |
||||||
|
- sal_Int32 nProps = ( 0 < nFilterOptionsIndex ) ? 3 : 2; |
||||||
|
+ sal_Int32 nProps = ( 0 < nFilterOptionsIndex ) ? 4 : 3; |
||||||
|
|
||||||
|
if ( !aImgOut.isEmpty() ) |
||||||
|
nProps +=1; |
||||||
|
Sequence<PropertyValue> conversionProperties( nProps ); |
||||||
|
- conversionProperties[0].Name = "Overwrite"; |
||||||
|
- conversionProperties[0].Value <<= true; |
||||||
|
+ conversionProperties[0].Name = "ConversionRequestOrigin"; |
||||||
|
+ conversionProperties[0].Value <<= OUString("CommandLine"); |
||||||
|
+ conversionProperties[1].Name = "Overwrite"; |
||||||
|
+ conversionProperties[1].Value <<= true; |
||||||
|
|
||||||
|
- conversionProperties[1].Name = "FilterName"; |
||||||
|
+ conversionProperties[2].Name = "FilterName"; |
||||||
|
if( 0 < nFilterOptionsIndex ) |
||||||
|
{ |
||||||
|
- conversionProperties[1].Value <<= aFilter.copy(0, nFilterOptionsIndex); |
||||||
|
+ OUString sFilterName = aFilter.copy(0, nFilterOptionsIndex); |
||||||
|
+ OUString sFilterOptions = aFilter.copy(nFilterOptionsIndex + 1); |
||||||
|
+ |
||||||
|
+ if (sFilterName == "Text - txt - csv (StarCalc)") |
||||||
|
+ { |
||||||
|
+ sal_Int32 nIdx(0); |
||||||
|
+ // If the 11th token is '-1' then we export a file |
||||||
|
+ // per sheet where the file name is based on the suggested |
||||||
|
+ // output filename concatenated with the sheet name, so adjust |
||||||
|
+ // the output and overwrite messages |
||||||
|
+ // If the 11th token is not present or numeric 0 then the |
||||||
|
+ // default sheet is exported with the output filename. If it |
||||||
|
+ // is numeric >0 then that sheet (1-based) with the output |
||||||
|
+ // filename concatenated with the sheet name. So even if |
||||||
|
+ // that is a single file, the multi file target mechanism is |
||||||
|
+ // used. |
||||||
|
+ const OUString aTok(sFilterOptions.getToken(11, ',', nIdx)); |
||||||
|
+ // Actual validity is checked in Calc, here just check for |
||||||
|
+ // presence of numeric value at start. |
||||||
|
+ bMultiFileTarget = (!aTok.isEmpty() && aTok.toInt32() != 0); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ conversionProperties[2].Value <<= sFilterName; |
||||||
|
|
||||||
|
- conversionProperties[2].Name = "FilterOptions"; |
||||||
|
- conversionProperties[2].Value <<= aFilter.copy(nFilterOptionsIndex + 1); |
||||||
|
+ conversionProperties[3].Name = "FilterOptions"; |
||||||
|
+ conversionProperties[3].Value <<= sFilterOptions; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
- conversionProperties[1].Value <<= aFilter; |
||||||
|
+ conversionProperties[2].Value <<= aFilter; |
||||||
|
} |
||||||
|
|
||||||
|
if ( !aImgOut.isEmpty() ) |
||||||
|
{ |
||||||
|
+ assert(conversionProperties[nProps-1].Name.isEmpty()); |
||||||
|
conversionProperties[nProps-1].Name = "ImageFilter"; |
||||||
|
conversionProperties[nProps-1].Value <<= aImgOut; |
||||||
|
} |
||||||
|
@@ -639,9 +667,11 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest |
||||||
|
OString aTargetURL8 = OUStringToOString(aTempName, osl_getThreadTextEncoding()); |
||||||
|
if (aDispatchRequest.aRequestType != REQUEST_CAT) |
||||||
|
{ |
||||||
|
- std::cout << "convert " << aSource8 << " -> " << aTargetURL8; |
||||||
|
+ std::cout << "convert " << aSource8; |
||||||
|
+ if (!bMultiFileTarget) |
||||||
|
+ std::cout << " -> " << aTargetURL8; |
||||||
|
std::cout << " using filter : " << OUStringToOString(aFilter, osl_getThreadTextEncoding()) << std::endl; |
||||||
|
- if (FStatHelper::IsDocument(aOutFile)) |
||||||
|
+ if (!bMultiFileTarget && FStatHelper::IsDocument(aOutFile)) |
||||||
|
std::cout << "Overwriting: " << OUStringToOString(aTempName, osl_getThreadTextEncoding()) << std::endl ; |
||||||
|
} |
||||||
|
try |
||||||
|
diff --git a/sc/source/ui/dbgui/imoptdlg.cxx b/sc/source/ui/dbgui/imoptdlg.cxx |
||||||
|
index 071f1b0257bc..a362e4df0ee7 100644 |
||||||
|
--- a/sc/source/ui/dbgui/imoptdlg.cxx |
||||||
|
+++ b/sc/source/ui/dbgui/imoptdlg.cxx |
||||||
|
@@ -20,6 +20,7 @@ |
||||||
|
#include <imoptdlg.hxx> |
||||||
|
#include <asciiopt.hxx> |
||||||
|
#include <comphelper/string.hxx> |
||||||
|
+#include <unotools/charclass.hxx> |
||||||
|
#include <osl/thread.h> |
||||||
|
#include <global.hxx> |
||||||
|
|
||||||
|
@@ -43,6 +44,7 @@ ScImportOptions::ScImportOptions( const OUString& rStr ) |
||||||
|
bSaveNumberAsSuch = true; |
||||||
|
bSaveFormulas = false; |
||||||
|
bRemoveSpace = false; |
||||||
|
+ nSheetToExport = 0; |
||||||
|
sal_Int32 nTokenCount = comphelper::string::getTokenCount(rStr, ','); |
||||||
|
if ( nTokenCount < 3 ) |
||||||
|
return; |
||||||
|
@@ -77,6 +79,16 @@ ScImportOptions::ScImportOptions( const OUString& rStr ) |
||||||
|
bSaveFormulas = rStr.getToken(0, ',', nIdx) == "true"; |
||||||
|
if ( nTokenCount >= 11 ) |
||||||
|
bRemoveSpace = rStr.getToken(0, ',', nIdx) == "true"; |
||||||
|
+ if ( nTokenCount >= 12 ) |
||||||
|
+ { |
||||||
|
+ const OUString aTok(rStr.getToken(0, ',', nIdx)); |
||||||
|
+ if (aTok == "-1") |
||||||
|
+ nSheetToExport = -1; // all |
||||||
|
+ else if (aTok.isEmpty() || CharClass::isAsciiNumeric(aTok)) |
||||||
|
+ nSheetToExport = aTok.toInt32(); |
||||||
|
+ else |
||||||
|
+ nSheetToExport = -23; // invalid, force error |
||||||
|
+ } |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@@ -99,7 +111,9 @@ OUString ScImportOptions::BuildString() const |
||||||
|
"," + |
||||||
|
OUString::boolean( bSaveFormulas ) + // "save formulas": not in ScAsciiOptions |
||||||
|
"," + |
||||||
|
- OUString::boolean( bRemoveSpace ); // same as "Remove space" in ScAsciiOptions |
||||||
|
+ OUString::boolean( bRemoveSpace ) + // same as "Remove space" in ScAsciiOptions |
||||||
|
+ "," + |
||||||
|
+ OUString::number(nSheetToExport) ; // Only available for command line --convert-to |
||||||
|
|
||||||
|
return aResult; |
||||||
|
} |
||||||
|
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx |
||||||
|
index 91020db0b2e0..5fdfddd0c89b 100644 |
||||||
|
--- a/sc/source/ui/docshell/docsh.cxx |
||||||
|
+++ b/sc/source/ui/docshell/docsh.cxx |
||||||
|
@@ -44,6 +44,7 @@ |
||||||
|
#include <sfx2/objface.hxx> |
||||||
|
#include <sfx2/viewfrm.hxx> |
||||||
|
#include <svl/documentlockfile.hxx> |
||||||
|
+#include <svl/fstathelper.hxx> |
||||||
|
#include <svl/sharecontrolfile.hxx> |
||||||
|
#include <svl/urihelper.hxx> |
||||||
|
#include <osl/file.hxx> |
||||||
|
@@ -119,6 +120,7 @@ |
||||||
|
#include <comphelper/processfactory.hxx> |
||||||
|
#include <comphelper/string.hxx> |
||||||
|
#include <unotools/configmgr.hxx> |
||||||
|
+#include <unotools/ucbstreamhelper.hxx> |
||||||
|
#include <uiitems.hxx> |
||||||
|
#include <dpobject.hxx> |
||||||
|
#include <markdata.hxx> |
||||||
|
@@ -1925,7 +1927,7 @@ void escapeTextSep(sal_Int32 nPos, const StrT& rStrDelim, StrT& rStr) |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
-void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt ) |
||||||
|
+void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt, SCTAB nTab ) |
||||||
|
{ |
||||||
|
sal_Unicode cDelim = rAsciiOpt.nFieldSepCode; |
||||||
|
sal_Unicode cStrDelim = rAsciiOpt.nTextSepCode; |
||||||
|
@@ -1971,7 +1973,6 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt |
||||||
|
|
||||||
|
SCCOL nStartCol = 0; |
||||||
|
SCROW nStartRow = 0; |
||||||
|
- SCTAB nTab = GetSaveTab(); |
||||||
|
SCCOL nEndCol; |
||||||
|
SCROW nEndRow; |
||||||
|
m_aDocument.GetCellArea( nTab, nEndCol, nEndRow ); |
||||||
|
@@ -2389,35 +2390,129 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed ) |
||||||
|
} |
||||||
|
else if (aFltName == pFilterAscii) |
||||||
|
{ |
||||||
|
- SvStream* pStream = rMed.GetOutStream(); |
||||||
|
- if (pStream) |
||||||
|
+ OUString sItStr; |
||||||
|
+ SfxItemSet* pSet = rMed.GetItemSet(); |
||||||
|
+ const SfxPoolItem* pItem; |
||||||
|
+ if ( pSet && SfxItemState::SET == |
||||||
|
+ pSet->GetItemState( SID_FILE_FILTEROPTIONS, true, &pItem ) ) |
||||||
|
{ |
||||||
|
- OUString sItStr; |
||||||
|
- SfxItemSet* pSet = rMed.GetItemSet(); |
||||||
|
- const SfxPoolItem* pItem; |
||||||
|
- if ( pSet && SfxItemState::SET == |
||||||
|
- pSet->GetItemState( SID_FILE_FILTEROPTIONS, true, &pItem ) ) |
||||||
|
+ sItStr = static_cast<const SfxStringItem*>(pItem)->GetValue(); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ if ( sItStr.isEmpty() ) |
||||||
|
+ { |
||||||
|
+ // default for ascii export (from API without options): |
||||||
|
+ // ISO8859-1/MS_1252 encoding, comma, double quotes |
||||||
|
+ |
||||||
|
+ ScImportOptions aDefOptions( ',', '"', RTL_TEXTENCODING_MS_1252 ); |
||||||
|
+ sItStr = aDefOptions.BuildString(); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ weld::WaitObject aWait( GetActiveDialogParent() ); |
||||||
|
+ ScImportOptions aOptions( sItStr ); |
||||||
|
+ |
||||||
|
+ if (aOptions.nSheetToExport) |
||||||
|
+ { |
||||||
|
+ // Only from command line --convert-to |
||||||
|
+ bRet = true; |
||||||
|
+ |
||||||
|
+ // Verbose only from command line, not UI (in case we actually |
||||||
|
+ // implement that) nor macro filter options. |
||||||
|
+ bool bVerbose = false; |
||||||
|
+ const css::uno::Sequence<css::beans::PropertyValue> & rArgs = rMed.GetArgs(); |
||||||
|
+ const auto pProp = std::find_if( rArgs.begin(), rArgs.end(), |
||||||
|
+ [](const css::beans::PropertyValue& rProp) { return rProp.Name == "ConversionRequestOrigin"; }); |
||||||
|
+ if (pProp != rArgs.end()) |
||||||
|
{ |
||||||
|
- sItStr = static_cast<const SfxStringItem*>(pItem)->GetValue(); |
||||||
|
+ OUString aOrigin; |
||||||
|
+ pProp->Value >>= aOrigin; |
||||||
|
+ bVerbose = (aOrigin == "CommandLine"); |
||||||
|
} |
||||||
|
|
||||||
|
- if ( sItStr.isEmpty() ) |
||||||
|
+ SCTAB nStartTab; |
||||||
|
+ SCTAB nCount = m_aDocument.GetTableCount(); |
||||||
|
+ if (aOptions.nSheetToExport == -1) |
||||||
|
{ |
||||||
|
- // default for ascii export (from API without options): |
||||||
|
- // ISO8859-1/MS_1252 encoding, comma, double quotes |
||||||
|
- |
||||||
|
- ScImportOptions aDefOptions( ',', '"', RTL_TEXTENCODING_MS_1252 ); |
||||||
|
- sItStr = aDefOptions.BuildString(); |
||||||
|
+ // All sheets. |
||||||
|
+ nStartTab = 0; |
||||||
|
+ } |
||||||
|
+ else if (0 < aOptions.nSheetToExport && aOptions.nSheetToExport <= nCount) |
||||||
|
+ { |
||||||
|
+ // One sheet, 1-based. |
||||||
|
+ nCount = aOptions.nSheetToExport; |
||||||
|
+ nStartTab = nCount - 1; |
||||||
|
+ } |
||||||
|
+ else |
||||||
|
+ { |
||||||
|
+ // Usage error, no export but log. |
||||||
|
+ if (bVerbose) |
||||||
|
+ { |
||||||
|
+ if (aOptions.nSheetToExport < 0) |
||||||
|
+ std::cout << "Bad sheet number string given." << std::endl; |
||||||
|
+ else |
||||||
|
+ std::cout << "No sheet number " << aOptions.nSheetToExport |
||||||
|
+ << ", number of sheets is " << nCount << std::endl; |
||||||
|
+ } |
||||||
|
+ nStartTab = 0; |
||||||
|
+ nCount = 0; |
||||||
|
+ SetError(SCERR_EXPORT_DATA); |
||||||
|
+ bRet = false; |
||||||
|
} |
||||||
|
|
||||||
|
- weld::WaitObject aWait( GetActiveDialogParent() ); |
||||||
|
- ScImportOptions aOptions( sItStr ); |
||||||
|
- AsciiSave( *pStream, aOptions ); |
||||||
|
- bRet = true; |
||||||
|
+ INetURLObject aURLObject(rMed.GetURLObject()); |
||||||
|
+ OUString sExt = aURLObject.CutExtension(); |
||||||
|
+ OUString sBaseName = aURLObject.GetLastName(); |
||||||
|
+ aURLObject.CutLastName(); |
||||||
|
|
||||||
|
- if (m_aDocument.GetTableCount() > 1) |
||||||
|
- if (!rMed.GetError()) |
||||||
|
- rMed.SetError(SCWARN_EXPORT_ASCII); |
||||||
|
+ for (SCTAB i = nStartTab; i < nCount; ++i) |
||||||
|
+ { |
||||||
|
+ OUString sTabName; |
||||||
|
+ if (!m_aDocument.GetName(i, sTabName)) |
||||||
|
+ sTabName = OUString::number(i); |
||||||
|
+ INetURLObject aSheetURLObject(aURLObject); |
||||||
|
+ OUString sFileName = sBaseName + "-" + sTabName; |
||||||
|
+ if (!sExt.isEmpty()) |
||||||
|
+ sFileName = sFileName + "." + sExt; |
||||||
|
+ aSheetURLObject.Append(sFileName); |
||||||
|
+ |
||||||
|
+ // log similar to DispatchWatcher::executeDispatchRequests |
||||||
|
+ OUString aOutFile = aSheetURLObject.GetMainURL(INetURLObject::DecodeMechanism::NONE); |
||||||
|
+ if (bVerbose) |
||||||
|
+ { |
||||||
|
+ OUString aDisplayedName; |
||||||
|
+ if (osl::FileBase::E_None != osl::FileBase::getSystemPathFromFileURL(aOutFile, aDisplayedName)) |
||||||
|
+ aDisplayedName = aOutFile; |
||||||
|
+ std::cout << "Writing sheet " << OUStringToOString(sTabName, osl_getThreadTextEncoding()) << " -> " |
||||||
|
+ << OUStringToOString(aDisplayedName, osl_getThreadTextEncoding()) |
||||||
|
+ << std::endl; |
||||||
|
+ |
||||||
|
+ if (FStatHelper::IsDocument(aOutFile)) |
||||||
|
+ std::cout << "Overwriting: " << OUStringToOString(aDisplayedName, osl_getThreadTextEncoding()) |
||||||
|
+ << std::endl ; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ std::unique_ptr<SvStream> xStm = ::utl::UcbStreamHelper::CreateStream(aOutFile, StreamMode::TRUNC | StreamMode::WRITE); |
||||||
|
+ if (!xStm) |
||||||
|
+ { |
||||||
|
+ SetError(ERRCODE_IO_CANTCREATE); |
||||||
|
+ bRet = false; |
||||||
|
+ break; |
||||||
|
+ } |
||||||
|
+ AsciiSave(*xStm, aOptions, i); |
||||||
|
+ } |
||||||
|
+ } |
||||||
|
+ else |
||||||
|
+ { |
||||||
|
+ SvStream* pStream = rMed.GetOutStream(); |
||||||
|
+ if (pStream) |
||||||
|
+ { |
||||||
|
+ AsciiSave(*pStream, aOptions, GetSaveTab()); |
||||||
|
+ bRet = true; |
||||||
|
+ |
||||||
|
+ if (m_aDocument.GetTableCount() > 1) |
||||||
|
+ if (!rMed.GetError()) |
||||||
|
+ rMed.SetError(SCWARN_EXPORT_ASCII); |
||||||
|
+ } |
||||||
|
} |
||||||
|
} |
||||||
|
else if (aFltName == pFilterDBase) |
||||||
|
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx |
||||||
|
index 41c0b30a42a8..3aa5f6caf311 100644 |
||||||
|
--- a/sc/source/ui/inc/docsh.hxx |
||||||
|
+++ b/sc/source/ui/inc/docsh.hxx |
||||||
|
@@ -227,7 +227,7 @@ public: |
||||||
|
|
||||||
|
ScDrawLayer* MakeDrawLayer(); |
||||||
|
|
||||||
|
- void AsciiSave( SvStream& rStream, const ScImportOptions& rOpt ); |
||||||
|
+ void AsciiSave( SvStream& rStream, const ScImportOptions& rOpt, SCTAB nTab ); |
||||||
|
|
||||||
|
void Execute( SfxRequest& rReq ); |
||||||
|
void GetState( SfxItemSet &rSet ); |
||||||
|
diff --git a/sc/source/ui/inc/imoptdlg.hxx b/sc/source/ui/inc/imoptdlg.hxx |
||||||
|
index bac941c2a377..382067d67813 100644 |
||||||
|
--- a/sc/source/ui/inc/imoptdlg.hxx |
||||||
|
+++ b/sc/source/ui/inc/imoptdlg.hxx |
||||||
|
@@ -32,7 +32,8 @@ public: |
||||||
|
ScImportOptions( sal_Unicode nFieldSep, sal_Unicode nTextSep, rtl_TextEncoding nEnc ) |
||||||
|
: nFieldSepCode(nFieldSep), nTextSepCode(nTextSep), |
||||||
|
bFixedWidth(false), bSaveAsShown(false), bQuoteAllText(false), |
||||||
|
- bSaveNumberAsSuch(true), bSaveFormulas(false), bRemoveSpace(false) |
||||||
|
+ bSaveNumberAsSuch(true), bSaveFormulas(false), bRemoveSpace(false), |
||||||
|
+ nSheetToExport(0) |
||||||
|
{ SetTextEncoding( nEnc ); } |
||||||
|
|
||||||
|
ScImportOptions& operator=( const ScImportOptions& rCpy ) = default; |
||||||
|
@@ -51,6 +52,9 @@ public: |
||||||
|
bool bSaveNumberAsSuch; |
||||||
|
bool bSaveFormulas; |
||||||
|
bool bRemoveSpace; |
||||||
|
+ // "0" for 'current sheet', "-1" for all sheets (each to a separate file), |
||||||
|
+ // or 1-based specific sheet number (to a separate file). |
||||||
|
+ sal_Int32 nSheetToExport; |
||||||
|
}; |
||||||
|
|
||||||
|
#endif // INCLUDED_SC_SOURCE_UI_INC_IMOPTDLG_HXX |
||||||
|
-- |
||||||
|
2.31.1 |
||||||
|
|
@ -0,0 +1,72 @@ |
|||||||
|
From bced744fea67d50242701ed55271d40e803ac14e Mon Sep 17 00:00:00 2001 |
||||||
|
From: Michael Stahl <michael.stahl@allotropia.de> |
||||||
|
Date: Mon, 15 Nov 2021 17:29:59 +0100 |
||||||
|
Subject: [PATCH] tdf#121546 sw: don't use undo array's m_pOutlineNodes |
||||||
|
|
||||||
|
It's pointless. |
||||||
|
|
||||||
|
Change-Id: I304c123bffc16e6133d2953bc9a4f7a3afad14ef |
||||||
|
--- |
||||||
|
sw/source/core/docnode/ndnum.cxx | 2 ++ |
||||||
|
sw/source/core/docnode/nodes.cxx | 18 ++++++++++++------ |
||||||
|
2 files changed, 14 insertions(+), 6 deletions(-) |
||||||
|
|
||||||
|
diff --git a/sw/source/core/docnode/ndnum.cxx b/sw/source/core/docnode/ndnum.cxx |
||||||
|
index b3d66affa66e..a7b898ee5f0a 100644 |
||||||
|
--- a/sw/source/core/docnode/ndnum.cxx |
||||||
|
+++ b/sw/source/core/docnode/ndnum.cxx |
||||||
|
@@ -38,6 +38,8 @@ bool SwOutlineNodes::Seek_Entry(SwNode* rP, size_type* pnPos) const |
||||||
|
|
||||||
|
void SwNodes::UpdateOutlineNode(SwNode & rNd) |
||||||
|
{ |
||||||
|
+ assert(IsDocNodes()); // no point in m_pOutlineNodes for undo nodes |
||||||
|
+ |
||||||
|
SwTextNode * pTextNd = rNd.GetTextNode(); |
||||||
|
|
||||||
|
if (!(pTextNd && pTextNd->IsOutlineStateChanged())) |
||||||
|
diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx |
||||||
|
index a7a2078b2091..ab3eb62ac9f2 100644 |
||||||
|
--- a/sw/source/core/docnode/nodes.cxx |
||||||
|
+++ b/sw/source/core/docnode/nodes.cxx |
||||||
|
@@ -109,6 +109,16 @@ SwNodes::~SwNodes() |
||||||
|
m_pEndOfContent.reset(); |
||||||
|
} |
||||||
|
|
||||||
|
+static bool IsInsertOutline(SwNodes const& rNodes, sal_uLong const nIndex) |
||||||
|
+{ |
||||||
|
+ if (!rNodes.IsDocNodes()) |
||||||
|
+ { |
||||||
|
+ return false; |
||||||
|
+ } |
||||||
|
+ return nIndex < rNodes.GetEndOfRedlines().StartOfSectionNode()->GetIndex() |
||||||
|
+ || rNodes.GetEndOfRedlines().GetIndex() < nIndex; |
||||||
|
+} |
||||||
|
+ |
||||||
|
void SwNodes::ChgNode( SwNodeIndex const & rDelPos, sal_uLong nSz, |
||||||
|
SwNodeIndex& rInsPos, bool bNewFrames ) |
||||||
|
{ |
||||||
|
@@ -124,9 +134,7 @@ void SwNodes::ChgNode( SwNodeIndex const & rDelPos, sal_uLong nSz, |
||||||
|
|
||||||
|
// NEVER include nodes from the RedLineArea |
||||||
|
sal_uLong nNd = rInsPos.GetIndex(); |
||||||
|
- bool bInsOutlineIdx = ( |
||||||
|
- rNds.GetEndOfRedlines().StartOfSectionNode()->GetIndex() >= nNd || |
||||||
|
- nNd >= rNds.GetEndOfRedlines().GetIndex() ); |
||||||
|
+ bool const bInsOutlineIdx = IsInsertOutline(rNds, nNd); |
||||||
|
|
||||||
|
if( &rNds == this ) // if in the same node array -> move |
||||||
|
{ |
||||||
|
@@ -478,9 +486,7 @@ bool SwNodes::MoveNodes( const SwNodeRange& aRange, SwNodes & rNodes, |
||||||
|
|
||||||
|
// NEVER include nodes from the RedLineArea |
||||||
|
sal_uLong nNd = aIdx.GetIndex(); |
||||||
|
- bool bInsOutlineIdx = ( rNodes.GetEndOfRedlines(). |
||||||
|
- StartOfSectionNode()->GetIndex() >= nNd || |
||||||
|
- nNd >= rNodes.GetEndOfRedlines().GetIndex() ); |
||||||
|
+ bool const bInsOutlineIdx = IsInsertOutline(rNodes, nNd); |
||||||
|
|
||||||
|
if( bNewFrames ) |
||||||
|
// delete all frames |
||||||
|
-- |
||||||
|
2.33.1 |
||||||
|
|
@ -0,0 +1,301 @@ |
|||||||
|
From c8f7408db73d2f2ccacb25a2b4fef8dfebdfc6cb Mon Sep 17 00:00:00 2001 |
||||||
|
From: Miklos Vajna <vmiklos@collabora.com> |
||||||
|
Date: Mon, 27 Nov 2023 08:02:59 +0100 |
||||||
|
Subject: [PATCH] tdf#158302 fix build against system-libxml-2.12 |
||||||
|
|
||||||
|
Seen in a fedora:40 container, using --with-system-libcmis, |
||||||
|
--with-system-liblangtag and --with-system-xmlsec. |
||||||
|
|
||||||
|
Change-Id: I9d748d3dc0b70dbfdfcb6b99c9ce8440bda6f326 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159980 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Miklos Vajna <vmiklos@collabora.com> |
||||||
|
--- |
||||||
|
drawinglayer/source/tools/primitive2dxmldump.cxx | 1 + |
||||||
|
filter/source/xsltfilter/LibXSLTTransformer.cxx | 2 +- |
||||||
|
helpcompiler/source/HelpLinker.cxx | 4 ++++ |
||||||
|
include/xmloff/xmltoken.hxx | 2 +- |
||||||
|
sax/source/fastparser/fastparser.cxx | 2 +- |
||||||
|
sc/source/core/tool/interpr7.cxx | 1 + |
||||||
|
sc/source/filter/xml/XMLExportDataPilot.cxx | 2 +- |
||||||
|
sc/source/filter/xml/XMLExportDatabaseRanges.cxx | 2 +- |
||||||
|
sc/source/filter/xml/xmlfilti.cxx | 6 +++--- |
||||||
|
unoxml/source/dom/attr.cxx | 1 + |
||||||
|
unoxml/source/dom/document.cxx | 1 + |
||||||
|
unoxml/source/dom/documentbuilder.cxx | 1 + |
||||||
|
unoxml/source/dom/entity.cxx | 1 + |
||||||
|
unoxml/source/xpath/xpathapi.cxx | 7 ++++++- |
||||||
|
xmloff/source/core/xmltoken.cxx | 2 +- |
||||||
|
xmloff/source/style/PageMasterStyleMap.cxx | 2 +- |
||||||
|
xmlsecurity/inc/xmlsec-wrapper.h | 1 + |
||||||
|
xmlsecurity/inc/xmlsec/saxhelper.hxx | 1 + |
||||||
|
18 files changed, 28 insertions(+), 11 deletions(-) |
||||||
|
|
||||||
|
diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx b/drawinglayer/source/tools/primitive2dxmldump.cxx |
||||||
|
index 76aefec902ea..f3b9ef1bc919 100644 |
||||||
|
--- a/drawinglayer/source/tools/primitive2dxmldump.cxx |
||||||
|
+++ b/drawinglayer/source/tools/primitive2dxmldump.cxx |
||||||
|
@@ -15,6 +15,7 @@ |
||||||
|
|
||||||
|
#include <math.h> |
||||||
|
#include <memory> |
||||||
|
+#include <libxml/parser.h> |
||||||
|
#include <sal/log.hxx> |
||||||
|
|
||||||
|
#include <drawinglayer/primitive2d/bitmapprimitive2d.hxx> |
||||||
|
diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx b/filter/source/xsltfilter/LibXSLTTransformer.cxx |
||||||
|
index 1a7c34805f1b..5e9a7c4bcd35 100644 |
||||||
|
--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx |
||||||
|
+++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx |
||||||
|
@@ -333,7 +333,7 @@ namespace XSLT |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
- xmlErrorPtr lastErr = xmlGetLastError(); |
||||||
|
+ const xmlError* lastErr = xmlGetLastError(); |
||||||
|
OUString msg; |
||||||
|
if (lastErr) |
||||||
|
msg = OStringToOUString(lastErr->message, RTL_TEXTENCODING_UTF8); |
||||||
|
diff --git a/helpcompiler/source/HelpLinker.cxx b/helpcompiler/source/HelpLinker.cxx |
||||||
|
index 3d52834dbe6b..898a8b26392a 100644 |
||||||
|
--- a/helpcompiler/source/HelpLinker.cxx |
||||||
|
+++ b/helpcompiler/source/HelpLinker.cxx |
||||||
|
@@ -815,7 +815,11 @@ static const HelpProcessingException* GpXMLParsingException = nullptr; |
||||||
|
|
||||||
|
extern "C" { |
||||||
|
|
||||||
|
+#if LIBXML_VERSION >= 21200 |
||||||
|
+static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, const xmlError* error) |
||||||
|
+#else |
||||||
|
static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, xmlErrorPtr error) |
||||||
|
+#endif |
||||||
|
{ |
||||||
|
std::string aErrorMsg = error->message; |
||||||
|
std::string aXMLParsingFile; |
||||||
|
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx |
||||||
|
index 4e6441841774..ba42fae4d035 100644 |
||||||
|
--- a/include/xmloff/xmltoken.hxx |
||||||
|
+++ b/include/xmloff/xmltoken.hxx |
||||||
|
@@ -744,7 +744,7 @@ namespace xmloff::token { |
||||||
|
XML_EMBEDDED_VISIBLE_AREA, |
||||||
|
XML_EMBOSSED, |
||||||
|
XML_EMISSIVE_COLOR, |
||||||
|
- XML_EMPTY, |
||||||
|
+ XML_TOKEN_EMPTY, |
||||||
|
XML_EMPTY_LINE_REFRESH, |
||||||
|
XML_ENABLE_NUMBERING, |
||||||
|
XML_ENABLED, |
||||||
|
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx |
||||||
|
index ec8065016a12..e0338e053cf0 100644 |
||||||
|
--- a/sax/source/fastparser/fastparser.cxx |
||||||
|
+++ b/sax/source/fastparser/fastparser.cxx |
||||||
|
@@ -578,7 +578,7 @@ Event& Entity::getEvent( CallbackType aType ) |
||||||
|
OUString lclGetErrorMessage( xmlParserCtxtPtr ctxt, std::u16string_view sSystemId, sal_Int32 nLine ) |
||||||
|
{ |
||||||
|
const char* pMessage; |
||||||
|
- xmlErrorPtr error = xmlCtxtGetLastError( ctxt ); |
||||||
|
+ const xmlError* error = xmlCtxtGetLastError( ctxt ); |
||||||
|
if( error && error->message ) |
||||||
|
pMessage = error->message; |
||||||
|
else |
||||||
|
diff --git a/sc/source/core/tool/interpr7.cxx b/sc/source/core/tool/interpr7.cxx |
||||||
|
index 352c7cf70e45..ecb4ea346396 100644 |
||||||
|
--- a/sc/source/core/tool/interpr7.cxx |
||||||
|
+++ b/sc/source/core/tool/interpr7.cxx |
||||||
|
@@ -31,6 +31,7 @@ |
||||||
|
#include <cstring> |
||||||
|
#include <memory> |
||||||
|
#include <string_view> |
||||||
|
+#include <libxml/parser.h> |
||||||
|
|
||||||
|
using namespace com::sun::star; |
||||||
|
|
||||||
|
diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx |
||||||
|
index da65bec0dab7..bd5f16d828ff 100644 |
||||||
|
--- a/sc/source/filter/xml/XMLExportDataPilot.cxx |
||||||
|
+++ b/sc/source/filter/xml/XMLExportDataPilot.cxx |
||||||
|
@@ -123,7 +123,7 @@ void ScXMLExportDataPilot::WriteDPCondition(const ScQueryEntry& aQueryEntry, boo |
||||||
|
|
||||||
|
if (aQueryEntry.IsQueryByEmpty()) |
||||||
|
{ |
||||||
|
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, GetXMLToken(XML_EMPTY)); |
||||||
|
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, GetXMLToken(XML_TOKEN_EMPTY)); |
||||||
|
} |
||||||
|
else if (aQueryEntry.IsQueryByNonEmpty()) |
||||||
|
{ |
||||||
|
diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx |
||||||
|
index 6905e02d651b..e4307065bd92 100644 |
||||||
|
--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx |
||||||
|
+++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx |
||||||
|
@@ -376,7 +376,7 @@ private: |
||||||
|
case SC_EQUAL: |
||||||
|
{ |
||||||
|
if (rEntry.IsQueryByEmpty()) |
||||||
|
- return GetXMLToken(XML_EMPTY); |
||||||
|
+ return GetXMLToken(XML_TOKEN_EMPTY); |
||||||
|
else if (rEntry.IsQueryByNonEmpty()) |
||||||
|
return GetXMLToken(XML_NOEMPTY); |
||||||
|
|
||||||
|
diff --git a/sc/source/filter/xml/xmlfilti.cxx b/sc/source/filter/xml/xmlfilti.cxx |
||||||
|
index 7585ce0c50fa..61f7cfe4a349 100644 |
||||||
|
--- a/sc/source/filter/xml/xmlfilti.cxx |
||||||
|
+++ b/sc/source/filter/xml/xmlfilti.cxx |
||||||
|
@@ -370,7 +370,7 @@ void ScXMLConditionContext::GetOperator( |
||||||
|
rEntry.eOp = SC_BOTPERC; |
||||||
|
else if (IsXMLToken(aOpStr, XML_BOTTOM_VALUES)) |
||||||
|
rEntry.eOp = SC_BOTVAL; |
||||||
|
- else if (IsXMLToken(aOpStr, XML_EMPTY)) |
||||||
|
+ else if (IsXMLToken(aOpStr, XML_TOKEN_EMPTY)) |
||||||
|
rEntry.SetQueryByEmpty(); |
||||||
|
else if (aOpStr == u">") |
||||||
|
rEntry.eOp = SC_GREATER; |
||||||
|
@@ -422,7 +422,7 @@ void SAL_CALL ScXMLConditionContext::endFastElement( sal_Int32 /*nElement*/ ) |
||||||
|
if (maQueryItems.empty()) |
||||||
|
{ |
||||||
|
ScQueryEntry::Item& rItem = rEntry.GetQueryItem(); |
||||||
|
- if (IsXMLToken(sOperator, XML_EMPTY)) |
||||||
|
+ if (IsXMLToken(sOperator, XML_TOKEN_EMPTY)) |
||||||
|
return; |
||||||
|
if (IsXMLToken(sDataType, XML_NUMBER)) |
||||||
|
{ |
||||||
|
@@ -753,7 +753,7 @@ void SAL_CALL ScXMLDPConditionContext::endFastElement( sal_Int32 /*nElement*/ ) |
||||||
|
else |
||||||
|
aFilterField.eConnect = SC_AND; |
||||||
|
pFilterContext->SetIsCaseSensitive(bIsCaseSensitive); |
||||||
|
- if (IsXMLToken(sOperator, XML_EMPTY)) |
||||||
|
+ if (IsXMLToken(sOperator, XML_TOKEN_EMPTY)) |
||||||
|
aFilterField.SetQueryByEmpty(); |
||||||
|
else if (IsXMLToken(sOperator, XML_NOEMPTY)) |
||||||
|
aFilterField.SetQueryByNonEmpty(); |
||||||
|
diff --git a/unoxml/source/dom/attr.cxx b/unoxml/source/dom/attr.cxx |
||||||
|
index dd974d910edb..d8d873cdf055 100644 |
||||||
|
--- a/unoxml/source/dom/attr.cxx |
||||||
|
+++ b/unoxml/source/dom/attr.cxx |
||||||
|
@@ -22,6 +22,7 @@ |
||||||
|
#include <string.h> |
||||||
|
|
||||||
|
#include <memory> |
||||||
|
+#include <libxml/entities.h> |
||||||
|
|
||||||
|
#include <osl/diagnose.h> |
||||||
|
#include <sal/log.hxx> |
||||||
|
diff --git a/unoxml/source/dom/document.cxx b/unoxml/source/dom/document.cxx |
||||||
|
index cb48bd1635f8..0825fc2cd7ed 100644 |
||||||
|
--- a/unoxml/source/dom/document.cxx |
||||||
|
+++ b/unoxml/source/dom/document.cxx |
||||||
|
@@ -41,6 +41,7 @@ |
||||||
|
#include <eventdispatcher.hxx> |
||||||
|
|
||||||
|
#include <string.h> |
||||||
|
+#include <libxml/xmlIO.h> |
||||||
|
|
||||||
|
#include <osl/diagnose.h> |
||||||
|
|
||||||
|
diff --git a/unoxml/source/dom/documentbuilder.cxx b/unoxml/source/dom/documentbuilder.cxx |
||||||
|
index c3cd7663d2fc..3898d58e4be4 100644 |
||||||
|
--- a/unoxml/source/dom/documentbuilder.cxx |
||||||
|
+++ b/unoxml/source/dom/documentbuilder.cxx |
||||||
|
@@ -22,6 +22,7 @@ |
||||||
|
#include <string.h> |
||||||
|
|
||||||
|
#include <libxml/xmlerror.h> |
||||||
|
+#include <libxml/parser.h> |
||||||
|
|
||||||
|
#include <memory> |
||||||
|
|
||||||
|
diff --git a/unoxml/source/dom/entity.cxx b/unoxml/source/dom/entity.cxx |
||||||
|
index ccc8a0872499..98909dfe8f12 100644 |
||||||
|
--- a/unoxml/source/dom/entity.cxx |
||||||
|
+++ b/unoxml/source/dom/entity.cxx |
||||||
|
@@ -22,6 +22,7 @@ |
||||||
|
#include <osl/diagnose.h> |
||||||
|
|
||||||
|
#include <string.h> |
||||||
|
+#include <libxml/entities.h> |
||||||
|
|
||||||
|
using namespace css::uno; |
||||||
|
using namespace css::xml::dom; |
||||||
|
diff --git a/unoxml/source/xpath/xpathapi.cxx b/unoxml/source/xpath/xpathapi.cxx |
||||||
|
index a60083983882..c2b753783176 100644 |
||||||
|
--- a/unoxml/source/xpath/xpathapi.cxx |
||||||
|
+++ b/unoxml/source/xpath/xpathapi.cxx |
||||||
|
@@ -26,6 +26,7 @@ |
||||||
|
#include <libxml/xmlerror.h> |
||||||
|
#include <libxml/xpath.h> |
||||||
|
#include <libxml/xpathInternals.h> |
||||||
|
+#include <libxml/xmlIO.h> |
||||||
|
|
||||||
|
#include <com/sun/star/xml/xpath/XPathException.hpp> |
||||||
|
|
||||||
|
@@ -217,7 +218,7 @@ namespace XPath |
||||||
|
return selectSingleNode(contextNode, expr); |
||||||
|
} |
||||||
|
|
||||||
|
- static OUString make_error_message(xmlErrorPtr pError) |
||||||
|
+ static OUString make_error_message(const xmlError* pError) |
||||||
|
{ |
||||||
|
OUStringBuffer buf; |
||||||
|
if (pError) { |
||||||
|
@@ -259,7 +260,11 @@ namespace XPath |
||||||
|
SAL_WARN("unoxml", "libxml2 error: " << str); |
||||||
|
} |
||||||
|
|
||||||
|
+#if LIBXML_VERSION >= 21200 |
||||||
|
+ static void structured_error_func(void *, const xmlError* error) |
||||||
|
+#else |
||||||
|
static void structured_error_func(void *, xmlErrorPtr error) |
||||||
|
+#endif |
||||||
|
{ |
||||||
|
SAL_WARN("unoxml", "libxml2 error: " << make_error_message(error)); |
||||||
|
} |
||||||
|
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx |
||||||
|
index 6879f37db295..e11dc0d16111 100644 |
||||||
|
--- a/xmloff/source/core/xmltoken.cxx |
||||||
|
+++ b/xmloff/source/core/xmltoken.cxx |
||||||
|
@@ -756,7 +756,7 @@ namespace xmloff::token { |
||||||
|
TOKEN( "embedded-visible-area", XML_EMBEDDED_VISIBLE_AREA ), |
||||||
|
TOKEN( "embossed", XML_EMBOSSED ), |
||||||
|
TOKEN( "emissive-color", XML_EMISSIVE_COLOR ), |
||||||
|
- TOKEN( "empty", XML_EMPTY ), |
||||||
|
+ TOKEN( "empty", XML_TOKEN_EMPTY ), |
||||||
|
TOKEN( "empty-line-refresh", XML_EMPTY_LINE_REFRESH ), |
||||||
|
TOKEN( "enable-numbering", XML_ENABLE_NUMBERING ), |
||||||
|
TOKEN( "enabled", XML_ENABLED ), |
||||||
|
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx |
||||||
|
index 7b2cab4751aa..6f631289672b 100644 |
||||||
|
--- a/xmloff/source/style/PageMasterStyleMap.cxx |
||||||
|
+++ b/xmloff/source/style/PageMasterStyleMap.cxx |
||||||
|
@@ -157,7 +157,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] = |
||||||
|
PLMAP( PROP_FootnoteLineRelativeWidth, XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_PERCENT8|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_WIDTH ), |
||||||
|
PLMAP( PROP_FootnoteLineTextDistance, XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_DISTANCE ), |
||||||
|
PLMAP( PROP_FootnoteLineWeight, XML_NAMESPACE_STYLE, XML_FOOTNOTE_SEP, XML_TYPE_MEASURE16|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_WEIGHT ), |
||||||
|
- PLMAP( PROP_FootnoteLineStyle, XML_NAMESPACE_STYLE, XML_EMPTY, XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_STYLE ), |
||||||
|
+ PLMAP( PROP_FootnoteLineStyle, XML_NAMESPACE_STYLE, XML_TOKEN_EMPTY, XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_STYLE ), |
||||||
|
PLMAP_EXT(PROP_GutterMargin, XML_NAMESPACE_LO_EXT, XML_MARGIN_GUTTER, XML_TYPE_MEASURE, CTF_PM_MARGINGUTTER), |
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////// |
||||||
|
diff --git a/xmlsecurity/inc/xmlsec/saxhelper.hxx b/xmlsecurity/inc/xmlsec/saxhelper.hxx |
||||||
|
index a49ccef1894c..a5863ffd0e2a 100644 |
||||||
|
--- a/xmlsecurity/inc/xmlsec/saxhelper.hxx |
||||||
|
+++ b/xmlsecurity/inc/xmlsec/saxhelper.hxx |
||||||
|
@@ -23,6 +23,7 @@ |
||||||
|
|
||||||
|
#include <string_view> |
||||||
|
|
||||||
|
+#include <libxml/parser.h> |
||||||
|
#include <libxml/tree.h> |
||||||
|
|
||||||
|
#include <rtl/ustring.hxx> |
||||||
|
-- |
||||||
|
2.42.0 |
||||||
|
|
||||||
|
--- libreoffice-7.6.3.2/xmlsecurity/inc/xmlsec-wrapper.h~ 2023-11-16 17:06:03.000000000 -0600 |
||||||
|
+++ libreoffice-7.6.3.2/xmlsecurity/inc/xmlsec-wrapper.h 2023-11-27 10:23:27.919378638 -0600 |
||||||
|
@@ -28,6 +28,7 @@ |
||||||
|
#define XMLSEC_NO_SIZE_T |
||||||
|
#endif |
||||||
|
|
||||||
|
+#include <libxml/parser.h> |
||||||
|
#include <xmlsec/base64.h> |
||||||
|
#include <xmlsec/bn.h> |
||||||
|
#include <xmlsec/errors.h> |
@ -0,0 +1,51 @@ |
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK----- |
||||||
|
|
||||||
|
mQINBEyzEr0BEADT441wUITsTwDA2nM3kmUhGrzTdxZB5xv/E1ZJCw63qWdmdTdW |
||||||
|
NZDfNDuLs4r2VjlEoA3xGK6jgnQvyAoNj0yiEbW/JedHHgOiVdXDlkgkY58myafT |
||||||
|
FXqDLzTXVrsNnay0GS8XrNjptZJPhEPBvNUdkqpA9B7RTkfaXj779Pf/AeFMZVLl |
||||||
|
UAci5RA0NNF910GHwoXT6SEv2PGoawsphnfmMVdKh9wz7asbtKXEmotCwX3k045x |
||||||
|
LsIVK5ANOi+BI9C3LkrrFJWw2XHqDW2ulwCJ0L5QNSjOuY/v8REODwIXamvvdZOz |
||||||
|
XBKSIzDOalJqFCHls3YlGyFw1knr6BAOmVOm32YtNTCLbVA/iK55fZWnUCjD3a4G |
||||||
|
xz4qpQYWfpxhOmlHpk5JkraSNHzCc7SB43DwcHF5ecXHttMhO8MoN/bAZBgCuLGF |
||||||
|
EwNvwFbDwIWo07mlv7wD8i1rtUCvLywJc5YL2PbjCLfB1Q4YzDX1EWnjKdnAsxxK |
||||||
|
ftrx1DFlxzUF+TaHbLTPttUcsWQaL8wITznoWIwdIWlo2woPgWIpUXMOYwYV31Oo |
||||||
|
fgmroHa3V4NOvkke09uhaZawg5yZCoRFohhfKPqT1ZrJ9SnRbW/WR3VTVY76ht5k |
||||||
|
RuV3eb2VWBmPU9zn56Tbe6dvFkBuzHH1JdECAqy1BzFcmQQFBebFzf1XAQARAQAB |
||||||
|
tEhMaWJyZU9mZmljZSBCdWlsZCBUZWFtIChDT0RFIFNJR05JTkcgS0VZKSA8YnVp |
||||||
|
bGRAZG9jdW1lbnRmb3VuZGF0aW9uLm9yZz6JAjcEEwEKACEFAkyzEr0CGwMFCwkI |
||||||
|
BwMFFQoJCAsFFgIDAQACHgECF4AACgkQ9DSh76/urqOc4w//X+74QlyRalcuLNw3 |
||||||
|
oJKB1+1z6xxhhpwg1kw5cMMrGu0w0YoPvLDKaiS02DdkIaXDECcQTOoEh7/bYbZq |
||||||
|
6OtE1WyxqHYYOPK5yul5FRwZ5k5HZ7pDFcKCQ72UgWhz+QznRhgZ0jwEWl5Ln3rw |
||||||
|
JpSynIvTXHmQogId0xmcrNQPyckzzugGx4qZFinSOmDGwTgG14NU3vat2iek37Ph |
||||||
|
BLh5V8ohlEoccwwPejtKEWQudg0Q8K7uBuqLUhnJoZodEytqpOvtysuPtGxGXnmD |
||||||
|
7oXtBVEF3X6eFRXDIp81cx2isHK4Krf4z4T9KUimNLHjWRa+ZQtp2pZLHQlblfsn |
||||||
|
CUf6TYZ0Yi909EhcM/hxAgBZXellOCQ/8U2cJsTUyN5Dp1wbf6X0uK4uaed1/037 |
||||||
|
EGLAO6PP6WQz6jWd1/hhsQ5oAmdjkzlMFEfKNeIIDuKMOjXcTvM8/KRXhufwICvS |
||||||
|
FBlSIveHfDFWCvOVgq0VjAY7NFMFKRUnRHB58qBamtyhOyscRIvT5QH8HYfUA/YN |
||||||
|
l9FguczYUIQi3t+H1hoHIywdtmRuhYx5WlIUe8FO9QD5RMPbBjVbkCYgdHdxgnJD |
||||||
|
KCoRGsoKlLB7UZc4Ak9j6plZbYtFRonm2MjU4zxblCFNuEqVQ0V/y6/OIGpBYF9Y |
||||||
|
aEAtTgEJd9OmmDCM3d8O0zZHYma5Ag0ETLMSvQEQAMDp0HxSDWd+2Od/aJutCMFe |
||||||
|
8tfw7+nP9gfHOCUqesb88QvRMJgVY6z1aNdMllxTKlsxUiuA6uNcrUAkzDp/qRWR |
||||||
|
58rWIO642PLifng3urJ1cDbSKC+K4RHpQC+hXllMKLqq8dwNy1LO4fPo9SdtUF4B |
||||||
|
ev6enKmo4yCiOGv2tvztPh9gMGYoDncaOsS0t2UPr2MMQIVUmmIzfJBkdOxbZiWO |
||||||
|
doeNbWsYJHQaO+Ahal6SjPHKzhdjeXhZzHl1vqeDkV4MXHprrOwXNXwPiEpkZe2O |
||||||
|
dc7yaMkQc0k8WRrfKHApbnwDx6Mi8HYaf+LvRq7P0eMO9osD1q44wQQvVzk199zp |
||||||
|
MMHS5/kAv7RBNmDOSJQIZ4zT4lzRDODjMf01Ljn02zon12GfJo0WbbpmLulta7uj |
||||||
|
HgMrUU54by8WPFGW0fljXiDX0EpkHhxUsUsfaNfBsFnE+sRxQjNF/ljvofkyApI2 |
||||||
|
1OjtEa9krwvgDqaXsL+a2076OsoFpORlTZ30REb0eRS6rEt8M+7s4xTaA7GFxlY/ |
||||||
|
N+bnaM8m+ItygfFHHW4H0wLbbgajDeooSTgaheVNF5V9HS0EkN4MNVvtJH7J6drd |
||||||
|
iR1QVhX87n7+JtQzTtCOyfeKjaB+kcbAm/2VOFOeHdig5+BygpXt3IixVq72xmGz |
||||||
|
h0jhY565MjXrqg5O3pvLABEBAAGJAh8EGAEKAAkFAkyzEr0CGwwACgkQ9DSh76/u |
||||||
|
rqPaeg//avI2/a94XlSYtSZb2hVdW3qa9AEypQurqtVrKJfEKFV+ZQBPXbPRy8Mz |
||||||
|
5LMEH1sfD6B4SVGIGJ8opSyieJkcKIke+GMekTWvSqDpFOgY2rw7eHNn/33ZJs3O |
||||||
|
zQOyWz8smE/AIM/5lyiVGuSlU7RjYncf1V9bIBc91q9Edqk4IYUo/7W+yafC0VW/ |
||||||
|
8oHUFYjHNaujiOsEoLiXsh9Y0R/6Jxs6fvE4XbCANV/ecN5UX+9BBrNZNN/9GbNr |
||||||
|
6CYGZ57M2f1Pgywy/XvOnEPnJ8aWXUyGLqq34KvMPFPSOeAmFbkFEsB4mdDMFaDw |
||||||
|
rzziiZE/zS8/nKiH4X2JgmLgFsadEihdfYxeDcGbhREK/qA1f3bGnr1j05V07yko |
||||||
|
2FFZdiOr4OgiT5ymgwVUXQ2Aiz+J/C8URjfpcPxetmuDQT9AYfgmMKPNVXPFWuNQ |
||||||
|
dzN5GZbI+E1/cb5+uLNknvjngw2G4PR/4uPHX1HCSftlNawBqWzyun1k+B7/u3Oe |
||||||
|
FebWXcdqSmZuLQ7l0Pkuz/Nlp6M6cKpceL+9zCgaiR5+v9h94VvtXKd/mw9ZLACc |
||||||
|
VcOANiwCtsJP3lt7jRSHtkuUe6vUm5tLS582RfXxoI1BlPjNtG9xAQ3JKBHIXbal |
||||||
|
T18pAFO3t74cxg3h0iI1G51F3oL0DwILP2MBBmardVEp5CMnB/M= |
||||||
|
=1iQB |
||||||
|
-----END PGP PUBLIC KEY BLOCK----- |
@ -0,0 +1,16 @@ |
|||||||
|
diff -U 3 -dHrN a/sc/inc/arraysumfunctor.hxx b/sc/inc/arraysumfunctor.hxx |
||||||
|
--- a/sc/inc/arraysumfunctor.hxx 2023-09-22 21:07:01.000000000 +0200 |
||||||
|
+++ b/sc/inc/arraysumfunctor.hxx 2023-10-01 09:13:03.523493665 +0200 |
||||||
|
@@ -85,8 +85,12 @@ |
||||||
|
inline KahanSum sumArray(const double* pArray, size_t nSize) |
||||||
|
{ |
||||||
|
size_t i = 0; |
||||||
|
+#if 0 |
||||||
|
const double* pCurrent = pArray; |
||||||
|
KahanSum fSum = executeFast(i, nSize, pCurrent); |
||||||
|
+#else |
||||||
|
+ KahanSum fSum = 0.0; |
||||||
|
+#endif |
||||||
|
|
||||||
|
// sum rest of the array |
||||||
|
for (; i < nSize; ++i) |
@ -0,0 +1,16 @@ |
|||||||
|
#!/bin/sh |
||||||
|
OOO_ARCH=$(uname -m) |
||||||
|
case $OOO_ARCH in |
||||||
|
x86_64 | s390x | sparc64 | aarch64) |
||||||
|
OOO_LIB_DIR="/usr/lib64" |
||||||
|
SECONDARY_LIB_DIR="/usr/lib" |
||||||
|
;; |
||||||
|
* ) |
||||||
|
OOO_LIB_DIR="/usr/lib" |
||||||
|
SECONDARY_LIB_DIR="/usr/lib64" |
||||||
|
;; |
||||||
|
esac |
||||||
|
if [ ! -x $OOO_LIB_DIR/BRAND/program/LAUNCHER ]; then |
||||||
|
OOO_LIB_DIR="$SECONDARY_LIB_DIR" |
||||||
|
fi |
||||||
|
exec $OOO_LIB_DIR/BRAND/program/LAUNCHER "$@" |
@ -0,0 +1,32 @@ |
|||||||
|
From 3426c96d0e32e0c83e4ce5fdb3405787a0c81e6c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Dan Horák <dan@danny.cz> |
||||||
|
Date: Fri, 01 Sep 2023 18:45:42 +0200 |
||||||
|
Subject: [PATCH] limit tests giving dubious results to x86_64 |
||||||
|
|
||||||
|
We have confirmed that ArrayFunctionsTest::testDubiousArrayFormulasFODS |
||||||
|
gives different results depending on the -ffp-contract setting on |
||||||
|
ppc64le and likely also on s390x in addition to aarch64. Thus limit the |
||||||
|
check only to x86_64 where it's known to give consistent results. |
||||||
|
|
||||||
|
Change-Id: Iedb63fb4340cfe9a88e374c7498d97574bcdfcc7 |
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156453 |
||||||
|
Tested-by: Jenkins |
||||||
|
Reviewed-by: Stephan Bergmann <sbergman@redhat.com> |
||||||
|
--- |
||||||
|
|
||||||
|
diff --git a/sc/qa/unit/functions_array.cxx b/sc/qa/unit/functions_array.cxx |
||||||
|
index 7584c4e..2053c44 100644 |
||||||
|
--- a/sc/qa/unit/functions_array.cxx |
||||||
|
+++ b/sc/qa/unit/functions_array.cxx |
||||||
|
@@ -27,8 +27,9 @@ |
||||||
|
{ |
||||||
|
//TODO: sc/qa/unit/data/functions/array/dubious/fods/linest.fods produces widely different |
||||||
|
// values when built with -ffp-contract enabled (-ffp-contract=on default on Clang 14, |
||||||
|
- // -ffp-contract=fast default when building with optimizations on GCC) on at least aarch64: |
||||||
|
-#if !((defined __clang__ || defined __GNUC__) && defined __aarch64__) |
||||||
|
+ // -ffp-contract=fast default when building with optimizations on GCC) on at least aarch64 |
||||||
|
+ // and ppc64le. Thus limit the check only to platforms with consistent results. |
||||||
|
+#if defined X86_64 |
||||||
|
OUString aDirectoryURL |
||||||
|
= m_directories.getURLFromSrc(u"/sc/qa/unit/data/functions/array/dubious/fods/"); |
||||||
|
recursiveScan(test::pass, "OpenDocument Spreadsheet Flat XML", aDirectoryURL, |
@ -0,0 +1,19 @@ |
|||||||
|
diff -up libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx.orig libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx |
||||||
|
--- libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx.orig 2023-08-21 13:15:31.738062821 +0200 |
||||||
|
+++ libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx 2023-08-21 13:15:56.607246816 +0200 |
||||||
|
@@ -469,6 +469,7 @@ static bool performTest( |
||||||
|
equals(aData, aSV2ret) && equals(aData, aRet2), |
||||||
|
"getValues2 test"); |
||||||
|
} |
||||||
|
+#if 0 |
||||||
|
{ |
||||||
|
TwoFloats aIn(1.1f, 2.2f); |
||||||
|
TwoFloats aOut = xLBT->echoTwoFloats(aIn); |
||||||
|
@@ -479,6 +480,7 @@ static bool performTest( |
||||||
|
FourFloats aOut = xLBT->echoFourFloats(aIn); |
||||||
|
bRet = check( memcmp(&aIn, &aOut, sizeof(FourFloats)) == 0, "four floats struct test" ) && bRet; |
||||||
|
} |
||||||
|
+#endif |
||||||
|
{ |
||||||
|
MixedFloatAndInteger aIn(7.7f, 8); |
||||||
|
MixedFloatAndInteger aOut = xLBT->echoMixedFloatAndInteger(aIn); |
@ -0,0 +1,22 @@ |
|||||||
|
--- libreoffice-7.6.3.1/sw/qa/core/text/itrform2.cxx 2023-11-02 16:37:04.000000000 -0500 |
||||||
|
+++ core/sw/qa/core/text/itrform2.cxx 2023-11-07 10:31:14.018505043 -0600 |
||||||
|
@@ -124,6 +124,10 @@ |
||||||
|
|
||||||
|
// Then make sure all the expected text is there on page 2: |
||||||
|
std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); |
||||||
|
+ if (!pPdfDocument) |
||||||
|
+ { |
||||||
|
+ return; |
||||||
|
+ } |
||||||
|
std::unique_ptr<vcl::pdf::PDFiumPage> pPage2 = pPdfDocument->openPage(1); |
||||||
|
int nTextCount = 0; |
||||||
|
for (int i = 0; i < pPage2->getObjectCount(); ++i) |
||||||
|
@@ -143,7 +147,7 @@ |
||||||
|
|
||||||
|
CPPUNIT_TEST_FIXTURE(Test, testSplitFlyAnchorLeftMargin) |
||||||
|
{ |
||||||
|
- // Given a document with a floating table, anchor para is followed by an other para with a left |
||||||
|
+ // Given a document with a floating table, anchor para is followed by another para with a left |
||||||
|
// margin: |
||||||
|
createSwDoc("floattable-anchor-left-margin.docx"); |
||||||
|
|
Loading…
Reference in new issue