Commit Graph
235 Commits
Author SHA1 Message Date
Gökay Şatır a74bbebc52 Add windowId to "notifyCursorInvalidation".
Online side has special handling for backspace and delete chars.
Online side calls a function for these chars along with windowId.
We need to know the windowIds of the form controls when calling removeTextContent function.

Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I3ed6cea3ffe81769c7f95da95636ad6d630059ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190487
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200290
Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com>
Tested-by: Jenkins
2026-02-26 07:05:37 +01:00
Gabor Kelemen fd2e467ba3 tdf#146619 Run IWYU in fw decl mode on include/[a-c]*
After recent commit 851fb75779
recheck these directories in include/ again
to test drive the new --headersfwd mode of bin/find-unneeded-includes

Change-Id: I0ede437c4f9958cd98210ed1760a5b98ea8bd1ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192377
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2025-11-08 09:37:19 +01:00
Tomaž Vajngerl 0b18630a51 vcl: cursor invalidation for form controls
Form controls need to send cursor invalidation when, to make it
possible to show the cursor in online, when we are editing an edit
box in the document.

Change-Id: I17c74b8183ba8caf06898019908bf0c2879d49d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189178
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190804
Tested-by: Jenkins
Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com>
2025-09-11 15:43:17 +02:00
Henry Castro 9e86101902 cppuhelper: add 'm_' prefix to OComponentHelper class members
Change-Id: I02a3ce12eb1d02dd28a2eec9beeb9633292975ce
Signed-off-by: Henry Castro <hcastro@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189882
Tested-by: Jenkins
2025-08-19 13:25:54 +02:00
Noel Grandin 8aaebe35f4 loplugin:unusedfields
Change-Id: I25e45339e9cd60c16d1ff50d9aad25d64d95a8fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186669
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-06-18 22:04:00 +02:00
Mike Kaganski 04c62acc63 Use std::initializer_list, C-style array instead of more expensive Sequence
Change-Id: Ibb268268926cc91f595f19026f6cee4b5a74a8bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178038
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-12-07 19:10:08 +01:00
Caolán McNamara 6f1508f4de cid#1555767 COPY_INSTEAD_OF_MOVE
and

cid#1555770 COPY_INSTEAD_OF_MOVE
cid#1555788 COPY_INSTEAD_OF_MOVE
cid#1555789 COPY_INSTEAD_OF_MOVE
cid#1555798 COPY_INSTEAD_OF_MOVE
cid#1555816 COPY_INSTEAD_OF_MOVE
cid#1555822 COPY_INSTEAD_OF_MOVE
cid#1555835 COPY_INSTEAD_OF_MOVE
cid#1555845 COPY_INSTEAD_OF_MOVE
cid#1555859 COPY_INSTEAD_OF_MOVE
cid#1555864 COPY_INSTEAD_OF_MOVE
cid#1555868 COPY_INSTEAD_OF_MOVE
cid#1555892 COPY_INSTEAD_OF_MOVE
cid#1555896 COPY_INSTEAD_OF_MOVE
cid#1555921 COPY_INSTEAD_OF_MOVE
cid#1555932 COPY_INSTEAD_OF_MOVE
cid#1555935 COPY_INSTEAD_OF_MOVE
cid#1555944 COPY_INSTEAD_OF_MOVE
cid#1555952 COPY_INSTEAD_OF_MOVE
cid#1555985 COPY_INSTEAD_OF_MOVE
cid#1556024 COPY_INSTEAD_OF_MOVE
cid#1556038 COPY_INSTEAD_OF_MOVE
cid#1556042 COPY_INSTEAD_OF_MOVE
cid#1556044 COPY_INSTEAD_OF_MOVE
cid#1556060 COPY_INSTEAD_OF_MOVE
cid#1556083 COPY_INSTEAD_OF_MOVE
cid#1556085 COPY_INSTEAD_OF_MOVE
cid#1556090 COPY_INSTEAD_OF_MOVE
cid#1556136 COPY_INSTEAD_OF_MOVE
cid#1556157 COPY_INSTEAD_OF_MOVE
cid#1556159 COPY_INSTEAD_OF_MOVE
cid#1556172 COPY_INSTEAD_OF_MOVE
cid#1556179 COPY_INSTEAD_OF_MOVE
cid#1556187 COPY_INSTEAD_OF_MOVE
cid#1556255 COPY_INSTEAD_OF_MOVE
cid#1556256 COPY_INSTEAD_OF_MOVE
cid#1556266 COPY_INSTEAD_OF_MOVE
cid#1556275 COPY_INSTEAD_OF_MOVE
cid#1556290 COPY_INSTEAD_OF_MOVE
cid#1556294 COPY_INSTEAD_OF_MOVE
cid#1556301 COPY_INSTEAD_OF_MOVE
cid#1556311 COPY_INSTEAD_OF_MOVE
cid#1556318 COPY_INSTEAD_OF_MOVE
cid#1556326 COPY_INSTEAD_OF_MOVE
cid#1556369 COPY_INSTEAD_OF_MOVE
cid#1556374 COPY_INSTEAD_OF_MOVE
cid#1556387 COPY_INSTEAD_OF_MOVE
cid#1556388 COPY_INSTEAD_OF_MOVE
cid#1556417 COPY_INSTEAD_OF_MOVE
cid#1556425 COPY_INSTEAD_OF_MOVE
cid#1556435 COPY_INSTEAD_OF_MOVE
cid#1556495 COPY_INSTEAD_OF_MOVE
cid#1556497 COPY_INSTEAD_OF_MOVE
cid#1556501 COPY_INSTEAD_OF_MOVE
cid#1556503 COPY_INSTEAD_OF_MOVE
cid#1556520 COPY_INSTEAD_OF_MOVE
cid#1556523 COPY_INSTEAD_OF_MOVE
cid#1556562 COPY_INSTEAD_OF_MOVE
cid#1556573 COPY_INSTEAD_OF_MOVE
cid#1556576 COPY_INSTEAD_OF_MOVE
cid#1556598 COPY_INSTEAD_OF_MOVE
cid#1556615 COPY_INSTEAD_OF_MOVE
cid#1556626 COPY_INSTEAD_OF_MOVE
cid#1556671 COPY_INSTEAD_OF_MOVE
cid#1556689 COPY_INSTEAD_OF_MOVE
cid#1556701 COPY_INSTEAD_OF_MOVE
cid#1556713 COPY_INSTEAD_OF_MOVE
cid#1556758 COPY_INSTEAD_OF_MOVE
cid#1556759 COPY_INSTEAD_OF_MOVE
cid#1556788 COPY_INSTEAD_OF_MOVE
cid#1556811 COPY_INSTEAD_OF_MOVE
cid#1556821 COPY_INSTEAD_OF_MOVE
cid#1556824 COPY_INSTEAD_OF_MOVE
cid#1556825 COPY_INSTEAD_OF_MOVE
cid#1556862 COPY_INSTEAD_OF_MOVE

Change-Id: I4925a79688a983bb07252600430039ec0bcb75b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175678
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-10-26 19:25:03 +02:00
Bogdan Buzea eb37b2eb14 tdf#163486: PVS: Identical branches
V1037 Two or more case-branches perform the same actions. Check lines: 865, 868

Change-Id: Icc108072231fd37a73f0a35eac15bb1960e50202
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175266
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2024-10-21 09:36:07 +02:00
Noel Grandin f9ff22db05 tsan:lock-order-inversion in forms
==================
WARNING: ThreadSanitizer: lock-order-inversion (potential deadlock)
(pid=14614)
Cycle in lock order graph: M0 (0x720c004ac190) => M1 (0x720c004a8200) =>
M0

Mutex M1 acquired here while holding mutex M0 in thread T43:
2 osl::Mutex::acquire() /home/noel/libo-tsan/include/osl/mutex.hxx:63
(libuno_cppuhelpergcc3.so.3+0x8fdd9)
3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&)
/home/noel/libo-tsan/include/osl/mutex.hxx:144
(libuno_cppuhelpergcc3.so.3+0x8fdd9)
4 cppu::OBroadcastHelperVar<cppu::OMultiTypeInterfaceContainerHelper,
com::sun::star::uno::Type>::addListener(com::sun::star::uno::Type
const&, com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
const&) /home/noel/libo-tsan/include/cppuhelper/interfacecontainer.h:468
(libuno_cppuhelpergcc3.so.3+0x8fdd9)
5
cppu::OPropertySetHelper::addPropertiesChangeListener(com::sun::star::uno::Sequence<rtl::OUString>
const&,
com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener>
const&) /home/noel/libo-tsan/cppuhelper/source/propshlp.cxx:912
(libuno_cppuhelpergcc3.so.3+0x8fdd9)
6
comphelper::OPropertySetAggregationHelper::addPropertiesChangeListener(com::sun::star::uno::Sequence<rtl::OUString>
const&,
com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener>
const&) /home/noel/libo-tsan/comphelper/source/property/propagg.cxx:495
(libcomphelper.so+0x1a1865)
7 comphelper::OPropertySetAggregationHelper::startListening()
/home/noel/libo-tsan/comphelper/source/property/propagg.cxx:466
(libcomphelper.so+0x1a1416)
^^^ Mutex M0 previously acquired by the same thread here:
8
comphelper::OPropertySetAggregationHelper::addPropertyChangeListener(rtl::OUString
const&,
com::sun::star::uno::Reference<com::sun::star::beans::XPropertyChangeListener>
const&) /home/noel/libo-tsan/comphelper/source/property/propagg.cxx:488
(libcomphelper.so+0x1a181a)
9 non-virtual thunk to
comphelper::OPropertySetAggregationHelper::addPropertyChangeListener(rtl::OUString
const&,
com::sun::star::uno::Reference<com::sun::star::beans::XPropertyChangeListener>
const&) /home/noel/libo-tsan/comphelper/source/property/propagg.cxx:?
(libcomphelper.so+0x1a181a)
10 frm::OInterfaceContainer::implInsert(int,
com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>
const&, bool, frm::ElementDescription*, bool)
/home/noel/libo-tsan/forms/source/misc/InterfaceContainer.cxx:787
(libfrmlo.so+0x23e03c)
11 frm::OInterfaceContainer::insertByIndex(int, com::sun::star::uno::Any
const&)
/home/noel/libo-tsan/forms/source/misc/InterfaceContainer.cxx:904
(libfrmlo.so+0x240644)
12 non-virtual thunk to frm::OInterfaceContainer::insertByIndex(int,
com::sun::star::uno::Any const&)
/home/noel/libo-tsan/forms/source/misc/InterfaceContainer.cxx:?
(libfrmlo.so+0x240716)
13 FmXUndoEnvironment::Inserted(FmFormObj*)
/home/noel/libo-tsan/svx/source/form/fmundo.cxx:424
(libsvxcorelo.so+0x41b2a4)
14 FmXUndoEnvironment::Inserted(SdrObject*)
/home/noel/libo-tsan/svx/source/form/fmundo.cxx:336
(libsvxcorelo.so+0x41a982)
15 FmXUndoEnvironment::Notify(SfxBroadcaster&, SfxHint const&)
/home/noel/libo-tsan/svx/source/form/fmundo.cxx:292
(libsvxcorelo.so+0x41a8a0)
16 non-virtual thunk to FmXUndoEnvironment::Notify(SfxBroadcaster&,
SfxHint const&) /home/noel/libo-tsan/svx/source/form/fmundo.cxx:?
(libsvxcorelo.so+0x41acd2)
17 SfxBroadcaster::Broadcast(SfxHint const&)
/home/noel/libo-tsan/svl/source/notify/SfxBroadcaster.cxx:40
(libsvllo.so+0xe7c3d)
18 SdrObjList::InsertObject(SdrObject*, unsigned long)
/home/noel/libo-tsan/svx/source/svdraw/svdpage.cxx:351
(libsvxcorelo.so+0x6fdf3a)
19 FmFormPage::InsertObject(SdrObject*, unsigned long)
/home/noel/libo-tsan/svx/source/form/fmpage.cxx:79
(libsvxcorelo.so+0x3c1e05)
20
SvxDrawPage::add(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) /home/noel/libo-tsan/svx/source/unodraw/unopage.cxx:191
(libsvxcorelo.so+0x850c7b)
21
SwFmDrawPage::add(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) /home/noel/libo-tsan/sw/source/core/unocore/unodraw.cxx:649
(libswlo.so+0xc30712)
22 non-virtual thunk to
SwFmDrawPage::add(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) /home/noel/libo-tsan/sw/source/core/unocore/unodraw.cxx:?
(libswlo.so+0xc31732)
23 gcc3::callVirtualMethod(void*, unsigned int, void*,
_typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int,
unsigned long*, double*)
/home/noel/libo-tsan/bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:87
(libgcc3_uno.so+0xd92a)
24 cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*,
bridges::cpp_uno::shared::VtableSlot,
_typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*,
void*, void**, _uno_Any**)
/home/noel/libo-tsan/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:229
(libgcc3_uno.so+0xcc3c)
25 unoInterfaceProxyDispatch
/home/noel/libo-tsan/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:409
(libgcc3_uno.so+0xc1f6)

Mutex M0 acquired here while holding mutex M1 in thread T44:
3 osl::Guard<osl::Mutex>::Guard(osl::Mutex&)
/home/noel/libo-tsan/include/osl/mutex.hxx:144
(libcomphelper.so+0x1bde34)
4
comphelper::OPropertyChangeListener::setAdapter(comphelper::OPropertyChangeMultiplexer*)
/home/noel/libo-tsan/comphelper/source/property/propmultiplex.cxx:58
(libcomphelper.so+0x1bde34)
5
comphelper::OPropertyChangeMultiplexer::disposing(com::sun::star::lang::EventObject
const&)
/home/noel/libo-tsan/comphelper/source/property/propmultiplex.cxx:120
(libcomphelper.so+0x1bde34)
6 non-virtual thunk to
comphelper::OPropertyChangeMultiplexer::disposing(com::sun::star::lang::EventObject
const&)
/home/noel/libo-tsan/comphelper/source/property/propmultiplex.cxx:?
(libcomphelper.so+0x1bdf12)
7
cppu::OInterfaceContainerHelper::disposeAndClear(com::sun::star::lang::EventObject
const&)
/home/noel/libo-tsan/cppuhelper/source/interfacecontainer.cxx:272
(libuno_cppuhelpergcc3.so.3+0x66524)
8
cppu::OMultiTypeInterfaceContainerHelperInt32::disposeAndClear(com::sun::star::lang::EventObject
const&)
/home/noel/libo-tsan/cppuhelper/source/interfacecontainer.cxx:577
(libuno_cppuhelpergcc3.so.3+0x68af0)
9 cppu::OPropertySetHelper::disposing()
/home/noel/libo-tsan/cppuhelper/source/propshlp.cxx:246
(libuno_cppuhelpergcc3.so.3+0x8be45)
10 comphelper::OPropertySetAggregationHelper::disposing()
/home/noel/libo-tsan/comphelper/source/property/propagg.cxx:366
(libcomphelper.so+0x1a0321)
^^^ Mutex M1 previously acquired by the same thread here:
11 frm::OControlModel::disposing()
/home/noel/libo-tsan/forms/source/component/FormComponent.cxx:705
(libfrmlo.so+0x19eecc)
12 frm::ORichTextModel::disposing()
/home/noel/libo-tsan/forms/source/richtext/richtextmodel.cxx:295
(libfrmlo.so+0x267bdb)
13 cppu::OComponentHelper::dispose()
/home/noel/libo-tsan/cppuhelper/source/component.cxx:159
(libuno_cppuhelpergcc3.so.3+0x4504f)
14 non-virtual thunk to cppu::OComponentHelper::dispose()
/home/noel/libo-tsan/cppuhelper/source/component.cxx:?
(libuno_cppuhelpergcc3.so.3+0x45379)
15 frm::OControlModel::disposing()
/home/noel/libo-tsan/forms/source/component/FormComponent.cxx:708
(libfrmlo.so+0x19ef13)
16 frm::OBoundControlModel::disposing()
/home/noel/libo-tsan/forms/source/component/FormComponent.cxx:1340
(libfrmlo.so+0x1a507f)
17 frm::OEditModel::disposing()
/home/noel/libo-tsan/forms/source/component/Edit.cxx:301
(libfrmlo.so+0x161208)
18 cppu::OComponentHelper::dispose()
/home/noel/libo-tsan/cppuhelper/source/component.cxx:159
(libuno_cppuhelpergcc3.so.3+0x4504f)
19 non-virtual thunk to cppu::OComponentHelper::dispose()
/home/noel/libo-tsan/cppuhelper/source/component.cxx:?
(libuno_cppuhelpergcc3.so.3+0x45379)
20 SdrUnoObj::~SdrUnoObj()
/home/noel/libo-tsan/svx/source/svdraw/svdouno.cxx:214
(libsvxcorelo.so+0x6f471b)
21 FmFormObj::~FmFormObj()
/home/noel/libo-tsan/svx/source/form/fmobj.cxx:119
(libsvxcorelo.so+0x3bd8cf)
22 FmFormObj::~FmFormObj()
/home/noel/libo-tsan/svx/source/form/fmobj.cxx:112
(libsvxcorelo.so+0x3bd985)
23 SdrObject::release()
/home/noel/libo-tsan/svx/source/svdraw/svdobj.cxx:486
(libsvxcorelo.so+0x6634df)
24 rtl::Reference<SdrObject>::~Reference()
/home/noel/libo-tsan/include/rtl/ref.hxx:126 (libsvxcorelo.so+0x61610d)
25 void std::destroy_at<rtl::Reference<SdrObject>
>(rtl::Reference<SdrObject>*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:88
(libsvxcorelo.so+0x61610d)
26 void std::_Destroy<rtl::Reference<SdrObject>
>(rtl::Reference<SdrObject>*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:149
(libsvxcorelo.so+0x61610d)
27 void
std::_Destroy_aux<false>::__destroy<rtl::Reference<SdrObject>*>(rtl::Reference<SdrObject>*,
rtl::Reference<SdrObject>*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:163
(libsvxcorelo.so+0x61610d)
28 void
std::_Destroy<rtl::Reference<SdrObject>*>(rtl::Reference<SdrObject>*,
rtl::Reference<SdrObject>*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:195
(libsvxcorelo.so+0x61610d)
29 void std::_Destroy<rtl::Reference<SdrObject>*,
rtl::Reference<SdrObject> >(rtl::Reference<SdrObject>*,
rtl::Reference<SdrObject>*, std::allocator<rtl::Reference<SdrObject> >&)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/alloc_traits.h:948
(libsvxcorelo.so+0x61610d)
30 std::vector<rtl::Reference<SdrObject>,
std::allocator<rtl::Reference<SdrObject> > >::~vector()
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:735
(libsvxcorelo.so+0x61610d)
31 SdrModel::ClearModel(bool)
/home/noel/libo-tsan/svx/source/svdraw/svdmodel.cxx:623
(libsvxcorelo.so+0x61610d)
32 SwDrawModel::~SwDrawModel()
/home/noel/libo-tsan/sw/source/core/draw/drawdoc.cxx:108
(libswlo.so+0x714650)
33 std::default_delete<SwDrawModel>::operator()(SwDrawModel*) const
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:99
(libswlo.so+0x5a3082)
34 std::__uniq_ptr_impl<SwDrawModel, std::default_delete<SwDrawModel>
>::reset(SwDrawModel*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:211
(libswlo.so+0x5a3082)
35 std::unique_ptr<SwDrawModel, std::default_delete<SwDrawModel>
>::reset(SwDrawModel*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:509
(libswlo.so+0x5a3082)
36 sw::DocumentDrawModelManager::ReleaseDrawModel()
/home/noel/libo-tsan/sw/source/core/doc/DocumentDrawModelManager.cxx:162
(libswlo.so+0x5a3082)
37 SwDoc::~SwDoc()
/home/noel/libo-tsan/sw/source/core/doc/docnew.cxx:585
(libswlo.so+0x5457c8)
38 SwDoc::release() /home/noel/libo-tsan/sw/source/core/doc/doc.cxx:129
(libswlo.so+0x4b8993)
39 rtl::Reference<SwDoc>::clear()
/home/noel/libo-tsan/include/rtl/ref.hxx:193 (libswlo.so+0x104c301)
40 SwDocShell::RemoveLink()
/home/noel/libo-tsan/sw/source/uibase/app/docshini.cxx:444
(libswlo.so+0x104c301)
41 SwDocShell::~SwDocShell()
/home/noel/libo-tsan/sw/source/uibase/app/docshini.cxx:372
(libswlo.so+0x104bf36)
42 SwDocShell::~SwDocShell()
/home/noel/libo-tsan/sw/source/uibase/app/docshini.cxx:362
(libswlo.so+0x104c469)
43 non-virtual thunk to SwDocShell::~SwDocShell()
/home/noel/libo-tsan/sw/source/uibase/app/docshini.cxx:?
(libswlo.so+0x104c469)
44 cppu::OWeakObject::release()
/home/noel/libo-tsan/cppuhelper/source/weak.cxx:230
(libuno_cppuhelpergcc3.so.3+0x105ae7)
45 rtl::Reference<SfxObjectShell>::~Reference()
/home/noel/libo-tsan/include/rtl/ref.hxx:126 (libsfxlo.so+0x5209e5)
46 IMPL_SfxBaseModel_DataContainer::~IMPL_SfxBaseModel_DataContainer()
/home/noel/libo-tsan/sfx2/source/doc/sfxbasemodel.cxx:265
(libsfxlo.so+0x5209e5)
47 void
std::destroy_at<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:88
(libsfxlo.so+0x51f4e6)
48 void
std::_Destroy<IMPL_SfxBaseModel_DataContainer>(IMPL_SfxBaseModel_DataContainer*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_construct.h:149
(libsfxlo.so+0x51f4e6)
49 void std::allocator_traits<std::allocator<void>
>::destroy<IMPL_SfxBaseModel_DataContainer>(std::allocator<void>&,
IMPL_SfxBaseModel_DataContainer*)
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/alloc_traits.h:675
(libsfxlo.so+0x51f4e6)
50 std::_Sp_counted_ptr_inplace<IMPL_SfxBaseModel_DataContainer,
std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:613
(libsfxlo.so+0x51f4e6)
51 SfxBaseModel::dispose()
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:175
(libsfxlo.so+0x4e7c7c)
52 SwXTextDocument::dispose()
/home/noel/libo-tsan/sw/source/uibase/uno/unotxdoc.cxx:562
(libswlo.so+0x13896e1)
53 SfxBaseModel::close(unsigned char)
/home/noel/libo-tsan/sfx2/source/doc/sfxbasemodel.cxx:1526
(libsfxlo.so+0x4eed16)
54 SwXTextDocument::close(unsigned char)
/home/noel/libo-tsan/sw/source/uibase/uno/unotxdoc.cxx:575
(libswlo.so+0x138999c)
55 non-virtual thunk to SwXTextDocument::close(unsigned char)
/home/noel/libo-tsan/sw/source/uibase/uno/unotxdoc.cxx:?
(libswlo.so+0x1389ad3)
56 gcc3::callVirtualMethod(void*, unsigned int, void*,
_typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int,
unsigned long*, double*)
/home/noel/libo-tsan/bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:87
(libgcc3_uno.so+0xd92a)

Change-Id: Ie16fc0ff7462632a591a46025a38344006d43c30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173068
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-09-09 16:08:42 +02:00
Mike Kaganski 493b8ab997 Simplify comphelper::query_aggregation
Change-Id: Id673c27e21c6706367f2effc92bbea61c83a5482
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170133
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-09 05:46:19 +02:00
Noel Grandin 1eaae3966d loplugin:ostr in forms
Change-Id: Ifee5d86b54aa746dbd3b17ff966794f32fbc23bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167303
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-08 11:15:40 +02:00
Caolán McNamara 41590e7d1f WaE: C6011 Dereferencing NULL pointer warnings
Change-Id: I8edb1fefe1b2b8a3db3ee8f3a0eed59c7f08a36e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166863
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-05-02 09:24:11 +02:00
Mike Kaganski 0fa827dbb2 Drop std::as_const from css::uno::Sequence iterations
Obsoleted by commit 2484de6728 (Remove
non-const Sequence::begin()/end() in internal code, 2021-10-15) and
commit fb3c04bd19 (Drop non-const
Sequence::operator[] in internal code, 2021-11-05).

Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-27 12:43:48 +01:00
Noel Grandin 767092fe2c loplugin:referencecasting look for a new pattern
Change-Id: Ib7ded8db2c513909159f0876389f63b60082a529
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141618
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-21 15:50:35 +02:00
Andreas Heinisch 7c1a815288 tdf#122319 - Don't allow nullable form components if input is required
Change-Id: I676aab37df7a98192680b87f0143a27d2a5fd3ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140713
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-10-05 15:31:51 +02:00
Caolán McNamara ea36e0502c tdf#150786 use a 'standard' theme for form controls
i.e. ignore system theme so we get the same results on export to pdf
regardless of the theme (esp dark) and don't follow the system theme
when hosted with a writer/calc/impress document (do continue to use
system theme for StarBasic dialogs as seen in BasicIDE)

Didn't reuse 'NativeWidgetLook' for this because is currently defaults
off, while we currently do use the colors derived from the system theme
even when this is off, its really the NWF flag to render using the
platform theming engine

Change-Id: I816d7ebaf793e5eac7bd937d44c1db0371145199
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140942
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-04 21:17:46 +02:00
Stephan Bergmann 91ba9654ba Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxx
...so that its TOOLS_WARN_EXCEPTION can be used in
comphelper/source/misc/logging.cxx in a follow-up commit.  (And while at it,
rename from diangose_ex.h to the more appropriate diagnose_ex.hxx.  The
comphelper module is sufficiently low-level for this immediate use case, so use
that at least for now; o3tl might be even more suitable but doesn't have a
Library until now.  Also, for the immediate use case it would have sufficed to
only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION,
TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of
include/tools/diagnose_ex.h into an additional new
include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move
the complete include file as is.)

Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-18 17:10:19 +02:00
Stephan Bergmann efdf328a71 Just use Any ctor instead of makeAny in forms
Change-Id: I25183cc06728c81e45b28fd41071c15abf05bbc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133809
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-04 12:11:29 +02:00
Gabor Kelemen e3206e6740 Recheck modules [e-f]* with IWYU
See tdf#42949 for motivation

Change-Id: I49a3ce10dee4b03f99156f5b641f69448e1d5617
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128479
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-01-17 01:33:35 +01:00
Noel Grandin 9f18e327a1 use more OInterfaceContainerHelper3 in forms
Change-Id: Ie4a6124beccb55c983b8d4f63c86ec5f2869e9c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125956
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-28 11:40:17 +01:00
Noel Grandin ed355acf3f loplugin:stringliteraldefine in forms
Change-Id: Ia26f0c767030db0361758d2be37f01d30c7e1df9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125763
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-25 12:04:56 +01:00
Julien Nabet 01878ce321 Replace some macros in forms part 17
Remove FRM_RES_STRING + PROP + PROPERTY_FLAGS

Change-Id: I11befedbe83ad9d7c3f3f4d689230ffe422c0770
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124830
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-08 07:04:47 +01:00
Julien Nabet 40a5ba66a8 Replace some macros in forms part 10
Remove DECL_PROP_IMPL
Change-Id: I4ba5e3252058b137cd314f0aed0caf60bb347852

Change-Id: Icfda67a31f465ebfe0c13761bdbdf9b024605dc5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124785
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-06 10:49:45 +01:00
Julien Nabet b4c4ca39d7 Replace some macros in forms part 9
Change-Id: I3bd6e118455c8ce86650797e05b7e40ca066eb53
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124784
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-06 08:13:40 +01:00
Julien Nabet 742b8befec Replace some macros in forms part 7
Remove BEGIN_DESCRIBE_PROPERTIES
Change-Id: Ic1f52f21037e890c4f7143a1283f34101dbb737a

Change-Id: I1bd902af7f634bb70313dda72b7a008bdda38f75
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124782
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-05 23:38:51 +01:00
Julien Nabet 642a033935 Replace some macros in forms part 8
Remove END_DESCRIBE_PROPERTIES
Change-Id: I844b71cd74f2b2c5306d0ad979ed56480892268c

Change-Id: Ia0aa75a3042ecc47bf434afb0de971d35ab78dfa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124783
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-05 23:34:46 +01:00
Julien Nabet 7b6554851f Replace some macros in forms part 6
Remove DECL_BOOL_PROP_IMPL + BEGIN_DESCRIBE_BASE_PROPERTIES

Change-Id: I1a55c9de46ae741045002241a2b0f5dfa32db8c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124777
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-05 20:09:24 +01:00
Julien Nabet 5bfbaf3c80 Replace some macros in forms part 5
Remove DECL_IFACE_PROP_IMPL + DECL_PROP0 + DECL_PROP2

Change-Id: I8bd0222244a4cb0db33fa890056bf00e240fb4fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124769
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-05 18:45:50 +01:00
Julien Nabet 3c1bd03780 Replace some macros in forms part 3
Remove DECL_BOOL_PROP1 + DECL_BOOL_PROP2

Change-Id: I8a07ac7b2b8ab724d5277a11b37cf10a6711fdb5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124664
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-04 07:04:01 +01:00
Julien Nabet de9f868323 Replace some macros in forms
DECL_IFACE_PROP2 + DECL_IFACE_PROP3 + DECL_IFACE_PROP4
+ DECL_BOOL_PROP3
Change-Id: Ibfe652001f4e914cad364222bcaf38dec69298e5

Change-Id: I432e045b9d071d61cd142bca66f40233cd59ef0b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124564
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-11-02 18:42:35 +01:00
Noel Grandin 1875b3d9f2 clang-tidy:readability-redundant-member-init
Change-Id: I67edbea77b12940ac807ccbadfd74b250902809d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121378
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-01 08:54:41 +02:00
Noel Grandin 8a54339fc8 loplugin:referencecasting look through more clang Types
Note that because of where the fix resides, loplugin:redundantcast
also notices a few more things.

Change-Id: I0b66047fadfff2c5ceafcbd3eab085de00d861a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120865
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-23 15:25:26 +02:00
Noel 7ffb71e759 loplugin:refcounting in forms
Change-Id: I19d67e54f77e354eaddaaa7de1f3e22c2b7cdbf6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111280
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-21 16:10:51 +01:00
Noel 547b1d0541 use more TOOLS_WARN_EXCEPTION
Change-Id: I8b5cde993c13e0b7c8c830b1ff698933a6b7cfd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103863
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-03 08:13:29 +02:00
Andrea Gelmini 0d2dbcbebf Fix typo in code
Change-Id: Ia2820c68109c84b52173beafe2cf301104d80831
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101652
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-08-30 15:16:07 +02:00
Caolán McNamara cfce4865e8 dito->ditto
Change-Id: I432dcc61dfb53e6b439052c495a602aab8a58f5d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100172
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-08-05 16:52:26 +02:00
Noel Grandin fcabb9a726 loplugin:flatten in forms
Change-Id: I7e264cc1e60280b80a4e2e87b8944de4912c563d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92162
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14 13:33:20 +02:00
Gabor Kelemen f0c8312bc6 tdf#42949 Fix IWYU warnings in forms/
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I4afb3616c4f93155c187da11b2981b84d0984e9f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87943
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-02-14 10:55:43 +01:00
Noel Grandin df773dc769 use more TOOLS_WARN_EXCEPTION
so we get more useful log messages when stuff goes wrong

Change-Id: Ia55db7ab1a4d79b0f281673fbbb06c61745fa89e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85829
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-26 19:08:42 +01:00
Stephan Bergmann f853ec317f Extend loplugin:external to warn about classes
...following up on 314f15bff0 "Extend
loplugin:external to warn about enums".

Cases where free functions were moved into an unnamed namespace along with a
class, to not break ADL, are in:

  filter/source/svg/svgexport.cxx
  sc/source/filter/excel/xelink.cxx
  sc/source/filter/excel/xilink.cxx
  svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx

All other free functions mentioning moved classes appear to be harmless and not
give rise to (silent, even) ADL breakage.  (One remaining TODO in
compilerplugins/clang/external.cxx is that derived classes are not covered by
computeAffectedTypes, even though they could also be affected by ADL-breakage---
but don't seem to be in any acutal case across the code base.)

For friend declarations using elaborate type specifiers, like

  class C1 {};
  class C2 { friend class C1; };

* If C2 (but not C1) is moved into an unnamed namespace, the friend declaration
must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see
C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither
qualified nor a template-id and the declaration is a function or an
elaborated-type-specifier, the lookup to determine whether the entity has been
previously declared shall not consider any scopes outside the innermost
enclosing namespace.")

* If C1 (but not C2) is moved into an unnamed namespace, the friend declaration
must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882>
"elaborated-type-specifier friend not looked up in unnamed namespace".

Apart from that, to keep changes simple and mostly mechanical (which should help
avoid regressions), out-of-line definitions of class members have been left in
the enclosing (named) namespace.  But explicit specializations of class
templates had to be moved into the unnamed namespace to appease
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of
template from unnamed namespace using unqualified-id in enclosing namespace".

Also, accompanying declarations (of e.g. typedefs or static variables) that
could arguably be moved into the unnamed namespace too have been left alone.

And in some cases, mention of affected types in blacklists in other loplugins
needed to be adapted.

And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which
is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is
not moved into an unnamed namespace (because it is declared in
sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is.  GCC warns about
such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler
doesn’t give this warning for types defined in the main .C file, as those are
unlikely to have multiple definitions."
(<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>)  The
warned-about classes also don't have multiple definitions in the given test, so
disable the warning when including the .cxx.

Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4
Reviewed-on: https://gerrit.libreoffice.org/83239
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22 12:57:32 +01:00
Noel Grandin 3b13f813da loplugin:constmethod in forms..fpicker
Change-Id: I1673e00be0a6c9d34ce02437bf68d929c56952f7
Reviewed-on: https://gerrit.libreoffice.org/79540
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-26 03:04:34 +02:00
Julien Nabet 2674cf29a8 tdf#88205 Adapt uses of css::uno::Sequence to use initializer_list ctor
in forms and fpicker

Change-Id: Ifa931bed6de434a2ee183c78e8e1be852ca06a56
Reviewed-on: https://gerrit.libreoffice.org/77637
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-08-17 17:03:14 +02:00
Noel Grandin cf3fb54deb loplugin:sequenceloop in forms..oox
Change-Id: Id742001211e916e7709918e7112902a0c35bac95
Reviewed-on: https://gerrit.libreoffice.org/77501
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-15 13:15:50 +02:00
Noel Grandin 6595240f39 loplugin:referencecasting in forms..fpicker
Change-Id: I0aa040b6d3264d2efde5797f79994d3d65ceaddf
Reviewed-on: https://gerrit.libreoffice.org/75957
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-19 18:29:34 +02:00
Caolán McNamara e48e2bb907 cid#1448381 Unchecked return value
Change-Id: I4f0b48df10bf8557e39e0769a61a36bacac8f02a
Reviewed-on: https://gerrit.libreoffice.org/75884
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-07-18 22:18:38 +02:00
Andrea Gelmini ba84300b82 Fix typo
Change-Id: I43ba5d6591be6ad782bc72bac1938ae9763c7103
Reviewed-on: https://gerrit.libreoffice.org/71900
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-07 19:16:17 +02:00
Mike Kaganski 5a824268df Don't use resettable/clearable guard where plain guard is enough
Also use scope where possible. This allows to limit guard scope at
language level; visualises the scope clearly; and helps avoiding
errors like fixed in commit 61e4437c85.

Change-Id: Ifeca96e2df8e8a0897770d9546b2536806275f41
Reviewed-on: https://gerrit.libreoffice.org/70376
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-07 17:53:04 +02:00
Gabor Kelemen 80aec8ef2a tdf#42949 Fix IWYU warnings in include/connectivity/*
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I02f75be483529ba1f7a6e460e34c4752b4265221
Reviewed-on: https://gerrit.libreoffice.org/68893
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-03-12 10:14:54 +01:00
Noel Grandin 0019eac5e5 loplugin:indentation in forms..fpicker
Change-Id: If01379c43519cc1dbcf8dfaefde545fbe7e24fc2
Reviewed-on: https://gerrit.libreoffice.org/67556
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-09 17:07:19 +01:00
Lionel Elie Mamane fec8c14e96 tdf#121188 form controls should have InputRequired false by default
Unless the underlying column is not nullable and has no default value
this is only a guess, form designer can change it

Change-Id: Ifa403e00b21fdaf86aef383503d54879b25ac62b
Reviewed-on: https://gerrit.libreoffice.org/62969
Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu>
Tested-by: Lionel Elie Mamane <lionel@mamane.lu>
2018-11-06 19:14:23 +01:00