summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-19notebookbar: minify for onlineSzymon Kłos
Notebookbar load takes some time. We don't use most of the items in online so minify .ui file to contain only needed widgets. Change-Id: I4796caae14bb63e3e04d318093209adfb87a77df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113623 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114154 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-04-19Fix two string matches to not include the trailing NULsStephan Bergmann
...which had apparently been broken ever since they got introduced with 399fb822ef81bd2440da8ab48cc2028a6b44d5b7 "swunolocking1: #i105557#: fix locking for SwXDocumentIndex". (The first mis-use of sizeof had already been silently fixed with 46ce0d28b4c765076c7871358375c4e85e44534b "loplugin:stringliteralvar look for assignments". And we can now use the OUString::match overloads that take const char arrays, instead of using OUString::matchAsciiL, and simplify the first one even further to use OUString::startsWith.) Change-Id: I1e7975f29e225bae74ed0c2d447e541fa47bd954 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114146 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-04-19fix build: partial revert loplugin:unusedmethodsJustin Luth
Apr 14 commit a41aef4c1648519b934f0aed06d1c75f75fd852a removed the method, and Apr 19 commit d748430c7d12d71a4cc4ed178e072026ea218641 called it. Change-Id: I5c1071a386413069933ff8329eab921b92704688 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114253 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org>
2021-04-19Ensure outline content visibility 'Hide' button is removedJim Raykowski
when mouse move leaving window event results in move outside of the outline frame area and when entering a 'Show' button directly from a 'Hide' button which is required by gtk3 but not gen. Change-Id: Ib4d834b8a3b9051ec628406b8da369986a9e1e21 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114071 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2021-04-19Only Toggle in Outline Folding menu when sublevels are includedJim Raykowski
Change-Id: Ib0d61d96f46acfeca1c017ec77d315e68ce33fb8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114072 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2021-04-18no need to construct temporary OUStrings hereNoel Grandin
Change-Id: I869c1cf23d8055b0327ca486bbfbc68dd98af842 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114250 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-18tdf#132901: do not add updatecheck to libmergedXisco Fauli
LibreOffice crashes if "online update" feature is not installed Regression from c63148ba139bd6b9ae7a0f9e24e51f29e5370963 < Revert "Revert "add some libs to libmerged"" > Change-Id: Ia18f50bc6baf830b2d3e0814645ef04283bfaa04 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114247 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-18tdf#141708 wait until float is activated to grab focusCaolán McNamara
otherwise the grab occurs in the navigator ctor which happens during impress startup and will generate focus events which leads to impress getting activated during its startup triggering the creation of the navigator which is already being created resulting in multiple navigators created during startup Change-Id: Ic0a868437845fda9edf9eb0d761227d4c27992d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114235 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-18reduce log noiseNoel Grandin
Change-Id: I1172470ededff6cacc0d35f069e7afb9c97a425e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114245 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-18reduce allocation cost in SvxShape::SetPropertyNoel Grandin
use std::optional so we don't need to heap allocate all the time. note that I couldn't use the normal SfxItemSet constructor, std::optional::emplace on macOS doesn't seem to play nice with the template magic there Change-Id: Ic5de23e9a20dceae56f894cf0706b89ced77ff58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114246 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-18fix alignment of FootnoteAreaPage Dialog Tabandreas kainz
Change-Id: Id605b9c11d80356a2bb5658b3489655e90e65441 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114236 Tested-by: Jenkins Reviewed-by: Andreas Kainz <kainz.a@gmail.com>
2021-04-17tdf#30709 sw Style Inspector: show bookmark dataLászló Németh
If the current character position is there in a bookmark (or in multiple bookmarks), show bookmark names and RDF metadata under the node "Bookmarks" in the Style Inspector. Follow-up of commit dd45df62d217db59be3f515b6c7e1bfd17ec4350 "tdf#30709 sw: show RDF metadata in Style Inspector". Change-Id: I943682bd13e7760a8f7a8d534f497e88f2769275 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114225 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2021-04-17tdf#30709 sw Style Inspector: show metadata xml:idLászló Németh
Follow-up of commit dd45df62d217db59be3f515b6c7e1bfd17ec4350 "tdf#30709 sw: show RDF metadata in Style Inspector". Change-Id: Id488f268e3c2d668680735f2092eddb252966cd5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114224 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2021-04-17Colibre: Revise some iconsRizal Muttaqin
Change-Id: Id52445cc75293d44ac29a11692ad39f27472544b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114221 Tested-by: Jenkins Reviewed-by: Rizal Muttaqin <rizmut@libreoffice.org>
2021-04-17ofz#27296 Out-of-memory and ofz#27384 Indirect-leakCaolán McNamara
Revert "ofz#27012 detect deletion of XFCell" This reverts commit e40d28d65222ba462c20ede17da5ef54751932e3. and Revert "ofz#26357 Timeout in lwpfuzzer, 12s -> 1.3s" This reverts commit 473c1b05f7a7a5500a2e15b911263b546792b013. Change-Id: Ia4d37148745259a285523b1b45ca9838c4122b89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114234 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-17remove some cachingNoel Grandin
if we going to recreate it every time we call this method, there is no point in caching the result. Change-Id: Ie1f7bde86eca5cdd998fa8626303d3dead479ad3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114231 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-17add lang::XServiceInfo to WeldEditAccessibleCaolán McNamara
Change-Id: I3aa5e0a8d3333560f0f086107cef44a5bb2c353d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114229 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-17tdf#140764 add ImageMode to tabbed NBandreas kainz
Change-Id: I6d3e10fa945da303b1af69b1d631bd2dc8cdab43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114228 Tested-by: Jenkins Reviewed-by: Andreas Kainz <kainz.a@gmail.com>
2021-04-17update paraindentspacingandreas kainz
Change-Id: I35d0fcc2555ead62f890f2b66a75b3a6d646a95b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114230 Tested-by: Jenkins Reviewed-by: Andreas Kainz <kainz.a@gmail.com>
2021-04-17loplugin:constantparamNoel Grandin
Change-Id: I1d518bef47c838d03d8526a6a8fffd36d2ee68d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114074 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-17tdf#141701 Crash when closing 3D View dialog of 3D chartNoel Grandin
regression from commit 1d2773807f6d2deb1181ef4b14fbdd49ca1d5c14 ref-count SdrPage we need to clear the SdrPage which releases some objects or some unhelpful DBG_UTIL mode code in ~SdrObject will kick in and try and release objects, but it ends up deleting child objects before parent objects, which cau Change-Id: Iaad89a05a30c119807beacc54aaa66b6fde634e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114223 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-17tdf#141675 Incorrect position of shapeNoel Grandin
This reverts commit 44711d9eb53eb6247ebdb9293a3eb5e643f78059 tdf#130326 related, speed up drawing because it causes a regression. Change-Id: I19ea236b8541c1fe2557f43375bfef3ba555cfff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114183 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-17tdf#48551: change preset subtype of Fly Out and Crawl Out exit animationsKatarina Behrens
so that they match the behaviour (it is fly out 'to left', 'to right' etc. instead of 'from left', 'from right') This change only affects animation direction choices in GUI (sidebar) and doesn't modify the animation itself in any way Change-Id: Id5dd8013f388243c1c862177cfa7c6f106b9d09c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114226 Tested-by: Jenkins Reviewed-by: Katarina Behrens <bubli@bubli.org>
2021-04-17tdf#119962 Fix autoincrement for copied tableOleksii Makhotin
Change-Id: Ic916288c4177734c93c423ac3823993ca95a941d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113668 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-17tdf#93664 sc: fix filtering clicking on cells merged horizontallyTünde Tóth
Click on the filter button of cells merged horizontally showed the "Empty" entry instead of the filter list. Pressing Alt-Down (.uno:DataSelect) worked correctly here, so only mouse handling was broken. This was a regression from commit aaab3a79dfd762a64fa4c1d19dd29ae46c0b9dd0 "Resolves: #i120017, filter button is not shown in merged cell" (which fixed filtering clicking on cells merged vertically). Partial revert of that commit sets the correct first column in the merged range again instead of the last one. Change-Id: I83724f18580134868867bc829cad0739f0932733 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114050 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-04-17Pivot table: fix data field subdialogSzymon Kłos
Changes done in 'Data field' subdialog were not applied in the result pivot table. Change-Id: Ia221380a9ab3d292033512b9b642646f4b53a39d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112096 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114212 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-04-17pivot table: make partial sum message box asyncSzymon Kłos
Change-Id: I63011526d60f332ee56edebf5bf48b30ad6b2a94 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108807 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114211 Tested-by: Jenkins
2021-04-17pivot table: properly close all subdialogsSzymon Kłos
Change-Id: Ieda601ce25d822394d6ddd12da861128b9270aa2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107843 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114207 Tested-by: Jenkins
2021-04-17tdf#141407 NB remove EPub from calc, draw, impress NBsandreas kainz
Change-Id: I37aff5e53e300c29a4c6920461530b63e1519cf4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114219 Tested-by: Jenkins Reviewed-by: Andreas Kainz <kainz.a@gmail.com>
2021-04-17use OUString in dir handling operationsNoel Grandin
which simplifies things nicely Change-Id: I1bcc1dae9a7f2e4bbadfacff1332b7453c0c29b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114131 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-16tdf#98481: sc_subsequent_filters: Add unittestXisco Fauli
Change-Id: Ic5c69f1280f972ff3f51353fbc9bbd7c95123a12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114218 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-04-16tdf#122222: add DOCX import of resolved comments as "done"Mike Kaganski
Change-Id: Id596d18965de2d8c98853c281188fe8d749055f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114204 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-04-16tdf#122222: add DOCX export of resolved comments as "done"Mike Kaganski
Since implementation of tdf#119228, Writer comments may have "Resolved" state, which is the equivalent of Word's internal "done" flag. This relies on [MS-DOCX] extensions available since Word 2013. DOCX import will be implemented in a follow-up commit. [MS-DOCX]: https://docs.microsoft.com/en-us/openspecs/office_standards/ms-docx Change-Id: I3be1e8a096bdec41c8268974fe81328480eb0704 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114023 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-04-16lok: force writer web-view off.Michael Meeks
A number of callers mutate this, so make the setting un-writable. Change-Id: I0a3727020309b92543e42730c997168f076e7bfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114177 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2021-04-16X11SalGraphics::SupportsCairo is pretty slow and its value won't changeCaolán McNamara
seen in tdf#140639 with https://wiki.documentfoundation.org/Development/How_to_debug#Performance_debugging_.28perf.29 perf record --call-graph dwarf,65528 --pid=`pidof soffice.bin` perf script | ~/git/FlameGraph/stackcollapse-perf.pl | ~/git/FlameGraph/flamegraph.pl --width 4096 --height 24 > perf.svg Change-Id: Ibb3b2bdd57adcabf74f38c35878cf2c00e1e5de0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114161 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-16Remove description from mobile macro selectorSzymon Kłos
Change-Id: I76d9a73c65d0c7759b56a3d7b69aadf5b58d7da1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112327 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114206 Tested-by: Jenkins
2021-04-16related tdf#137626: rewrite XML_min to XML_minuteBalazs Varga
Followed up of 26032e63abd01c3d5941a2728ef024da290d6b0a (tdf#137626 XLSX import: fix missing datetime filters) Change-Id: I9f72749198d410ce40a6d14c5d3a6e9f4ae7b4bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113832 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
2021-04-16tdf#141525 Fix "Line with Arrow/Circle" insertion error.Jeff Huang
When you insert "Line with Arrow/Circle" from "Lines and Arrows", it will show "Line Starts with Arrow" instead of "Line with Arrow/Circle". This patch can fix this issue. (This issue exists at least since 6.3 series.) Change-Id: I827b9582951fe359d89245970e73d63f7697553f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113963 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2021-04-16tdf#131634 Don't redo actions created before text edit begins.Mark Hung
In SdrObjEditView::SdrEndTextEdit(), pSdrUndoManager->Redo() was invoked until all the redo actions created after text edit began were converted to undo actions. Without checking, all the redo actions include the ones created before text edit began were moved to undo stack, and caused the SdrTextObj to be destroyed in SdrUndoManager::SetEndTextEditHdl when removing the undo actions and a use after release problem. The patch add GetRedoActionCountBeforeTextEdit() so the program won't invoke pSdrUndoManager->Redo() on actions created before text edit begin. Change-Id: Ic010bc6e71ee78ef2cb20a5259dc9d6d6579ccaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114102 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2021-04-16Remove unused code from Macro Selector dialogSzymon Kłos
Change-Id: I9930fd7eaf2410447f84aa4798478a10915ea738 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112316 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114205 Tested-by: Jenkins
2021-04-16jsdialog: uitest: handle click for drawing areaSzymon Kłos
Change-Id: I5ea78697b87f4b2a468f8507470b62031bee4aa0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113524 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114202 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-04-16SVGFilter::implGenerateMetaData check page before useSzymon Kłos
Avoid crash in online impress: 1. session A edits the textbox 2. session B removed slide which is edited by A 3. session A tries to edit another textbox on other slide Change-Id: Ic875321107baa48fd2a5b52aa2580a8fcde40823 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113077 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114203 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-04-16flatten some code in sal/osl/w32Noel Grandin
Change-Id: Ibff36560f0fc49155dc5e8fe587b8f3a41e79516 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114201 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-16sw: DOCX export: write hyperlinks for TOXMark TOX entriesMichael Stahl
* add hyperlink preprocessing in MSWordExportBase::AddLinkTarget() * <w:hyperlink> in the TOX entry * <w:bookmarkStart>/<w:bookmarkEnd> in the field command Change-Id: I4d18778d8ac594a1b4cb43bf0e1234f875eeaf95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114170 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-04-16Avoid infinite loop in AddPixelsWhile when removing SheetSzymon Kłos
When 2 sessions in online were used: A was in chart editing mode in the last sheet B removed last sheet infinite loop occured as GetRowHeight returned 0 due to invalid tab number. Change-Id: If5c4ba583dfb1154ff44e0bf651a098fa78bafda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113044 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114153 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2021-04-16tdf#120168: sc_subsequent_export: Add unittestXisco Fauli
Change-Id: I8a8cf9355fd4be0d7f22dbef3d701ede4b209623 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114200 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-04-16CppunitTest_sw_htmlexport: extract reqif export code to a functionMiklos Vajna
This is just the common case when the filter name and the filter options (needed for reqif) is set, no custom options. Change-Id: Ifae4d0810eb099e32b542579d839f5dd2acb4677 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114199 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-04-16Update language-subtag-registry to 2021-03-05Eike Rathke
Change-Id: Ia56693bac2dea931664caa79a6b1e90bf7a58c93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114155 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-04-16tdf#141538 Make Remove button work in Select Address List dialogGabor Kelemen
... of the Mail Merge Wizard with non-GTK3 backends This works around the different return value of TreeView::get_selected_text() Change-Id: Id7542f8e73731ffe5d133703f0bd0d0ebf26b89f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113747 Tested-by: Jenkins Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
2021-04-16sw: DOCX export: DocxAttributeOutput::EndField_Impl() omits bookmark endMichael Stahl
(regression from f5c266695a4a88da7db971a21915e2bbf758d48e) Change-Id: I00c871c096e8370e3ba4fccd1d02d350142d6b28 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114166 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>