summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-25Add script to find unused using declarationsGabor Kelemen
As a complementer to clang-tidy-12 --checks="-*,misc-unused-using-decls" Pros: - simple, fast! - finds some more unused declarations, somehow - works on non-linux specific parts of the code - clang-tidy (for me) trips on files with external headers, this does not Change-Id: If2db989114ac5c2841ed2e89ff7bd7a9e419f567 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150612 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-04-25Update libxmlsec to 1.3.0Miklos Vajna
See <https://github.com/lsh123/xmlsec/releases/tag/xmlsec_1_3_0> for the upstream release notes, notably: > (ABI breaking change) Switched xmlSecSize to use size_t by default. Adapt xmlsec-wrapper.h accordingly. Change-Id: If910e44441be65794d4441558e2838d00b4b927c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150647 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-04-25oox: extract image / graphic export into GraphicExport classTomaž Vajngerl
Change-Id: Ib37aee6c5f664e80d45530dae0de9c172e0773a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150259 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-04-25oox: Harden the testTdf142605_CurveSize Test with extra checksTomaž Vajngerl
Even if it is likely that we fail, it's important that we check that we are checking thr correct shape and not some other shape. As there is only one shape we could assume that in the case that something goes wrong and we wouldn't be able to read the shape, we would end up with 0 shapes, but in case of an empty page we inject placeholder shapes into the page, so we end up comparing the size of a placeholder shape. In this case the test assert gets confusing as we obviously get wrong sizes, which suggest that something is wrong with the shape and not that the shape we expect to assert against is missing and we compare against a different (placeholder) shape. This adds more asserts, which make sure we actually have the expected shape first and also preven crashes if something would go wrong. Change-Id: I435f87d7e634c5135a376ad084373f8d5053555e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150942 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-04-25tdf#154774 KJ & Sukapura: +/^ images for spacing preview in MathRizal Muttaqin
Change-Id: Ibafddc6e1db98448cc94e72d48c577e8c719ae8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150951 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-24oox: combine graphic cache into GraphicExportCache classTomaž Vajngerl
We cache graphics to not export the same graphic multiple times if this can be avoided. The cache was integrated into DrawingML but we need access to it in different places, so this change extracts it into its own class. Change-Id: I71e3b67906f2948ca00c2ef7ca857bf80ab6a737 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150258 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-04-24oox: extend ThemeExport to export font and format scheme of a themeTomaž Vajngerl
Also use the ThemeExport when exporting PPTX documents and remove all the hard-coded theme bits. Change-Id: I03791e23d6ac4023748b5a553e4824b72ed63a93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149363 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-04-24introduce sw::SpzFrameFormat ...Bjoern Michaelsen
- ... as a base class of frame formats allowed into the spz frame format container - with a private ctor and friends SwDrawFrameFormat and SwFlyFrameFormat so only these two classes derive from it - with that, switch over the SpzFrameFormats to only ever allow these types into the container - in followups, likely quite a bit of stronger typing can be introduced. - ultimately, it would be nice to have each SwDrawFrameFormats and SwFlyFrameFormats in their own strongly typed container in the end. Change-Id: Ic30efc1220aded701533c9ca5003d2aaf8bbdaec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150452 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
2023-04-24tdf#145359 related: Fix SdNavigator dnd z orderingJim Raykowski
Makes the object dnd z order follow the current behavior of bring forward and send back actions. Object placement top to bottom in the Navigator is wrt object z order back to front. Change-Id: I42e0902eabe7a2758a075a5f4357868994825a51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150810 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2023-04-24Resolves: tdf#153441 use a TriStateEnabled helperCaolán McNamara
Change-Id: I976e4271a072bfb53c676091509e1d4ef7dbcccb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150934 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24ofz#58241 Integer-overflowCaolán McNamara
Change-Id: Ie5b82df4642c786e309022e3b5a436aef66d1137 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150945 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24loplugin:unnecessarygetstr extend to more std::string checkingNoel Grandin
suggested by mike kaganski Change-Id: I5f5f254142767aca45a6101abdd84a0163ca6a34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150936 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-24tdf#154859 sw: fix deletion of tracked row insertionLászló Németh
Row deletion of tracked row insertions resulted an empty, not tracked row. To fix this, disable row deletion on tracked row insertions, allowing only to manage changes for removing the row, e.g. by clicking on Reject Change of the context menu of the table row, like MSO does. This also avoids of clicking again on the row deletion to create an empty tracked row deletion from the empty not tracked row, and originally, from the tracked row insertion. Regression from commit 05366b8e6683363688de8708a3d88cf144c7a2bf "tdf#60382 sw offapi: add change tracking of table/row deletion". Follow-up to commit 0204c00f241313e1d292b4c3ea117d42af7dec69 "tdf#147453 sw: disable Delete Table functions on tracked deletions". See also commit 95c003d75e0f8b255344715a35358072b5eba99d "tdf#146145 sw: 1-click Accept/Reject of table row changes". Change-Id: Ied38860939359caa52e09987cf968953399611ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150938 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2023-04-24resave with latest gladeCaolán McNamara
Change-Id: I8db5ddfa271ab3729d069486f9f4b05263fbe9b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150941 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24sw floattable, crashtesting: fix PDF export of fdo80989-1.docxMiklos Vajna
Converting the bugdoc to PDF crashed Writer layout since commit ce3308a926f036b87515b8cd97d2b197063dc77a (tdf#61594 sw floattable: import floating tables as split flys by default, 2023-04-12). There were two problems here: 1) We assumed that when we move content to a next page, that page is empty. This may not be true, and in case the next page has content, we should insert the content at the start of the page, not at the end. Specifying the sibling for MoveSubTree() fixes this. 2) We also hoped that if we ask for the next layout leaf, that will be from the next page. Again, this may not be true, SwFrame::GetNextSctLeaf() has quite complex conditions to detect this. Split flys don't have to span over multiple columns, so just require that the candidate is inside a different body then our anchor. The bugdoc has to be loaded in hidden mode, otherwise we already calc the layout on load, and then the problem is not visible. Change-Id: I6e1533369db24c7c275ec1d7dceaddc4128c268a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150904 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-04-24tdf#154884: do not stop if the first pair is not what we looked forMike Kaganski
The same character can be added later with a different font, so keep searching Change-Id: I7b83438ca476ffab23ca08268cf957045d75f6f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150937 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-04-24tdf#154698 allow "XML Form Document" to be localizedCaolán McNamara
like "Base: Relation Design" can be Change-Id: Ic4bebd0636da1eb598e667f7aa51b201ecf9cc27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150935 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24cid#1524749 Copy into fixed size bufferCaolán McNamara
Change-Id: I0a4d11fc15c9e7603f6c46c2075373722722b437 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150905 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24tdf#154774 Breeze & Sifr: Add image for spacing preview in MathRizal Muttaqin
Change-Id: I8a7aa14729b41311c86a9cbc57626c68c8d70ee0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150908 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-24tdf#154941: sc_mathematical_functions_test: Add unittestXisco Fauli
Change-Id: I263b143c94773045fa9c20471b81a7555aff4ce9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150909 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-04-24tdf#117118 - Saves data automatically in Firebird embedded databasejucasaca
Saves data when dispossing connection regardless of whether or not the save button is pressed Change-Id: I501fbc3d89ff52695f42196b2627e26c2011f75b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148368 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-24tdf#147503 don't use SfxObjectShellLock for new xml forms documentCaolán McNamara
because in the hidden case the document is unexpectedly closed on leaving NewXForms Change-Id: I00ea0b8de6c10ff141584cefe3768b7071138393 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150891 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24sw: fix crash in OutHTML_SwFormatField()Miklos Vajna
Crashreport signature: program/libswlo.so SwDocShell::GetView() sw/inc/docsh.hxx:222 program/libswlo.so OutHTML_SwFormatField(Writer&, SfxPoolItem const&) sw/source/filter/html/htmlfldw.cxx:549 ... program/libswlo.so SwTransferable::WriteObject(tools::SvRef<SotTempStream>&, void*, unsigned int, com::sun::star::datatransfer::DataFlavor const&) sw/source/uibase/dochdl/swdtflvr.cxx:? I.e. clipboard documents don't have a doc shell, handle that. Change-Id: I48b22087f759a11b4aa46b83b310f4a661e1fbc4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150897 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-04-24cid#1401342 silence Uncaught exceptionCaolán McNamara
Change-Id: I1ff8deeb07c13cc7dee6e5d86f004f840723f056 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150903 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-24loplugin:unnecessarygetstr extend to createFromAsciiNoel Grandin
idea from mike kaganski Change-Id: I0ecb9cad091d7a048d2ddae73165bf22748f3872 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150907 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-24tdf#154774 Breeze: Add images for spacing preview in MathRizal Muttaqin
Change-Id: I9cacdb4c1ae5de9a312b59fc07310ab1991a1105 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150898 Tested-by: Rizal Muttaqin <rizmut@libreoffice.org> Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-24tdf#139544 change boundary columns to rows in sort dialogArvind K
Change-Id: I7f525bea42e6efd3c7c4b62a21d2638b676cd836 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150432 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-04-24sw floattable: remove no longer needed ImportFloatingTableAsSplitFly settingMiklos Vajna
This was useful while developing the DOCX and DOC filters, but those are now enabled by default, so this can be removed. Change-Id: I0ebde6ec5e1a84f368d35b362bd1c3b1aabc9d5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150895 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2023-04-24Missing CJK and CTL attributes in default cell stylesMaxim Monastirsky
Presumably after 516bc904e94971b61e4b13af632bf321b0a4a640 ("Upgrade mdds and orcus to 2.1.0 and 0.18.0, respectively"). It appears that we used to set them from the latin attributes specified in styles.xml, which isn't correct. So let's just add them explicitly. Change-Id: I3300f73b0376275147f89d2db0ac3ef4bf2da5a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150892 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2023-04-24sw: prefix members of XMLFontAutoStylePool, XMLPageExport, ...Miklos Vajna
... XMLStyleExport and XMLTextListAutoStylePool See tdf#94879 for motivation. Change-Id: If49190233b87bf86c83d56f02eedb1c010ef119c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150896 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-04-24EMF+ Minor optimization and clean up code of DrawBeziersBartosz Kosiorek
Change-Id: Id560b3d3a6182270853fd05a6f2d1e44452c0013 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150894 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2023-04-24tdf#154976 Fix VCL based asset's contrast in Colibre Dark & harmonizeRizal Muttaqin
them with Light Now the Light and Dark variant will have opposite but complementary colors Change-Id: I71b01cd3933b2c76c6880430a6684ee5665fa653 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150890 Tested-by: Rizal Muttaqin <rizmut@libreoffice.org> Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-24tdf#147906 Use std::hypot for Pythagorean additionbuldi
Change-Id: I47611e1bffed814294bd2c7b23b26e1878151464 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149939 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2023-04-24tdf#152625 Revise Colibre's tab_select* iconsRizal Muttaqin
Change-Id: Ic5a92b98ddcbfa970643bf54fb406673c9108c2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150829 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-24Fix some getImplementationNameStephan Bergmann
...to match the corresponding .component entries, > com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant) etc. rather than > com.sun.star.i18n.IndexEntrySupplier_"(alphanumeric first) (grouped by consonant)" etc. Change-Id: I7fa0f9c7615b5cb1b7c0c6a8908cad27f0ac5712 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150760 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-04-23Fix some getImplementationNameStephan Bergmann
...to match the corresponding .component entries Change-Id: I1f32d4533a49f0988a2d5c2b8d20198baab515a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150761 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-04-23Translate remnant "Kalkulator" into "calculator"Andrea Gelmini
Change-Id: I3c72342d07eabb3b618cd0c36d0606d81baad423 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150173 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-04-23Fix typoAndrea Gelmini
Change-Id: Ie8c702436d3efbaf2ca1573193100974a42f93a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150459 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-04-23tdf#153892 Colibre Differentiate two Index iconsRizal Muttaqin
Change-Id: Icafd532f4a5cc18d7bdfe9fe545d678286081b52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150827 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-23tdf#148251 Use std::swap instead of using temporary valuesNabeel Siddiqui
Change-Id: I7733ba595634f41ef0a0902ea37d694276417871 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149087 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2023-04-23tdf#154789 EMF+ Performance boost of the EmfPlusRecordTypeDrawBeziersBartosz Kosiorek
There is several benefits of such performance optimization: 1. We are drawing single curve instead of hundreds of small curves. In the loop we are creating single Polygon and outside of the loop we are invoking EMFPPlusDrawPolygon drawing method only once. As https://bugs.documentfoundation.org/attachment.cgi?id=186725 image is using single EmfPlusRecordTypeDrawBeziers EMF+ record with hundreds of curves, with using single EMFPPlusDrawPolygon call, there is no lnger need for individual line creation (e.g. line color, weight, line caps, line joints, line dashes, etc.) - The PDF export performance without optimizations of the https://bugs.documentfoundation.org/attachment.cgi?id=186725: time ./instdir/program/soffice --headless --convert-to "pdf:writer_pdf_Export" --outdir ~ ~/Pobrane/problem.docx real 24m18,471s user 2m56,004s sys 1m37,816 - The PDF export performance with optimizations: real 0m37,527s user 0m37,004s sys 0m0,531s - With Libreoffice 7.5.2 from Ubuntu 22.04, the conversion was crashed. 2. The PDF export for document: https://bugs.documentfoundation.org/attachment.cgi?id=186725 was not working correctly for me. The original image is containing chart. Without optimization, the exported chart was empty. Current export is working correctly, and graph is visible. 3. The standard opening of the document from https://bugs.documentfoundation.org/attachment.cgi?id=186725 is now much faster. The zooming in, move image operations are also noticible faster. Change-Id: Ic77d4c20a462587bb5da4a4df757e30c5ca04fc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150821 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2023-04-23tdf#154886: fix Report builder mutex assertionJulien Nabet
Thank you Noel for the hint! Change-Id: Icb1f63deaffc454e0dcc3b736c9214d93b6871df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150826 Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-23tdf#154825 All icon themes: add/update section editorRizal Muttaqin
Change-Id: I9b59c4c99d623aab1a46898e732f45d5b22261ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150825 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2023-04-23ScriptForge (SFDialogs) support hyperlink control typesJean-Pierre Ledure
Controls designated in english as "Hyperlink controls" in the Basic IDE are from now on accepted as instances of the SF_DialogControl service. All generic properties are accepted. The supported specific properties are: - Caption (the text that appears in the dialog box) - URL (the URL to activate when clicked) The new control type is supported in Basic and Python user scripts. The SFDialogs.DialogControl help page needs to be updated. Change-Id: I4827834ad8ef336c084ee51b5285b85745ceb1b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150824 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-04-23cid#1524746 silence Using a moved objectCaolán McNamara
Change-Id: I82728c481c721aeb0d70f6bbdf6f0f1b49ea7b8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150819 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-23cid#1524676 try to convince coverity of the error of its waysCaolán McNamara
and cid#1524745 Explicit null dereferenced Change-Id: Id2fb9cf6d0a71712533e14981a33490c578db597 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150818 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-23cid#1524747 Dereference null return valueCaolán McNamara
Change-Id: I08a3382287dd30a6cee84e93b3aa8a97db4c3a76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150817 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-23cid#1524750 Dereference null return valueCaolán McNamara
Change-Id: I2f0aa7c190e6f4c18340a75fcc2eb5b635d686e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150816 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-23cid#1524751 Dereference after null checkCaolán McNamara
Change-Id: I3543b7e251fe6076ad1875bc49abfbe747f45999 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150813 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-23cid#1401342 Uncaught exceptionCaolán McNamara
Change-Id: I16dd5b9adf6f6e87c11bd1cfcbb823c4f683bedd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150812 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>