summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-12-03Silence false -Werror=maybe-uninitializedStephan Bergmann
...where success of >>= has already been checked with CPPUNIT_ASSERT Change-Id: I9aa553749988b6b2e26d9a5ac5b376cc5997aba7 Reviewed-on: https://gerrit.libreoffice.org/84335 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03SAL_INFO_IF -> SAL_WARN_IFNoel Grandin
this is a very very useful warning when libraries fail to load Change-Id: I09bf64f6c65f285d6ab41f988b255a4842233428 Reviewed-on: https://gerrit.libreoffice.org/84314 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03Drop unnecessary o3tl::optional::resetStephan Bergmann
...where xRangeList goes out of scope anyway Change-Id: Ibb107ac7eee5504a161749f141997bd96fd07e83 Reviewed-on: https://gerrit.libreoffice.org/84336 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03use scoped enumStephan Bergmann
Change-Id: Ib40fad986f99d02e58f0564fb68608e86989173c Reviewed-on: https://gerrit.libreoffice.org/84325 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03use scoped enumStephan Bergmann
Change-Id: If2dce427fd8d52224996aaef93081d5a2e239893 Reviewed-on: https://gerrit.libreoffice.org/84322 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03external/clucene: Adapt to C++20 deleted ostream << for non-plain char typesStephan Bergmann
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html> "char8_t backward compatibility remediation", as implemented now by <https://gcc.gnu.org/ git/?p=gcc.git;a=commit;h=0c5b35933e5b150df0ab487efb2f11ef5685f713> "libstdc++: P1423R3 char8_t remediation (2/4)" for -std=c++2a, deletes operator << overloads that would print a pointer rather than a (presumably expected) string. So this infoStream output appears to have always been broken (the strings use TCHAR, which appears to unconditionally be a typedef for wchar_t, see workdir/UnpackedTarball/clucene/src/shared/CLucene/clucene-config.h), and appears to be just of informative nature, so just simplify it to not try to print any problematic parts. Change-Id: Ie9f8edb03aff461a15718a0c025af57004aba0a9 Reviewed-on: https://gerrit.libreoffice.org/84320 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03use scoped enumStephan Bergmann
Change-Id: Id28d593d94fc176194871db32c1c5a287b98a26a Reviewed-on: https://gerrit.libreoffice.org/84319 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03use scoped enumStephan Bergmann
Change-Id: Ife99f3bea2972e080b4c3da6f5068543d4010173 Reviewed-on: https://gerrit.libreoffice.org/84307 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03PopFieldContext calls CloseFieldCommand itselfMike Kaganski
Change-Id: I4ac75d6e73f4d60ac532829a56c5d23501e6a531 Reviewed-on: https://gerrit.libreoffice.org/84318 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-12-03Simplify a bit use of LabelPlacementParam (oox/chartexport)Julien Nabet
Change-Id: I940be544577d8955959d4b8c89feaa08f99e544a Reviewed-on: https://gerrit.libreoffice.org/84272 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-03Remove useless PatternPair (sc/vbainterior)Julien Nabet
Following 3471d83f49dcaab2cbbe18521ab1a405f15a0788 Use initializer list instead of using several inserts (sc/vba) + 1a5850e7c4414a06e1ad5603bf1d4565d3ba3a82 Following 3471d83f49dcaab2cbbe18521ab1a405f15a0788 (sc/vba) "Use initializer list instead of using several inserts (sc/vba)" I had forgotten to remove the initial commented code Change-Id: Idd9855e520383c17cf7564ae4646fd613fc45895 Reviewed-on: https://gerrit.libreoffice.org/84278 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-03enum WindowsStateMask type itself is unusedStephan Bergmann
(found with upcoming loplugin:unusedmember) Change-Id: I2a7de15da061c4c0d4dc163c59370db6da763c2c Reviewed-on: https://gerrit.libreoffice.org/84316 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03use scoped enumStephan Bergmann
Change-Id: I41a810d14be0a7f18c91b62e5d982c12db593183 Reviewed-on: https://gerrit.libreoffice.org/84315 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03tdf#129068 try dialog content area help before dialog itselfCaolán McNamara
we already check current notebook page before the dialog, now check the content area before the dialog Change-Id: Ieedb5727ddec6d24adc6e70144977b5c3063c0fd Reviewed-on: https://gerrit.libreoffice.org/84245 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-03Use namespaces instead of structsStephan Bergmann
Change-Id: I82e49d666376c31f3a8e407aedd05cfaee2f2bde Reviewed-on: https://gerrit.libreoffice.org/84301 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03tdf#101513 add customizable option to writer NB contextual singleandreas kainz
Change-Id: I0c62b26d0b47cef7f02ee581412aa3cd2d6ac7e4 Reviewed-on: https://gerrit.libreoffice.org/84285 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-12-03remove some useless comment linesNoel Grandin
which merely announce that the next declaration is a class Change-Id: Ifdb1398bcd99816b13e0b3769b46d0562bfbc1dc Reviewed-on: https://gerrit.libreoffice.org/84229 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03Simplify a bit B2DPolyRange::appendElement (basegfx)Julien Nabet
push_back is more optimized than an insert Change-Id: I8932c4ee61569b5eee3d5dbc5fbfd8eff624d061 Reviewed-on: https://gerrit.libreoffice.org/84276 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03Disable slide copy/cut when LockContentExtraction is setSamuel Mehrbrodt
Change-Id: I7bf9ba907a152fab81a9472bc7baf00331753828 Reviewed-on: https://gerrit.libreoffice.org/84289 Reviewed-by: Serge Krot (CIB) <Serge.Krot@cib.de> Tested-by: Serge Krot (CIB) <Serge.Krot@cib.de> Tested-by: Jenkins
2019-12-03Use initializer instead of using several inserts (svgio/svgtoken)Julien Nabet
Change-Id: I50fd5570305e1cace848fc68c7a2a2f10b132873 Reviewed-on: https://gerrit.libreoffice.org/84277 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-03Directly use o3tl::optional comparisonStephan Bergmann
Change-Id: I864137704dd8c27d034dc34c947c97954dd18ef3 Reviewed-on: https://gerrit.libreoffice.org/84296 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03loplugin:mergeclases ICommandImageProvider with DocumentCommandImageProviderNoel Grandin
Change-Id: Ia6997489a8f21f33287e11e39fab1bb059070c89 Reviewed-on: https://gerrit.libreoffice.org/84195 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03tdf#42949 Fix IWYU warnings in sfx2/*/*hxxGabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I56e4b5a44143ea15660cfa293e156036952dfe8f Reviewed-on: https://gerrit.libreoffice.org/84030 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-12-03avoid invalid static_cast when mixing X11 and OpenGL bitmapsLuboš Luňák
This can happen because lcl_SelectAppIconPixmap() temporarily disables OpenGL, but in case an icon to be loaded is already cached(?), the bitmap variant may be OpenGL. Happens when launching LO in OpenGL mode with the X11 gen backend, and then selecting Writer in the start screen. Change-Id: I65110dee79769c430eaa8a2cf3dc11119ab02520 Reviewed-on: https://gerrit.libreoffice.org/84246 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-12-03split instrinsics CXXFLAGS per each instruction setLuboš Luňák
The common usage pattern should be having one source file per each instruction set and then one source file compiled with neutral flags that dispatches to the relevant code based on runtime checks. Which means that there can't be any one "correct" flag, otherwise all files would get compiled e.g. with SSE4.2 but then CPUs capable only of SSE2 would crash running that code. Change-Id: I362bf66f672dae4588a48effe3bcd30c34ea75b3 Reviewed-on: https://gerrit.libreoffice.org/84227 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-12-03Remove trailing whitespaceSamuel Mehrbrodt
Change-Id: Ib4ba69ae42d294ed1d51c2c20d65897bbca26bfe Reviewed-on: https://gerrit.libreoffice.org/84306 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2019-12-03new[]/delete mismatchCaolán McNamara
Change-Id: Ife47f111b3910c2eca322678f3f7a67b5cc2cd24 Reviewed-on: https://gerrit.libreoffice.org/84218 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-03tdf#129134 ApplicationColors Scrolled List moves too littleCaolán McNamara
Change-Id: I5cb6ac017f1d2a916297676724d523634afb2020 Reviewed-on: https://gerrit.libreoffice.org/84252 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-03Make OpenCLMinimumDataSize configuration property non-nillableStephan Bergmann
It had curiously been added as nillable (by default) alongside other properties that were added as non-nillable with ef809ce9480182ea5c4f77843f72d1d45bd48c35 "More work on the new OpenCL options", but with a non-nil default value, and no code sets a nil value, and ScModelObj::getFormulaCellNumberLimit, which reads its value and expects it to be non-nil, would cause UB if it was nil. So make it non-nillable and thereby simplify the code handling it. (Similar to how e8bb827571f540ac4af2247cb11239bb96876669 "Fixed cppheader.xsl nillable treatment" retrofitted lots of existing properties to be non-nillable in the past.) Change-Id: I60ac95025f363e346f3102ef80f38d00862e6e9a Reviewed-on: https://gerrit.libreoffice.org/84248 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03desktop: disable callback handling while changing the viewAshod Nakashian
When changing the view, some components are disabled and re-enabled. This triggers a flood of invalidations that then result in rendering requests. For each rendering the view is set, which triggers more invalidations. The Sidebar suffers from this, and it causes cpu pegging. This fix prevents this issue by disabling all callbacks during setView. Change-Id: If6b93b2ab31f568a0761f15d945a43de1bc2d4d0 Reviewed-on: https://gerrit.libreoffice.org/84184 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/84226 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-12-03lok: shape selection: perform the needed unit conversion in a clever wayMichael Meeks
follow-on fixup of: 35d6c6ffc9b3f66e3802d1770c4e87cf843c3a48 which ended up not removing the duplicated conversion logic it should have. Change-Id: I28ef0180749f6356ec456b4f0b1eef1b474fd6c9 Reviewed-on: https://gerrit.libreoffice.org/84284 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-12-03lok: calc - store zoom in the view itself.Michael Meeks
Don't duplicate this on the ITiledRenderable interface, which is not a per-view construct, this just confuses everything. Store & restore the zoom level before/after rendering a tile - unfortunately this is not done by the most optimal view yet. Change-Id: I1f7dfaa353333f45c5601d49a9bca784d34fb81a Reviewed-on: https://gerrit.libreoffice.org/84281 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-12-03tdf#128429 VML import: let mso-layout-flow-alt:bottom-to-top imply verticalMiklos Vajna
Normally layout flow is set to vertical to denote TBRL, and then optionally there is a layout flow alt to denote BTLR, but the bugdoc shows that the first may be missing. So map to BTLR even in case only the alt layout flow is found in the file. Change-Id: I06fce738fca9aedc0de90ccebda3a24e99425326 Reviewed-on: https://gerrit.libreoffice.org/84275 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-12-03WIN map ERROR_DIRECTORY to osl_File_E_NOTDIRJan-Marek Glogowski
The open_004 unit test fails on Windows with E_NOENT. I think the assert is correct, and it's better change the ERROR_DIRECTORY mapping, as FindFirstFileW returns ERROR_PATH_NOT_FOUND, if the path doesn't exists at all. The description of that error code in the MS API docs is "The directory name is invalid.". And obviously there is no way to tell, if this is actually a better mapping. Change-Id: Id122ce39e90f3562e70c96a06752e5b32ed55b41 Reviewed-on: https://gerrit.libreoffice.org/84070 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-12-03WIN enable osl_File.cxx part of CppUnitTest_sal_oslJan-Marek Glogowski
This just disables open::open_004 test on Windows, as this returns E_NOENT on Windows, but I think the assert is correct. There is also test-getsystempathfromfileurl.cxx, which seems to overlap? The test now uses osl::FileBase::getTempDirURL to find the system temporary directory, insted of hardcoded defaults. This also includes reverts the following commits: * "remove unused Exist from oslCheckMode enum" commit 4ca9e8fa3a040c18221c947a651469a89029282e. * "CppunitTest_sal_osl_file fails on Windows" commit 4603028bc4e2cdacd32da073a82a42ba1fc549a8 Change-Id: Ib7fc4c13f8159a240d4e20c26f61d84204e4261b Reviewed-on: https://gerrit.libreoffice.org/83901 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-12-03Use SAL_STRINGIFYStephan Bergmann
Change-Id: Id4074390936ddf7051b5d45c76fd8668972e34f8 Reviewed-on: https://gerrit.libreoffice.org/84287 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03tdf#128924 VBA Properties Options remove 97/2000/XPandreas kainz
Change-Id: I52e0e132e752eb90bb50f292b0ee08cfa167a9c7 Reviewed-on: https://gerrit.libreoffice.org/84267 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-12-03lok: formula bar: function completionMarco Cecchetti
lok clients can request to complete a function name partially typed in the formula input box. Change-Id: I8771fd4d2a7f79c20138d9183162da23a92f2ba4 Reviewed-on: https://gerrit.libreoffice.org/83984 Reviewed-by: Marco Cecchetti <marco.cecchetti@collabora.com> Tested-by: Marco Cecchetti <marco.cecchetti@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/84258 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-12-03Use initializer set instead of using several inserts (forms/Columns)Julien Nabet
while at it, replace "EnableVisible" by "PROPERTY_ENABLEVISIBLE" Change-Id: Ibde140e84acdecd02a67e2cfb7f422098afad4d1 Reviewed-on: https://gerrit.libreoffice.org/84269 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03Fix compilation with `make -- dbglevel=2`Alex Henrie
Change-Id: Icdf93751b00453eb033fd577413bd6bc3527f87c Reviewed-on: https://gerrit.libreoffice.org/84286 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-02Don't disable "Send doc via email" when LockExport is setSamuel Mehrbrodt
Only sending as other formats should be disabled in this case Change-Id: I985d43ba314a1bda16dab33897d212ad27d3d115 Reviewed-on: https://gerrit.libreoffice.org/84240 Tested-by: Jenkins Reviewed-by: Serge Krot (CIB) <Serge.Krot@cib.de>
2019-12-02tdf#101513 add customizable option to writer NB tabbedandreas kainz
Change-Id: I2a8dcf184b8ca268be2163b90305babd2ee70807 Reviewed-on: https://gerrit.libreoffice.org/84169 Tested-by: Jenkins Reviewed-by: andreas_kainz <kainz.a@gmail.com>
2019-12-02missing include (but just change use of BOOST_ASSERT to plain assert)Stephan Bergmann
Change-Id: Ie789049d418f6137f76b80c54f343e5dd72fb849 Reviewed-on: https://gerrit.libreoffice.org/84261 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-02call parent MouseButtonDown if bCallParent is trueCaolán McNamara
Change-Id: I93936d73caf4927714acdc238a10d68087cc7f25 Reviewed-on: https://gerrit.libreoffice.org/84198 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-02Following 3471d83f49dcaab2cbbe18521ab1a405f15a0788 (sc/vba)Julien Nabet
"Use initializer list instead of using several inserts (sc/vba)" I had forgotten to remove the initial commented code Change-Id: I6b70966e7a446addbfc4d64464047c167efcea71 Reviewed-on: https://gerrit.libreoffice.org/84264 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-02Fix typoAndrea Gelmini
Change-Id: I2e6a60da6b4ad1eb5789cb29658dfa3e54dda9dd Reviewed-on: https://gerrit.libreoffice.org/84228 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-02Disable macro menu entries when DisableMacrosExecution is setSamuel Mehrbrodt
Change-Id: Ica9a4f4a6510717dcd9fe53676e5a6f261f005ce Reviewed-on: https://gerrit.libreoffice.org/84231 Reviewed-by: Serge Krot (CIB) <Serge.Krot@cib.de> Tested-by: Serge Krot (CIB) <Serge.Krot@cib.de>
2019-12-02ofz#19207 check max strlen possibleCaolán McNamara
Change-Id: I5fe9fde240ef375d9de097dda47953320ecc758d Reviewed-on: https://gerrit.libreoffice.org/84219 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-02Simplify SQLError::ParamValue to just o3tl::optional<OUString>Stephan Bergmann
Change-Id: Ib4878218fd758c6462de1841fb98b3ae8839d1ed Reviewed-on: https://gerrit.libreoffice.org/84217 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-02tdf#47583 sw: Don't mix doc print settings into option dialogMichael Weghorn
Show and manage the default Writer print options in the "Tools" -> "Options" -> "LibreOfficeDev Writer" -> "Print" dialog and don't mix in the document-specific values of the currently opened document, as this is rather confusing as described in tdf#47583. There is a separate dialog to manage the settings for the currently opened document available via "File" -> "Printer Settings" -> "Options". At a quick glance, this also matches the behaviour for Calc, which doesn't mix in the current doc's settings either. This handles the case for the Writer-specific print options. For a more general approach on whether and how document-specific options should be handled in the "Tools" -> "Options" dialog at all, there are already tdf#43786 ("Intransparent Use of Options") and tdf#105751 ("Separate document saved options from global options in Options dialog"). Side note: The previous implementation also wasn't synchronizing the settings both ways. Changes made in the "File" -> "Printer Settings" -> "Options" dialog did show up in the "Tools" -> "Options" -> "LibreOfficeDev Writer" -> "Print" dialog at once, but not the other way around. The reason is that Writer-specific print settings are currently managed in two places in DocumentDeviceManager: (1) its SwPrintData, accessible via 'DocumentDeviceManager::{g,s}etPrintData' (2) the print data set in its 'SfxPrinter*' ('DocumentDeviceManager::{g,s}etPrinter') The "File" -> "Printer Settings" -> "Options" dialog uses the settings from the SfxPrinter. So, to make synchronization work both ways with the previous implementation, the changes made in the "Tools" -> "Options" dialog would also have to be applied for (2), not just (1), e.g. this way: diff --git a/sw/source/uibase/app/appopt.cxx b/sw/source/uibase/app/appopt.cxx index 9c7e24592014..83bae7eb71b9 100644 --- a/sw/source/uibase/app/appopt.cxx +++ b/sw/source/uibase/app/appopt.cxx @@ -371,8 +371,15 @@ void SwModule::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet ) const SwAddPrinterItem* pAddPrinterAttr = static_cast<const SwAddPrinterItem*>(pItem); *pOpt = *pAddPrinterAttr; - if(pAppView) + if(pAppView) { pAppView->GetWrtShell().getIDocumentDeviceAccess().setPrintData( *pOpt ); + SfxPrinter* pDocPrinter = pAppView->GetWrtShell().getIDocumentDeviceAccess().getPrinter(false); + if (pDocPrinter) { + SfxItemSet aOptions(pDocPrinter->GetOptions()); + aOptions.Put(*pAddPrinterAttr); + pDocPrinter->SetOptions(aOptions); + } + } } } (Maybe that should be consolidated at some point in time...) Change-Id: I74961f4d8947e200b415e6e32e128a0ce3d317f5 Reviewed-on: https://gerrit.libreoffice.org/84212 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>