summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-14make ScInterpreterContext also accessible without passing it aroundLuboš Luňák
E.g. ScModelObj::GetFormatter() can be rather deep in the call chain and it just doesn't make sense to pass ScInterpreterContext* to all the relevant places (and it's a question if it makes sense to pass it around at all, googling shows that thread_local is not really _that_ slow). Change-Id: I9114ef8a10d82a10968391718099edccde7a2663 Reviewed-on: https://gerrit.libreoffice.org/63184 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-11-14avoid valgrind uninitialized jump warning with clangLuboš Luňák
I'm not sure what exactly the actual problem is, but valgrind reports unitialized reads of mbMulti, although that one is fine and the culprint is in fact mbCenter. Which happens to be bit 16 of the bitfield, and the generated assembly looks fishy, just for that one specific bit. Adding extra padding, extra statements or even just reordering avoids it. So this is lame, but just reorder it and be done with it, this should be otherwise harmless and I've spent enough time on this. Change-Id: I25be55ebe0e9b6dc981793aa7caeae2a40bb27a5 Reviewed-on: https://gerrit.libreoffice.org/63186 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-11-14Reorder ScFormulaCell membersDennis Francis
When evaluating/getting result from a formulacell(which has been evaluated before), first bDirty/bTableOpDirty are accessed from MaybeInterpret()/NeedsInterpret(), then aResult is accessed, so it makes sense to put the first 7 bools(with bDirty/bTableOpDirty) in the beginning, then aResult, then rest of bools and other remaining members. The expectation is that when bDirty is accessed in NeedsInterpret(), the relevant contents of aResult is also fetched to cache and remains there till aResult is needed. Change-Id: Ide0d1e809ca045ef347520f26c4d3ab9faa994bb Reviewed-on: https://gerrit.libreoffice.org/63065 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
2018-11-14Resolves: tdf#121394 listen to key strokes only if GDK_BUTTON_PRESS_MASK setCaolán McNamara
Change-Id: I5471ed2f4243f79fd0bcb4f65079318c4dd65e26 Reviewed-on: https://gerrit.libreoffice.org/63345 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-11-14Fix typo in codeAndrea Gelmini
It passed "make check" on Linux Change-Id: I6a8f97f088cef39345372ce2d726ad8fb7c051ee Reviewed-on: https://gerrit.libreoffice.org/63356 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2018-11-14move fmtfieldCaolán McNamara
Change-Id: Ic3f4388ea2ca92d9e97d4a9e066eea07c7de79e5 Reviewed-on: https://gerrit.libreoffice.org/63363 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-11-14tdf#119178: use current range as a range for conditional formatVasily Melenchuk
During addition of new conditional format it is possible to select different range, not one used initially. And new range should be used for correct relative reference in formula evaluation.` Change-Id: If73a0ddbb268c86e8c99f0703db1a5a97fb6ca66 Reviewed-on: https://gerrit.libreoffice.org/58800 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2018-11-14Update git submodulesAndras Timar
* Update translations from branch 'master' - Updated Slovenian translation Change-Id: If3779c613d8d2b8157cc37cfff0ef332909b07ae
2018-11-14Fix typoAndrea Gelmini
Change-Id: I6761bc281a1db0aef044eb2887083920b23470c9 Reviewed-on: https://gerrit.libreoffice.org/63349 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-11-14Map VML shadow more properly to css::table::ShadowFormatStephan Bergmann
For one, CppunitTest_sw_ooxmlexport6 failed under -fsanitize=implicit-signed-integer-truncation when passing a negative ShadowFormat.ShadowWidth into a sal_uInt16 SvxShadowItem (see below). Fixing the mapping from VML shadow to ShadowFormat in ShadowModel::pushToPropMap caused ShadowModel::pushToPropMap to fail again, however, testing against 57811035 in testOuterShdw (sw/qa/extras/ooxmlexport/ooxmlexport6.cxx). fa9d574ae1656b64670fbbac64ddd85461698149 "Code changes for fdo#74107:File Corruption - Issue with outerShdw" doesn't explain how that value came about, so assume that it was just whatever value happened to be observed in LO at that time, and now adjust it accordingly. And, for another, opening sw/qa/extras/ooxmlexport/data/testOuterShdw.docx in LO now produces a green bar with red shadow at the top of the first page that better resembles the original. > editeng/source/items/frmitems.cxx:1154:18: runtime error: implicit conversion from type 'long' of value -1160 (64-bit, signed) to type 'sal_uInt16' (aka 'unsigned short') changed the value to 64376 (16-bit, unsigned) > #0 in SvxShadowItem::PutValue(com::sun::star::uno::Any const&, unsigned char) at editeng/source/items/frmitems.cxx:1154:18 (instdir/program/libeditenglo.so +0x16716ea) > #1 in BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet&, SfxItemSet const&, bool&) at sw/source/core/unocore/unoframe.cxx:759:48 (instdir/program/libswlo.so +0xba32230) > #2 in SwFrameProperties_Impl::AnyToItemSet(SwDoc*, SfxItemSet&, SfxItemSet&, bool&) at sw/source/core/unocore/unoframe.cxx:1004:19 (instdir/program/libswlo.so +0xba3cbb9) > #3 in SwXFrame::attachToRange(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unoframe.cxx:2665:20 (instdir/program/libswlo.so +0xba78d71) > #4 in SwXFrame::attach(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unoframe.cxx:3003:9 (instdir/program/libswlo.so +0xba877fa) > #5 in SwXTextFrame::attach(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sw/source/core/unocore/unoframe.cxx:3242:15 (instdir/program/libswlo.so +0xba926a2) > #6 in SwXText::insertTextContent(com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&, com::sun::star::uno::Reference<com::sun::star::text::XTextContent> const&, unsigned char) at sw/source/core/unocore/unotext.cxx:619:15 (instdir/program/libswlo.so +0xc2dc17f) > #7 in writerfilter::dmapper::DomainMapper_Impl::PushShapeContext(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at writerfilter/source/dmapper/DomainMapper_Impl.cxx:2330:30 (instdir/program/libwriterfilterlo.so +0x14d2953) > #8 in writerfilter::dmapper::DomainMapper::lcl_startShape(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at writerfilter/source/dmapper/DomainMapper.cxx:2964:18 (instdir/program/libwriterfilterlo.so +0x132c46f) > #9 in writerfilter::LoggedStream::startShape(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&) at writerfilter/source/dmapper/LoggedResources.cxx:151:5 (instdir/program/libwriterfilterlo.so +0x1763e70) > #10 in writerfilter::ooxml::OOXMLFastContextHandlerShape::sendShape(int) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:1678:27 (instdir/program/libwriterfilterlo.so +0x1ad7fba) > #11 in writerfilter::ooxml::OOXMLFastContextHandlerWrapper::lcl_createFastChildContext(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:1917:63 (instdir/program/libwriterfilterlo.so +0x1ae026e) > #12 in writerfilter::ooxml::OOXMLFastContextHandler::createFastChildContext(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx:208:21 (instdir/program/libwriterfilterlo.so +0x1aa90d7) > #13 in non-virtual thunk to writerfilter::ooxml::OOXMLFastContextHandler::createFastChildContext(int, com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList> const&) at writerfilter/source/ooxml/OOXMLFastContextHandler.cxx (instdir/program/libwriterfilterlo.so +0x1aa9378) > #14 in (anonymous namespace)::Entity::startElement((anonymous namespace)::Event const*) at sax/source/fastparser/fastparser.cxx:439:44 (instdir/program/libexpwraplo.so +0x24df4c) > #15 in sax_fastparser::FastSaxParserImpl::callbackStartElement(unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, unsigned char const**) at sax/source/fastparser/fastparser.cxx:1254:21 (instdir/program/libexpwraplo.so +0x249499) > #16 in (anonymous namespace)::call_callbackStartElement(void*, unsigned char const*, unsigned char const*, unsigned char const*, int, unsigned char const**, int, int, unsigned char const**) at sax/source/fastparser/fastparser.cxx:310:18 (instdir/program/libexpwraplo.so +0x240fee) > #17 in xmlParseStartTag2 at workdir/UnpackedTarball/libxml2/parser.c:9583:6 (instdir/program/libxml2.so.2 +0x6f9027) > #18 in xmlParseTryOrFinish at workdir/UnpackedTarball/libxml2/parser.c:11342:14 (instdir/program/libxml2.so.2 +0x7300dc) > #19 in xmlParseChunk__internal_alias at workdir/UnpackedTarball/libxml2/parser.c:12244:13 (instdir/program/libxml2.so.2 +0x72426a) > #20 in sax_fastparser::FastSaxParserImpl::parse() at sax/source/fastparser/fastparser.cxx:1081:25 (instdir/program/libexpwraplo.so +0x23e8e7) > #21 in sax_fastparser::FastSaxParserImpl::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:870:9 (instdir/program/libexpwraplo.so +0x237c3b) > #22 in sax_fastparser::FastSaxParser::parseStream(com::sun::star::xml::sax::InputSource const&) at sax/source/fastparser/fastparser.cxx:1377:13 (instdir/program/libexpwraplo.so +0x2528eb) > #23 in writerfilter::ooxml::OOXMLDocumentImpl::resolve(writerfilter::Stream&) at writerfilter/source/ooxml/OOXMLDocumentImpl.cxx:503:22 (instdir/program/libwriterfilterlo.so +0x1a6a8d7) > #24 in WriterFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at writerfilter/source/filter/WriterFilter.cxx:186:24 (instdir/program/libwriterfilterlo.so +0x1a272bb) > #25 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at sfx2/source/doc/objstor.cxx:2251:34 (instdir/program/libsfxlo.so +0x38d811f) > #26 in SfxObjectShell::DoLoad(SfxMedium*) at sfx2/source/doc/objstor.cxx:772:23 (instdir/program/libsfxlo.so +0x38a1299) > #27 in SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at sfx2/source/doc/sfxbasemodel.cxx:1795:36 (instdir/program/libsfxlo.so +0x3a4372e) > #28 in (anonymous namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at sfx2/source/view/frmload.cxx:688:28 (instdir/program/libsfxlo.so +0x40c49f0) > #29 in framework::LoadEnv::impl_loadContent() at framework/source/loadenv/loadenv.cxx:1149:37 (instdir/program/libfwklo.so +0x15212f1) > #30 in framework::LoadEnv::startLoading() at framework/source/loadenv/loadenv.cxx:383:20 (instdir/program/libfwklo.so +0x1511cd6) > #31 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/loadenv/loadenv.cxx:169:14 (instdir/program/libfwklo.so +0x150d988) > #32 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx:619:12 (instdir/program/libfwklo.so +0x16705ce) > #33 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at framework/source/services/desktop.cxx (instdir/program/libfwklo.so +0x16707da) > #34 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at unotest/source/cpp/macros_test.cxx:50:60 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x8f1f6) > #35 in SwModelTestBase::loadURL(rtl::OUString const&, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:762:23 (workdir/LinkTarget/CppunitTest/libtest_sw_ooxmlexport6.so +0x2460b1) > #36 in SwModelTestBase::load(rtl::OUString const&, char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:717:16 (workdir/LinkTarget/CppunitTest/libtest_sw_ooxmlexport6.so +0x2449d6) > #37 in SwModelTestBase::executeImportTest(char const*, char const*) at sw/qa/extras/inc/swmodeltestbase.hxx:264:13 (workdir/LinkTarget/CppunitTest/libtest_sw_ooxmlexport6.so +0x2440bf) > #38 in testOuterShdw::Import() at sw/qa/extras/ooxmlexport/ooxmlexport6.cxx:924:1 (workdir/LinkTarget/CppunitTest/libtest_sw_ooxmlexport6.so +0x33cf2d) [...] Change-Id: Ib26db2f175192c8756f825128fc5b852fcc24abf Reviewed-on: https://gerrit.libreoffice.org/63355 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-14Simplify containers iterations in sw/source/core/[d-l]*Arkadiy Illarionov
Use range-based loop or replace with STL functions Change-Id: I143e9a769e1c1bb0228933a0a92150f00e3e1f20 Reviewed-on: https://gerrit.libreoffice.org/63347 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-14"oh dear, what can the matter be?"Stephan Bergmann
Lets assume that e3290499009492e39e5ddd870d314bb5df494199 "loplugin singlevalfields improvement" enabled loplugin:singlevalfields by accident. (It fails miserably for me.) Change-Id: Id308a17469babae195fa8261d937036b0cc39ff0
2018-11-14tdf#42949 Fix IWYU warnings in include/svl/*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ide75232858599c275e023c2300201090acd22307 Reviewed-on: https://gerrit.libreoffice.org/63237 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-14Update git submodulesSophia Schröder
* Update helpcontent2 from branch 'master' - Help files: http -> https + some more conservative changes Change-Id: I806fc7998e96cc43f6db35d9f3d13f247960abc0 Reviewed-on: https://gerrit.libreoffice.org/63199 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2018-11-14 tdf#39593 deduplicate code in TreeListBoxtagezi
Separates filling treelist for macros and dialogs to function Change-Id: I5803b94617ed6136f97be922c9da9d705f30b9b0 Reviewed-on: https://gerrit.libreoffice.org/63346 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-11-14Update git submodulesSophia Schröder
* Update helpcontent2 from branch 'master' - Help files: http -> https + some more conservative changes Change-Id: I204669f4deb01cdb2ebdd22398f52779d3501053 Reviewed-on: https://gerrit.libreoffice.org/63220 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2018-11-14xmlsecurity: make members of OOXMLSecExporter::Impl privateMiklos Vajna
Change-Id: I456d9b53fd1168b382a2220716d010556eabbd22 Reviewed-on: https://gerrit.libreoffice.org/63344 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-14Fix parameter value in commentMike Kaganski
Change-Id: Ie10882987655463af3bec8f75a0375f55415cc07 Reviewed-on: https://gerrit.libreoffice.org/63354 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-14We need gb_UnpackedTarball_update_autoconf_configs in order to recognize iOSTor Lillqvist
Change-Id: I0c8eafc15c3582f64989ed3eedc28e746713df01
2018-11-14Add unit test for reading ODF signed signaturelineSamuel Mehrbrodt
Change-Id: I4423a32fe84c6f13457e92aa0de913ee22995119 Reviewed-on: https://gerrit.libreoffice.org/63333 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-11-14Bin obsolete headerJens Carl
Change-Id: I361bfa9e06a19c95a8b49edc0271babba8ae2a2f Reviewed-on: https://gerrit.libreoffice.org/63352 Tested-by: Jenkins Reviewed-by: Jens Carl <j.carl43@gmx.de>
2018-11-14tdf#45904 Move _XEnumeration for ScCellsEnumeration to C++Jens Carl
Change-Id: Ic7c8e6a9fe777d16a98da89e00f1f52128ac1b5d Reviewed-on: https://gerrit.libreoffice.org/63351 Tested-by: Jenkins Reviewed-by: Jens Carl <j.carl43@gmx.de>
2018-11-14Improve readability of subsequentcheck targetsJens Carl
Change-Id: I82527713d12a4ba823b3b185c14ccb8b791a62a8 Reviewed-on: https://gerrit.libreoffice.org/63348 Tested-by: Jenkins Reviewed-by: Jens Carl <j.carl43@gmx.de>
2018-11-13no more SwClient/SwModify for SwXCellBjoern Michaelsen
Change-Id: I014d3e8eed3f65e4eb09ac53c6d34886a2d1086a Reviewed-on: https://gerrit.libreoffice.org/63310 Tested-by: Jenkins Reviewed-by: Björn Michaelsen <bjoern.michaelsen@libreoffice.org>
2018-11-13Set error also in non-UNO/UCB case file date failures, tdf#121337 follow-upEike Rathke
And do not attempt to format an odd date in case of failure. Change-Id: I82e93f9e473f42735b6a7e7b634b14ee7f09941d Reviewed-on: https://gerrit.libreoffice.org/63331 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2018-11-13Add reference to test codeStephan Bergmann
...that had inadvertently been missing from the file's inital commit, a6a48eeef16e473be14642469cd922f177f54998 "tdf#121325: Replace all of given length, even if replacement is shorter" Change-Id: I2a09e1d1ee94480d5615106a4e28958218d9b4c7 Reviewed-on: https://gerrit.libreoffice.org/63334 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-13uitest Writer and Calc- autocorrect options dialogZdeněk Crhonek
Change-Id: I09af4a6a2ca434c1b6cb5b22beac35368d72894f Reviewed-on: https://gerrit.libreoffice.org/63337 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
2018-11-13uitest Writer - Columns dialogZdeněk Crhonek
Change-Id: I2e44fea1dcff0cebb4ebcc0eca18e4c03ac29bb2 Reviewed-on: https://gerrit.libreoffice.org/63338 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
2018-11-13tdf#113977 unit test for function REGEXZdeněk Crhonek
Change-Id: I1871991d94f0bf84b026b0f1f771df7f0f32f5a4 Reviewed-on: https://gerrit.libreoffice.org/63339 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
2018-11-13uitest Writer - about dialogZdeněk Crhonek
Change-Id: I97e533cff27e15233b120c5e1d9ec64c342f761b Reviewed-on: https://gerrit.libreoffice.org/63341 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
2018-11-13android: harfbuzz refuses to compile using mmap.Michael Meeks
Not ideal not to use mmap on a small device though, but disable for now. Change-Id: Id595cbc87c93679c1ce186f91ad36a961aee4132 Reviewed-on: https://gerrit.libreoffice.org/63342 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2018-11-13android: remove redundant header causing build failure.Michael Meeks
Change-Id: I857224b551ff6e5959ffe31e872ec4e4993bc174 Reviewed-on: https://gerrit.libreoffice.org/63343 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2018-11-13uitest cleaningZdeněk Crhonek
Change-Id: Idea5a87b7cce40c23eada06be82524c9b45a4db5 Reviewed-on: https://gerrit.libreoffice.org/63313 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
2018-11-13oox smartart, accent process: add support for reading values from constraintsMiklos Vajna
And also add support for merging parent and own constraints in the layout. This fixes the lack of vertical position difference between the two pairs of shapes in the bugdoc. Change-Id: I3a91c9b0da5eed78a87116ebe0e2751a73e1508f Reviewed-on: https://gerrit.libreoffice.org/63340 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2018-11-13tdf#119747 FileSaveDialog: Windows dialog shows only one extension.Ilhan Yesil
A temporary composed list of file types and extension types is build from the original list and provided to the IFileSaveDialog object, so that this dialog shows only one extension. Change-Id: Iae01c3e889ea38034332fc29e4cc397941930ac0 Reviewed-on: https://gerrit.libreoffice.org/60268 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-11-13hunspell: no need for autoreconf when not patching configureChristian Lohmaier
Also fix some bitrot... The LIBS statement was only active for the autoreconf call, while where it would have mattered is the configure call itself. Since it was built wihout those for all the time, delete it. also no need for explicit shell call, as it is by default executed in a shell. also fix missing comma in if statement for ENABLE_OPTIMIZED. Change-Id: I7ced587bcc3488f19100e89b5b02730b9dd86d5f Reviewed-on: https://gerrit.libreoffice.org/63329 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2018-11-13android: lock away editing mode in separate build flavorChristian Lohmaier
Change-Id: I767cc1d512345aa20570001033ddb4d882e3ca35 Reviewed-on: https://gerrit.libreoffice.org/62362 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2018-11-13tdf#121325: Replace all of given length, even if replacement is shorterStephan Bergmann
Both LO and MS Basic restrict the amount of replacement text ("If the Length parameter in the <emph>Mid statement</emph> is less than the length of the text that you want to replace, the text is reduced to the specified length." in helpcontent2/source/text/sbasic/shared/03120306.xhp, resp. "The number of characters replaced is always less than or equal to the number of characters in Target." at <https://docs.microsoft.com/en-us/dotnet/visual-basic/ language-reference/statements/mid-statement>). But cc20344010e94eda22fee662aab966d395a0796a "tdf#111313: Honor bWriteNoLenParam in !bCompatibility, too" had introduced a regression (in the non--compatibility- mode case), restricting the amount of replaced text to be no more than the amount of replacement text, even if the given length argument was larger. (Which had already regressed in the past, see <https://bugs.documentfoundation.org/show_bug.cgi?id=62090> "Mid statement doesn't work as expected".) Added test cases now. Change-Id: I21d4409f49a2437eb0e1a1e200561d803c42a24c Reviewed-on: https://gerrit.libreoffice.org/63328 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-13CppunitTest_xmlsecurity_signing: turn on clang-format for this fileMiklos Vajna
This had manual consistent formatting. Recently it was broken, so bring back consisency by using clang-format. (And move the "if conversion fails" comment above CPPUNIT_ASSERT_MESSAGE() to avoid the need for an over-indented comment.) Change-Id: Id6a9231c044d7282c84a21152ffdfdcb8af3690d Reviewed-on: https://gerrit.libreoffice.org/63327 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2018-11-13Update git submodulesCaolán McNamara
* Update helpcontent2 from branch 'master' - rename run to ok for per-desktop placement Change-Id: I16d10fbf7edc4d0c3e572ef77d233908d400330a
2018-11-13GTK3: Make code robust against XAccessibleText::getCaretPosition returning -1Stephan Bergmann
...which I've seen once cause the assert in rtl_uString_newFromSubString to fire when entering text ("foo") on a slide in Impress, see below. What also looks suspicious, though, is that both AccessibleEditableTextPara::getCaretPosition and AccessibleEditableTextPara::getText (editeng/source/accessibility/AccessibleEditableTextPara.cxx) each lock the SolarMutex first thing in their bodies, but from the below backtrace GtkSalFrame::IMHandler::signalIMRetrieveSurrounding appears to be called with SolarMutex not locked, so it smells like there could be a race and the call to getCaretPosition return a value unrelated to the value returned by the following call to getText. > #52 0x00007f4ae5e0e9f6 in __GI___assert_fail (assertion=0x7f4ae62ad22b "false", file=0x7f4ae62a026b "/data/sbergman/lo-clang2/core/sal/rtl/strtmpl.cxx", line=1378, function=0x7f4ae62a35e7 "void rtl_uString_newFromSubString(rtl_uString **, const rtl_uString *, sal_Int32, sal_Int32)") at /usr/src/debug/glibc-2.28/assert/assert.c:101 > #53 0x00007f4ae6255157 in rtl_uString_newFromSubString(rtl_uString**, rtl_uString const*, sal_Int32, sal_Int32) (ppThis=0x7ffe871c1cd0, pFrom=0x15b24ed0, beginIndex=0, count=-1) at /data/sbergman/lo-clang2/core/sal/rtl/strtmpl.cxx:1378 > #54 0x00007f4acabc861b in rtl::OUString::copy(int, int) const (this=0x7ffe871c1d88, beginIndex=0, count=-1) at /data/sbergman/lo-clang2/core/include/rtl/ustring.hxx:2221 > #55 0x00007f4acac98dea in GtkSalFrame::IMHandler::signalIMRetrieveSurrounding(_GtkIMContext*, void*) (pContext=0xe188f20) at /data/sbergman/lo-clang2/core/vcl/unx/gtk3/gtk3gtkframe.cxx:4260 > #60 0x00007f4ad94dbe04 in <emit signal 0x7f4aca793890 "retrieve-surrounding" on instance ???> (instance=0xe188f20, detailed_signal=detailed_signal@entry=0x7f4aca793890 "retrieve-surrounding") at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3487 > #56 0x00007f4aca75d206 in _gtk_marshal_BOOLEAN__VOID (closure=0x1594ccd0, return_value=0x7ffe871c1f40, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkmarshalers.c:1901 > #57 0x00007f4ad94bec9d in g_closure_invoke (closure=0x1594ccd0, return_value=0x7ffe871c1f40, n_param_values=1, param_values=0x7ffe871c1fa0, invocation_hint=0x7ffe871c1f20) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gclosure.c:810 > #58 0x00007f4ad94d2203 in signal_emit_unlocked_R (node=node@entry=0x374ea40, detail=detail@entry=0, instance=instance@entry=0xe188f20, emission_return=emission_return@entry=0x7ffe871c20b0, instance_and_params=instance_and_params@entry=0x7ffe871c1fa0) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3635 > #59 0x00007f4ad94da9a3 in g_signal_emit_valist (instance=instance@entry=0xe188f20, signal_id=signal_id@entry=255, detail=detail@entry=0, var_args=var_args@entry=0x7ffe871c21a8) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3401 > #61 0x00007f4aca5a55dc in gtk_im_multicontext_retrieve_surrounding_cb (slave=slave@entry=0x367b5f0, multicontext=<optimized out>) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkimmulticontext.c:532 > #66 0x00007f4ad94dbe04 in <emit signal 0x7f4aca793890 "retrieve-surrounding" on instance ???> (instance=0x367b5f0, detailed_signal=detailed_signal@entry=0x7f4aca793890 "retrieve-surrounding") at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3487 > #62 0x00007f4aca75d206 in _gtk_marshal_BOOLEAN__VOID (closure=0x15949020, return_value=0x7ffe871c2490, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkmarshalers.c:1901 > #63 0x00007f4ad94bec9d in g_closure_invoke (closure=0x15949020, return_value=0x7ffe871c2490, n_param_values=1, param_values=0x7ffe871c24f0, invocation_hint=0x7ffe871c2470) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gclosure.c:810 > #64 0x00007f4ad94d2203 in signal_emit_unlocked_R (node=node@entry=0x374ea40, detail=detail@entry=0, instance=instance@entry=0x367b5f0, emission_return=emission_return@entry=0x7ffe871c2600, instance_and_params=instance_and_params@entry=0x7ffe871c24f0) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3635 > #65 0x00007f4ad94da9a3 in g_signal_emit_valist (instance=instance@entry=0x367b5f0, signal_id=signal_id@entry=255, detail=detail@entry=0, var_args=var_args@entry=0x7ffe871c26f8) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3401 > #67 0x00007f4aca76673c in released_cb (gesture=<optimized out>, n_press=1, x=535, y=1009, context=0x367b5f0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/modules/input/imwayland.c:523 > #68 0x00007f4ad8b45ace in ffi_call_unix64 () at /usr/src/debug/libffi-3.1-18.fc29.x86_64/src/x86/unix64.S:76 > #69 0x00007f4ad8b4548f in ffi_call (cif=cif@entry=0x7ffe871c2a80, fn=fn@entry=0x7f4aca766660 <released_cb>, rvalue=<optimized out>, avalue=avalue@entry=0x7ffe871c2990) at /usr/src/debug/libffi-3.1-18.fc29.x86_64/src/x86/ffi64.c:525 > #70 0x00007f4ad94bfc66 in g_cclosure_marshal_generic_va (closure=<optimized out>, return_value=<optimized out>, instance=<optimized out>, args_list=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=<optimized out>) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gclosure.c:1610 > #71 0x00007f4ad94beef6 in _g_closure_invoke_va (closure=0x158f4a50, return_value=0x0, instance=0x159474c0, args=0x7ffe871c2d30, n_params=3, param_types=0x34f2830) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gclosure.c:873 > #72 0x00007f4ad94db381 in g_signal_emit_valist (instance=0x159474c0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffe871c2d30) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3300 > #73 0x00007f4ad94db923 in g_signal_emit (instance=instance@entry=0x159474c0, signal_id=<optimized out>, detail=detail@entry=0) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3447 > #74 0x00007f4aca57bdfc in gtk_gesture_multi_press_end (gesture=0x159474c0, sequence=<optimized out>) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkgesturemultipress.c:286 > #75 0x00007f4ad94c206e in g_cclosure_marshal_VOID__BOXEDv (closure=0x34ec650, return_value=<optimized out>, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x34ec680) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gmarshal.c:1950 > #76 0x00007f4ad94beef6 in _g_closure_invoke_va (closure=0x34ec650, return_value=0x0, instance=0x159474c0, args=0x7ffe871c30f0, n_params=1, param_types=0x34ec680) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gclosure.c:873 > #77 0x00007f4ad94db381 in g_signal_emit_valist (instance=0x159474c0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffe871c30f0) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3300 > #78 0x00007f4ad94db923 in g_signal_emit (instance=instance@entry=0x159474c0, signal_id=<optimized out>, detail=detail@entry=0) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/gobject/gsignal.c:3447 > #79 0x00007f4aca578f02 in _gtk_gesture_set_recognized (sequence=0x0, recognized=0, gesture=0x159474c0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkgesture.c:345 > #80 0x00007f4aca578f02 in _gtk_gesture_check_recognized (gesture=gesture@entry=0x159474c0, sequence=sequence@entry=0x0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkgesture.c:386 > #81 0x00007f4aca57a50b in gtk_gesture_handle_event (controller=0x159474c0, event=0x7f4ab0006bd0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkgesture.c:814 > #82 0x00007f4aca57d40e in gtk_gesture_single_handle_event (controller=0x159474c0, event=0x7f4ab0006bd0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkgesturesingle.c:222 > #83 0x00007f4aca545235 in gtk_event_controller_handle_event (controller=0x159474c0, event=event@entry=0x7f4ab0006bd0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkeventcontroller.c:230 > #84 0x00007f4aca70538b in _gtk_widget_run_controllers (widget=widget@entry=0x38272a0, event=event@entry=0x7f4ab0006bd0, phase=phase@entry=GTK_PHASE_CAPTURE) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkwidget.c:7379 > #85 0x00007f4aca70992b in _gtk_widget_captured_event (widget=widget@entry=0x38272a0, event=event@entry=0x7f4ab0006bd0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkwidget.c:7433 > #86 0x00007f4aca5c394b in propagate_event_down (topmost=0x0, event=0x7f4ab0006bd0, widget=0x38272a0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkmain.c:2636 > #87 0x00007f4aca5c394b in propagate_event (widget=widget@entry=0x38272a0, event=event@entry=0x7f4ab0006bd0, captured=captured@entry=1, topmost=topmost@entry=0x0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkmain.c:2684 > #88 0x00007f4aca5c5957 in _gtk_propagate_captured_event (topmost=0x0, event=0x7f4ab0006bd0, widget=0x38272a0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkmain.c:2727 > #89 0x00007f4aca5c5957 in gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gtk/gtkmain.c:1914 > #90 0x00007f4aca2b6a39 in _gdk_event_emit (event=event@entry=0x7f4ab0006bd0) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gdk/gdkevents.c:73 > #91 0x00007f4aca313286 in gdk_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at /usr/src/debug/gtk3-3.24.1-1.fc29.x86_64/gdk/wayland/gdkeventsource.c:124 > #92 0x00007f4ad93dd26d in g_main_dispatch (context=0x239de80) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/glib/gmain.c:3182 > #93 0x00007f4ad93dd26d in g_main_context_dispatch (context=context@entry=0x239de80) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/glib/gmain.c:3847 > #94 0x00007f4ad93dd638 in g_main_context_iterate (context=context@entry=0x239de80, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/glib/gmain.c:3920 > #95 0x00007f4ad93dd6d0 in g_main_context_iteration (context=0x239de80, may_block=1) at /usr/src/debug/glib2-2.58.1-1.fc29.x86_64/glib/gmain.c:3981 > #96 0x00007f4acaba22db in GtkSalData::Yield(bool, bool) (this=0x2249a70, bWait=true, bHandleAllCurrentEvents=false) at /data/sbergman/lo-clang2/core/vcl/unx/gtk3/gtk3gtkdata.cxx:463 > #97 0x00007f4acaba6a67 in GtkInstance::DoYield(bool, bool) (this=0x225b3c0, bWait=true, bHandleAllCurrentEvents=false) at /data/sbergman/lo-clang2/core/vcl/unx/gtk/gtkinst.cxx:406 > #98 0x00007f4adf166c6a in ImplYield(bool, bool) (i_bWait=true, i_bAllEvents=false) at /data/sbergman/lo-clang2/core/vcl/source/app/svapp.cxx:438 > #99 0x00007f4adf166a14 in Application::Yield() () at /data/sbergman/lo-clang2/core/vcl/source/app/svapp.cxx:502 > #100 0x00007f4adf1669a6 in Application::Execute() () at /data/sbergman/lo-clang2/core/vcl/source/app/svapp.cxx:419 > #101 0x00007f4ae601eba1 in desktop::Desktop::Main() (this=0x7ffe871c4600) at /data/sbergman/lo-clang2/core/desktop/source/app/app.cxx:1636 > #102 0x00007f4adf182b45 in ImplSVMain() () at /data/sbergman/lo-clang2/core/vcl/source/app/svmain.cxx:199 > #103 0x00007f4adf1843d9 in SVMain() () at /data/sbergman/lo-clang2/core/vcl/source/app/svmain.cxx:233 > #104 0x00007f4ae608e9b8 in soffice_main() () at /data/sbergman/lo-clang2/core/desktop/source/app/sofficemain.cxx:169 > #105 0x00000000004011ab in sal_main () at /data/sbergman/lo-clang2/core/desktop/source/app/main.c:48 > #106 0x00000000004011ab in main (argc=<optimized out>, argc@entry=1, argv=<optimized out>, argv@entry=0x7ffe871c4908) at /data/sbergman/lo-clang2/core/desktop/source/app/main.c:47 > (gdb) frame 55 > #55 0x00007f4acac98dea in GtkSalFrame::IMHandler::signalIMRetrieveSurrounding (pContext=0xe188f20) at /data/sbergman/lo-clang2/core/vcl/unx/gtk3/gtk3gtkframe.cxx:4260 > 4260 OUString sCursorText(sAllText.copy(0, nPosition)); > (gdb) print xText > $1 = uno::Reference to (accessibility::AccessibleEditableTextPara *) 0x1597a418 > (gdb) print nPosition > $2 = -1 > (gdb) print sAllText > $3 = "foo" Change-Id: I047f0932bf7f44da58c6f701695b4f3e0fb0adfa Reviewed-on: https://gerrit.libreoffice.org/63324 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-13Don't call Date's ImpYearToDays with zero year argumentStephan Bergmann
...on which it asserts since 6d4f2dcc7cbba771e9d9b00de50368db4a88ef1b "Resolves: tdf#100452 class Date full (BCE,CE) proleptic Gregorian calendar". The assert fired when executing the Basic code from attachment 146529 to <https://bugs.documentfoundation.org/show_bug.cgi?id=121337> "FileDateTime("\\nonexistent\smb\path") returns bogus result rather than throwing error": > #4 0x00007ffff1d1c830 in (anonymous namespace)::ImpYearToDays(short) (nYear=0) at tools/source/datetime/tdate.cxx:55 > #5 0x00007ffff1d1c449 in Date::DateToDays(unsigned short, unsigned short, short) (nDay=0, nMonth=0, nYear=0) at tools/source/datetime/tdate.cxx:149 > #6 0x00007ffff1d1c3e5 in Date::GetAsNormalizedDays() const (this=0x7fffffff7268) at tools/source/datetime/tdate.cxx:142 > #7 0x00007ffff1d1dae5 in operator-(Date const&, Date const&) (rDate1=1900-1-1, rDate2=0-0-0) at tools/source/datetime/tdate.cxx:581 > #8 0x00007ffff5f87347 in GetDayDiff(Date const&) (rDate=0-0-0) at basic/source/runtime/methods.cxx:4653 > #9 0x00007ffff5f8aebb in SbRtl_FileDateTime(StarBASIC*, SbxArray&, bool) (rPar=...) at basic/source/runtime/methods.cxx:3054 Change-Id: I6468eeafc3daf325d3da3dfeacd08c7df1d1a8f4 Reviewed-on: https://gerrit.libreoffice.org/63318 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2018-11-13Fix race in test codeStephan Bergmann
seen it fail at <https://ci.libreoffice.org/job/lo_tb_master_win/19591/> > Value in Thread #1 is 0 > Value in Thread #2 is 0 > C:/cygwin/home/tdf/lode/jenkins/workspace/lo_tb_master_win/sal/qa/rtl/doublelock/rtl_doublelocking.cxx:199:rtl_DoubleLocking::getValue::getValue_002 > assertion failed > - Expression: nValueOK != 0 > - getValue() failed, wrong value expected. > > rtl_DoubleLocking::getValue::getValue_002 finished in: 1267ms Change-Id: I6ac85a9ff4da8c046412add40c9447ee53ef8d7e Reviewed-on: https://gerrit.libreoffice.org/63320 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-13Fix tdf#44291. Allow saving text without byte-order mark.Martin van Zijl
Change-Id: Ib16a4f37adcb2cfb3d2af9b6af21a4b32e4ae54c Reviewed-on: https://gerrit.libreoffice.org/50388 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-13Make tabbed notebookbar non experimentalandreas kainz
for writer, calc, impress and draw Change-Id: If595fef7f6bfb8d583533b8f7b152d424b814724 Reviewed-on: https://gerrit.libreoffice.org/62959 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2018-11-13do not crash in opencl code with malformed formulaLuboš Luňák
Change-Id: Ie749b57eb0041059ad91a6ec66eddb631168cd56 Reviewed-on: https://gerrit.libreoffice.org/63180 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-11-13blacklist ocSheet for threaded calcLuboš Luňák
It asserts in thread-unsafe ScDocument::GetTable(). Change-Id: I82ce5a0c977cda01fe4d372571e3f8826459dc33 Reviewed-on: https://gerrit.libreoffice.org/63179 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-11-13blacklist svMatrix for calc threaded calculationLuboš Luňák
If a formula contains a matrix, interpreting it will actually result in modifying it in some ways (e.g. ScInterpreter::PopRangeMatrix() calls SetErrorInterpreter() on the matrix). Testcase: rhbz#1645905 Change-Id: I63742449ba0e4e375d6e459dc7bccd7e6b62920e Reviewed-on: https://gerrit.libreoffice.org/63187 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins
2018-11-13don't access deleted cellsLuboš Luňák
This copy&pasted code that got fixed in 2926c9e40e17, so fix it as well. Change-Id: I0a038b57a428640dae8cdf17f33a2eab50b0187c Reviewed-on: https://gerrit.libreoffice.org/63177 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2018-11-13blacklist svExternalName for calc threadingLuboš Luňák
It's the same like svExternal(Single|Double)Ref, there's a lot of thread-unsafe code involved. Change-Id: Ief8bbbd9393788c374215412ee5236ce6bb551fa Reviewed-on: https://gerrit.libreoffice.org/63176 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins