summaryrefslogtreecommitdiff
path: root/ucb
AgeCommit message (Collapse)Author
2022-03-11loplugin:constparamsNoel Grandin
Change-Id: I5f184f93dbdb414514855c85c9dc1624e7ec8636 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131337 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-07do not pass XComponentContext to officecfg::...::get() callsLuboš Luňák
It's used only for the ConfigurationWrapper singleton, so it's used only the first time and then ignored. It also causes calls to comphelper::getProcessComponentContext() for every single invocation despite the value not being needed, and the calls may not be cheap (it's ~5% CPU during ODS save because relatively frequent calls to officecfg::Office::Common::Save::ODF::DefaultVersion::get()). Change-Id: I02c17a1a9cb498aeef220ddd5a0bde5523cb0ffb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131056 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-02-17loplugin:unusedmethodsNoel Grandin
Change-Id: I58c60262ca543bafb4db4433dbb98b195f7571ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130063 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-02-08ucb: webdav-curl: fix deadlock in SerfLockStore::refreshLocks()Michael Stahl
... and removeLock() (regression from commit 03c7cd9bbe3d46bb13a5cf1ad72ba0eaf702747e) Change-Id: I4029a7079c7331a7a00c11e2bec5639086bcc928 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129666 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins
2022-02-08ucb: webdav: fix "__lll_lock_wait () "Henry Castro
0 0x00007ffff74bc29c in __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:103 1 0x00007ffff74b5714 in __GI___pthread_mutex_lock (mutex=0x7fffbfad04c0 <(anonymous namespace)::g_Init>) at ../nptl/pthread_mutex_lock.c:80 2 0x00007fffbf996ed2 in __gthread_mutex_lock(__gthread_mutex_t*) (__mutex=0x7fffbfad04c0 <(anonymous namespace)::g_Init>) at /usr/include/x86_64-linux-gnu/c++/8/bits/gthr-default.h:748 3 0x00007fffbf9b0b56 in std::mutex::lock() (this=0x7fffbfad04c0 <(anonymous namespace)::g_Init>) at /usr/include/c++/8/bits/std_mutex.h:103 4 0x00007fffbf9b69dd in std::unique_lock<std::mutex>::lock() (this=0x7fffffff97e0) at /usr/include/c++/8/bits/std_mutex.h:267 5 0x00007fffbf9e0878 in std::unique_lock<std::mutex>::unique_lock(std::mutex&) (this=0x7fffffff97e0, __m=...) at /usr/include/c++/8/bits/std_mutex.h:197 6 0x00007fffbf9f01e7 in http_dav_ucp::SerfLockStore::startTicker() (this=0x7fffbfad04c0 <(anonymous namespace)::g_Init>) at /home/hcastro/projects/online/lib/core/sid/ucb/source/ucp/webdav-curl/SerfLockStore.cxx:107 7 0x00007fffbf9f0728 in http_dav_ucp::SerfLockStore::addLock(rtl::OUString const&, com::sun::star::ucb::Lock const&, rtl::OUString const&, rtl::Reference<http_dav_ucp::CurlSession> const&, int) Change-Id: I01d3c1f67281ceab38e0452ba9cc714d4aacdbcb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129447 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-02-04Revert typo fix, 'stringly typed' is the intended formIlmari Lauhakangas
Change-Id: I46cba870cd90d02c3dbaa60e9b1291ef751db377 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129485 Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2022-02-02Fix method nameAndrea Gelmini
It passed "make check" Change-Id: Ic5ae07a7137d5fd72cbb77e716825fbb7f68a8de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129313 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-31ucb: webdav-curl: suppress libcurl proxy detectionMichael Stahl
The UCP already reads proxy configuration from configmgr, including a list of hosts that should ignore proxy: Inet::Settings::ooInetNoProxy Hence also set an empty string with CURLOPT_PROXY, disabling the detect_proxy() function. (The neon library was never built with the libproxy dependency it needs to detect proxies.) Change-Id: I279d1b85dbdd2455791d393e634a1fa7c1c17ce0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129220 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-01-27Fix typosAndrea Gelmini
Change-Id: I49d514a5977ef46a4ade52d53a9a47d56c718052 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129041 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-01-26ucb: add more webdav-curl doc to READMEMichael Stahl
Change-Id: I50a56f9f5b0126c46133129d62464e0171dc40f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128422 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-01-20ucb: webdav-curl: fix the debug logging moreMichael Stahl
Unfortunately didn't work in the cases where it needed to work. Change-Id: Ia132ba38fb6f0be4481dce48da2d713d47fa8bf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128658 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-01-18ucb: webdav-curl: add even more loggingMichael Stahl
Some servers like to put error messages in the body if there's a problem, let's try to to dump that via SAL_INFO, unless it's too big. Change-Id: I9a29de59ab299f4bfda08ecc3be838972cf0c71d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128513 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-01-15Let loplugin:nullptr look into template instantiationsStephan Bergmann
It missed some occurrences of 0 when only looking into uninstantiated template code, as Clang doesn't model them with an ImplicitCastExpr, even if the target is known to be a (dependent) pointer type. Looking into all template instantiations of course carries the risk that a given use of 0 is meant to be interpreted as a pointer in some and as an integer in other instantiations. But the only case where that happened in the current code base is RegistryValueList::getElement (include/registry/registry.hxx), where {} is arguably a better choice anyway. (And which would presumably also hold for any future such cases.) Change-Id: I708bcfc8bedc0a49c9282d7814eb325afa29905c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128462 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-14ucb: webdav-curl: build debug callback also in release buildsMichael Stahl
And fix the Authorization header redaction, it was assuming there is one call per header line, but all headers are passed in one call. Change-Id: Idf86b9e0a4a8f8e9fb39098402a002abc394a589 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128395 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2022-01-02loplugin:unusedfieldsNoel Grandin
Change-Id: I20a387563a0f65bc9a7149ab0b08b09f1946e9ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127867 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27osl::Mutex->std::mutex in SerfLockStoreNoel Grandin
Change-Id: I931e20b4b604ebd6fac83006deeabaa5939e8c7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127587 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27remove pImpl from DataSupplierNoel Grandin
Change-Id: I0fe2d3d83c1d45abc90d22406265a034140bee02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127566 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27osl::Mutex->std::mutex in DAVOptionsCacheNoel Grandin
Change-Id: I4798f1e4de268522fe81505181ebde5fcacda55f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127589 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27osl::Mutex->std::mutex in PropertyNamesCacheNoel Grandin
Change-Id: I9af4098a30383ce695147bf7e1442769b98f6fb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127588 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27use comphelper::WeakComponentImplHelper in UcbStoreNoel Grandin
Change-Id: I0246fe4c93208e87bddcf08ce6423d1e8f7505d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127552 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27osl::Mutex->std::mutex in DAVSessionFactoryNoel Grandin
Change-Id: I7cca2a76b9285e66f7c54deef8a6e612fd262ab4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127541 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27use comphelper::WeakComponentImplHelper in ProviderNoel Grandin
Change-Id: I60e496c823ab36ee5f9775b0b758617815b85151 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127519 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27use comphelper::WeakComponentImplHelper in ExpandContentProviderImplNoel Grandin
Change-Id: I3c24b1c2eb3d44cb58709cb18de53597adf56e41 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127520 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27use comphelper::WeakComponentImplHelper in UcbCommandEnvironmentNoel Grandin
Change-Id: Ic27f2554613e159094be4c180647c2e59f57e00e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127522 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-27use comphelper::WeakComponentImplHelper in UcbContentProviderProxyFactoryNoel Grandin
Change-Id: I60b68c6589ce34673a2435260cd7b75c17b91a69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127521 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-22ucb: webdav-curl: update READMEThorsten Behrens
Change-Id: I3b72183fc367875f8ebce6f3fffc7efc32ca6c0e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127285 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-19use more cppu::BaseMutexNoel Grandin
Change-Id: Iddd7438161ead93b27cf8e8058ca5b1eae3d8001 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127075 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-17loplugin:unusedvariablecheck improveNoel Grandin
to find unused smart pointer variables Change-Id: I200bdd8949032a0e061de61f7903a156651793e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127006 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-17use more OInterfaceContainer3::notifyEachNoel Grandin
Change-Id: I0dd6e9f1514792e73a31e81896d09c27c1912318 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126966 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-15ucb: remove --with-webdav=neonMichael Stahl
Remove code in ucb/source/ucp/webdav-neon, and now unused external neon. The --with-webdav=no option is retained for now. Change-Id: I4ce429587e3991fa82009da2f8e4a068abe36435 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126839 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-12-15ucb: remove --with-webdav=serfMichael Stahl
Remove code in ucb/source/ucp/webdav, and now unused externals apr, apr-util, serf. Change-Id: I31ab8bb1491f5290e175e87f2b30499811c5a359 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126835 Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins
2021-12-14find-unneeded-includes: add exception for boost/shared_ptr.hppGabor Kelemen
* as seen in vcl/inc/skia/salbmp.hxx * also remove earlier exception from ucb modules file Change-Id: Ie0ad46048147916b615f74d8eab6e033c2020565 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126739 Tested-by: Jenkins Tested-by: Gabor Kelemen <kelemeng@ubuntu.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-12-10Generally determine Rdb content from gb_*_set_componentfile callsStephan Bergmann
...instead of by listing the content somewhat redundantly in the Rdb_*.mk files, to avoid duplication of logic for components that are only built conditionally (and thus should only be included conditionally in the corresponding Rdb). To achieve that, add an "rdb" parameter to gb_ComponentTarget_ComponentTarget (and to the gb_*_set_componentfile macros that internally call gb_ComponentTarget_ComponentTarget), which is used to make the appropriate gb_Rdb_add_component call internally from within gb_ComponentTarget_ComponentTarget. (As a special case, gb_CppunitTest_set_componentfile shall not call gb_Rdb_add_component, as that has already been done by the corresponding gb_Library_set_componentfile call, so allow the gb_ComponentTarget_ComponentTarget "rdb" parameter to be empty to support that special case.) Most Rdb_*.mk files are thus mostly empty now. One exception is i18npool/Rdb_saxparser.mk, which duplicates some of the Rdb_services content as needed during the build in CustomTarget_i18npool/localedata. 1c9a40299d328c78c035ca63ccdf22c5c669a03b "gbuild: create services.rdb from built components" had already tried to do something similar (in addition to other things) under a new --enable-services-rdb-from-build option. However, that approach had four drawbacks that this approach here addresses (and which thus partly reverts 1c9a40299d328c78c035ca63ccdf22c5c669a03b): 1 Rdb_services shall not contain the component files of all libraries that are built. While that commit filtered out the component files that go into Rdb_ure/services (ure/Rdb_ure.mk), it failed to filter out the component files that go into others like Rdb_postgresql-sdbc (connectivity/Rdb_postgresql-sdbc.mk). 2 The code added by that commit to Makefile.gbuild codified the knowledge that there is an Rdb_services, which is brittle. 3 The code added by that commit to solenv/gbuild/Rdb.mk codified the knowledge (for gb_Rdb__URECOMPONENTS) that there is an Rdb_ure/services, which is brittle. 4 Introducing an --enable-services-rdb-from-build option needlessly provided two different ways how the content of Rdb_services is assembled. The changes done here would leave --enable-services-rdb-from-build as a misnomer, as it no longer controls how Rdb_services is assembled. I thus renamed it to --enable-customtarget-components, as that is apparently what it still does now. Change-Id: Ia5e8df4b640146c77421fcec6daa11a9cd260265 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126577 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-12-07loplugin:unusedmethodsNoel Grandin
Change-Id: Ic1ba90447575278d854af85312271c41766b776b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126422 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-07loplugin:unusedfieldsNoel Grandin
Change-Id: Id39c3f484a364fb5163444febe99aee79daf1a76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126418 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-07loplugin:unnecessaryvirtualNoel Grandin
Change-Id: I231195c36d620254cbcd2f4d7bbb9044f7887fe8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126413 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-05remove OMultiTypeInterfaceContainerHelperVar2Noel Grandin
superceded and replaced by OMultiTypeInterfaceContainerHelperVar3 Change-Id: I46ad14bcc9bfcfe1a5279414e72d9356ddb02329 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126382 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-04use OMultiTypeInterfaceContainerHelperVar3 in ContentResultSetWrapperNoel Grandin
Change-Id: I50d79f400833987b5f5050826c7901c4fc22386e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126341 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-04use OMultiTypeInterfaceContainerHelperVar3 in PersistentPropertySetNoel Grandin
Change-Id: I4bb884fc76f766d58afec3632c7443e348ea5342 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126340 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-04use OMultiTypeInterfaceContainerHelperVar3 in SortedResultSetNoel Grandin
Change-Id: I371dc8d97a4d6cb24c69e97b874bb50384df7526 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126337 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-01webdav-curl: just mask CURLE_QUIC_CONNECT_ERRORJan-Marek Glogowski
... obviously we still need the throw... Change-Id: Ia7960ce2296e196be600f6b9a8139bc261fd2159 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126170 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-12-01CURLE_QUIC_CONNECT_ERROR requires curl >= 7.69.0Jan-Marek Glogowski
This new error code replaced several CURLE_FAILED_INIT in curl commit cbb5429001084df4e71ebd95dbf748c3c302c9f7 ("ngtcp2: Add an error code for QUIC connection errors"). Instead of escalating the curl version further, just mask it with CURL_AT_LEAST_VERSION; this way my Ubuntu 20.04 schroot can still use the system CURL for the build... Change-Id: I24afd32737e2ab74d9e4ce1722012d522ae010bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126158 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-11-30use more OInterfaceContainerHelper3 in PropertyListenersNoel Grandin
Change-Id: I44b06c1ab469e99a9d3b8f4e2b0f3058959fc202 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126063 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-30use more OInterfaceContainerHelper2 in ucbNoel Grandin
Change-Id: I81300a707c81a011f29bd6b63794e1abd472a015 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126062 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-29ucb: webdav-curl: don't read from XInputStream during uploadMichael Stahl
Nextcloud will reply to a PROPFIND request with "100 Continue" and then after the data is uploaded it will send a "401 Unauthorized" if the auth header is missing in the headers to which it replied with "100 Continue". In the next call to ProcessRequestImpl(), reading from the stream returns no data because it's at EOF, and because of the Content-Length header the server will hang forever waiting for data. So copy the stream to a temporary buffer and use that for multiple calls to ProcessRequestImpl(). Change-Id: If5943a32c4cf50259fe1f84013141765cb5bd891 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125923 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-11-29loplugin:stringliteraldefine in ucbNoel Grandin
Change-Id: I3b2e01b482f7f4dbceea090b9586cdb4eee4e703 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125869 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-26ucb: webdav-curl: fix CurlUri::CloneWithRelativeRefPathAbsolute()Michael Stahl
Change-Id: Idf1d75817009286cd79a00c0ba154cea70e2ffda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125908 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-11-26ucb: webdav-curl: don't use chunked encoding for PROPPATCHMichael Stahl
Sharepoint 16 has the same problem with this as with PROPFIND. But this still doesn't work, trying to add dead properties results in HTTP/1.1 400 BAD REQUEST now. In fact, it has additional problems: request 3 properties Foo, Bar, Baz with one PROPFIND and it complains about Foo, FooBar, FooBarBaz... Change-Id: Ia0ce0f7b9422e0751839151a4c964f0437282c64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125907 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-11-26cid#1494447 ucb: webdav-curl: Logically dead codeMichael Stahl
Change-Id: I98a99ddc287fd83ff95e9a1b3851a9888dd6ef5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125864 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-11-26ucb: webdav-curl: remove useless assert in getLockTokenForURI()Michael Stahl
Change-Id: Ia27acf55bd7baf70c0b57e0922a62b1d9680c5b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125848 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>