Commit Graph

345 Commits

Author SHA1 Message Date
Noel Grandin
8508873a24 clang-tidy:readability-redundant-member-init
Change-Id: Icaef0cca9ca7bce76a7eb7ecd54c492f9ffcaad6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121376
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-31 17:28:58 +02:00
Miklos Vajna
15a524a1ed embeddedobj: implement XServiceInfo in the various embedded obj implementations
This gives UNO clients a reliable way to detect e.g.
OSpecialEmbeddedObject, where it's expected that double-clicking on the
object doesn't do anything.

Change-Id: I595453490b157b64214cd7359da1e3a3c959191d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120274
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2021-08-10 22:02:00 +02:00
Noel Grandin
86abf3a682 create comphelper::OMultiTypeInterfaceContainerHelper2 and use it
based on OInterfaceContainerHelper2 which is considerably
faster than the original OInterfaceContainerHelper

Change-Id: I9c8b6d0e5382018824bf7188a26343703abf2d51
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120161
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-07 21:34:33 +02:00
Stephan Bergmann
10d29c390d throw() -> noexcept, part 2/3: Automatic loplugin:noexcept rewrite
Change-Id: I076f16d0536b534abf0ced4d76051eadb4c0e033
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114949
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-05-02 17:02:28 +02:00
Armin Le Grand (Allotropia)
f4c66a2272 tdf#141529 sync linked OLE save(s) with hosting file save(s)
Before deactivating a linked OLE saved it and overwrote the
original, even when not saving the hosting document at all.
This is not intuitive from user perspective and may lead
to unexpected data loss (of the OLE content).
Reported case was especially about closing the hosted document
without saving in the understandable believe that that way the
changed OLE will not be changed on external medium.
Added mechanism for linked OLE to hold data in a hidden local
temp file, synching/writing back on hosting file save. Most
complicated was adapting the 'break link' case and ensuring
other cases to work, but looks good now from my POV

Change-Id: I7f63d667820b2d9725abc598a9dd7360be1f8d5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113793
Tested-by: Armin Le Grand <Armin.Le.Grand@me.com>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2021-04-08 13:22:09 +02:00
Andrea Gelmini
78eaf6489a Fix typos
Change-Id: I41f5c964a289a88b3f6fc637797fe77d17aaab38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113737
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2021-04-08 08:22:47 +02:00
Armin Le Grand (Allotropia)
2f665daa29 tdf#141528 ensure that reset of linked state is executed
Take m_xDocHolder->GetComponent() and xModif->setModified
inside the local try..catch expression to ensure that the
reset of the linked state below (m_bIsLink and .clear())
is executed

Change-Id: I52d49569a43fd2c23dd997c7217f7552cbdcfb82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113722
Tested-by: Armin Le Grand <Armin.Le.Grand@me.com>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2021-04-07 14:40:04 +02:00
Mike Kaganski
a0656ec6fc const OUString -> const OUStringLiteral
Mostly automated rewrite

Change-Id: Ie020a083f898bc126b8fb039d4ecb2e687172da1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112965
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-03-25 10:06:26 +01:00
Noel Grandin
3e12b2fb64 use unique_ptr in OCommonEmbeddedObject
Change-Id: I2258838cbbe242dbe31500ecd6f29c315a335b71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112743
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-20 09:30:32 +01:00
Mike Kaganski
96388e5e80 Drop 'static_cast<cppu::OWeakObject*>' syntactic noise
... where the object is created in-place, and its type is known

Change-Id: Ifabfcf2f3ad0d60152f14e8d970c1faa42115288
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112256
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-03-10 08:22:26 +01:00
homeboy445
7bd5c31472 tdf#42982 Improved UNO API error reporting
Change-Id: I450ea0b1a19381c47370633d124c2ba906415987
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108356
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
2021-01-07 16:03:34 +01:00
Noel
d6d80c4e17 OSL_FAIL.*exception -> TOOLS_WARN_EXCEPTION
Change-Id: I6800e23ead2767d245d5da71d2d40e0f8a6d7e1f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106859
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-12-01 09:28:52 +01:00
Noel
bb06f51308 loplugin:stringviewparam extend to comparison operators
which means that some call sites have to change to use
unicode string literals i.e. u"foo" instead of "foo"

Change-Id: Ie51c3adf56d343dd1d1710777f9d2a43ee66221c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106125
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-24 09:45:04 +01:00
Stephan Bergmann
a2b256df78 Use the new single-instance="true" attribute in embeddedobj
Change-Id: Icead3bb5715a08bc2a2dfbb16c074d1b19e316a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103855
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-10-02 20:43:58 +02:00
George Bateman
3d7e089a3d tdf#124176 Use #pragma once in embeddedobj
This commit was carried out by a Python script, source of which
is at https://bugs.documentfoundation.org/show_bug.cgi?id=124176#c97.

Change-Id: Ia481a860be174b817106ac13eccb5e53ee070aec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102577
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-09-13 17:52:50 +02:00
Miklos Vajna
47579fc240 Remove some unused includes
Change-Id: I90d4e3db3eefa41f8492cfe23c5088ea93134afc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101890
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-09-02 09:08:11 +02:00
Noel Grandin
00c7afecc3 embeddedobj/util: create instances with uno constructors
See tdf#74608 for motivation.

Change-Id: I52734cc1420ae7915da3191cf94ac61287a0983a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99162
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-22 08:29:47 +02:00
Noel Grandin
b33ff1a083 use for-range on Sequence in e*
Change-Id: I77dc12356ee45b1dee9acaf8a73dea81588822d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94554
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-20 21:31:13 +02:00
Noel Grandin
8544e0a20b m_aVerbTable can be a std::map
instead of using the heavyweight Sequence datastructures

Change-Id: Ica6b30490f2a1b4367acbf0341ecc86701c21926
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93641
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-07 19:28:23 +02:00
Noel Grandin
1c3929a0a1 loplugin:flatten in embeddedobj,emfio
Change-Id: Ibaf5e1a4db1088322cf8c5e127d328b140406197
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92196
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14 20:39:00 +02:00
Serge Krot
a91e19e308 tdf#131146 Linked Calc: changes are lost in last edited cell
Change-Id: I768ccc1d98a0785806986a6ffc70de057991e08a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90009
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-03-06 16:26:14 +01:00
Noel Grandin
a56955a4b3 sal_Char->char in editeng..eventattacher
Change-Id: Ia9c736042a07a17377db6d88c5bcd2b468e98777
Reviewed-on: https://gerrit.libreoffice.org/85471
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-19 08:12:46 +01:00
Gabor Kelemen
9fc8b685f9 tdf#42949 Fix IWYU warnings in embeddedobj/
Except for test/ which seems to be unused anyway

Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I9d0b75dbb260f05390b513be75a4bdd24647c91b
Reviewed-on: https://gerrit.libreoffice.org/80077
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-10-11 11:32:08 +02:00
Andrea Gelmini
17f9aa97f8 Fix typos
Change-Id: I4671d0f13e67b1272fd7c24bb6a2a7679c75f20b
Reviewed-on: https://gerrit.libreoffice.org/78797
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-09-10 11:58:13 +02:00
Muhammet Kara
9083a07e98 LOK: Proper use of isMobile() on embedded charts
We are moving the isMobile() check to a higher layer,
to avoid changing a published API method

This is the follow-up of the commit feae0c186e700f6a48c3fad124fb4795ad1a8f83

Change-Id: Ia84baa36d66d5832e00e6466f5206631df0de443
Reviewed-on: https://gerrit.libreoffice.org/78277
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-08-29 18:20:46 +02:00
Muhammet Kara
f8b2a27365 LOK: per-view support for isMobile()
embeddedobj/source/commonembedding/embedobj.cxx will have
a follow-up patch, which also removes the -1 case.

It is left out because it has many call-sites,
and inheritance/override relations.

Change-Id: Iaf00530916f3772f7aec151cbd358f255b7aab24
Reviewed-on: https://gerrit.libreoffice.org/78272
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-08-29 16:38:36 +02:00
Tamás Zolnai
e56d143c36 lok: Disable chart editing on mobile
Disabled editing of all embedded objects.

[ Miklos: motivation is that the UI is complex and the small mobile
screen is not suitable to expose this functionality as-is. Disable till
a more compact UI can be exposed. ]

Change-Id: Id1c598c84adc12b8b52d006992d85dcae5601ad9
Reviewed-on: https://gerrit.libreoffice.org/78270
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2019-08-29 15:49:19 +02:00
Julien Nabet
b1d8262dad tdf#88205 Adapt uses of css::uno::Sequence to use initializer_list ctor
in cppuhelper, desktop, drawinglayer, embeddedobj, extensions

Change-Id: I4c970f08c0723299f79c9e18bc71b7372a7092e4
Reviewed-on: https://gerrit.libreoffice.org/77636
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-08-17 17:03:04 +02:00
Julien Nabet
b4092c7383 tdf#88205 Adapt uses of css::uno::Sequence to use initializer_list ctor
in embeddedobj and filter

Change-Id: I2da3fa1df8782e449852358d1c86f5e4bc79ea1a
Reviewed-on: https://gerrit.libreoffice.org/77627
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-08-17 13:29:54 +02:00
Noel Grandin
23f60bbf28 tdf#126877 crash on inserting floating frame
regression from
    commit 5043421fdc
    Date:   Fri Jul 19 14:05:10 2019 +0200
    loplugin:referencecasting in embeddedobj

OSpecialEmbeddedObject is playing games and effectively "unimplementing"
an interface it's superclass implements by doing custom stuff in
OSpecialEmbeddedObject::queryInterface.

So lets rather implement this in a more direct and obvious way.

Change-Id: I341b8e0b6acafac80cbd55f745811b73d2593585
Reviewed-on: https://gerrit.libreoffice.org/77580
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-16 19:35:43 +02:00
Stephan Bergmann
bce25ad547 Improved loplugin:stringconstant (now that GCC 7 supports it): embeddedobj
Change-Id: Id3d255d48a8a72f760dae3c372e0e1a97d0aa508
Reviewed-on: https://gerrit.libreoffice.org/76681
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-07-31 12:59:11 +02:00
Noel Grandin
5043421fdc loplugin:referencecasting in embeddedobj
Change-Id: I11a80e540b2a7da8d8037ba45e176d5c4d85374c
Reviewed-on: https://gerrit.libreoffice.org/75951
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-19 21:49:20 +02:00
Arkadiy Illarionov
966f40eecf Use hasElements to check Sequence emptiness in [e-i]*
Similar to clang-tidy readability-container-size-empty

Change-Id: I79e31919db8f4132216f09a7868d18835eeb154b
Reviewed-on: https://gerrit.libreoffice.org/71795
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-31 16:10:17 +02:00
Andrea Gelmini
13e6b43886 Fix typo
Change-Id: Ibaafe29797523290f0fe17be7304c99a70752eda
Reviewed-on: https://gerrit.libreoffice.org/72712
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-22 07:08:53 +02:00
Andrea Gelmini
73e58a91bc Fix typo
Change-Id: I69c3a6b6ca8d5a568ec7f052c742335dd50bda5b
Reviewed-on: https://gerrit.libreoffice.org/72714
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-22 07:07:46 +02:00
Noel Grandin
da95fc2983 loplugin:sequentialassign in embeddedobj..l10ntools
Change-Id: I69377e2f96a376a7a5ccaec268c4f92c00a250f7
Reviewed-on: https://gerrit.libreoffice.org/70705
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-13 21:14:15 +02:00
Mike Kaganski
f3fc127dc0 Use osl_atomic_increment/osl_atomic_decrement to change m_refCount
Change-Id: Ia24441d3671102fdeeb797547396c25ee2a6ffd3
Reviewed-on: https://gerrit.libreoffice.org/70382
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-08 05:32:56 +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
Noel Grandin
485e238bd1 loplugin:indentation in editeng..extensions
Change-Id: If7d7c400fb5d24e48b6cd02b364a8ac7fa23505d
Reviewed-on: https://gerrit.libreoffice.org/67538
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-08 14:37:05 +01:00
Mike Kaganski
fff501a339 tdf#120703 PVS: V560 A part of conditional expression is always true/false
Change-Id: I38f3e3243f8cb891c9a0fe2f4c68bc76acd1ef44
Reviewed-on: https://gerrit.libreoffice.org/64020
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-12-01 18:20:24 +01:00
Gabor Kelemen
2a962cb122 tdf#42949 Fix IWYU warnings in include/comphelper/[m-z]*
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I04c5ba277d5b3398c07de6ae66713d977636088d
Reviewed-on: https://gerrit.libreoffice.org/61347
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-10-08 12:16:44 +02:00
Stephan Bergmann
206b5b2661 New loplugin:external
...warning about (for now only) functions and variables with external linkage
that likely don't need it.

The problems with moving entities into unnamed namespacs and breaking ADL
(as alluded to in comments in compilerplugins/clang/external.cxx) are
illustrated by the fact that while

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    struct S2: S1 { int f() { return 1; } };
    int f(S2 s) { return s.f(); }
  }
  int main() { return f(N::S2()); }

returns 1, both moving just the struct S2 into an nunnamed namespace,

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    namespace { struct S2: S1 { int f() { return 1; } }; }
    int f(S2 s) { return s.f(); }
  }
  int main() { return f(N::S2()); }

as well as moving just the function f overload into an unnamed namespace,

  struct S1 { int f() { return 0; } };
  int f(S1 s) { return s.f(); }
  namespace N {
    struct S2: S1 { int f() { return 1; } };
    namespace { int f(S2 s) { return s.f(); } }
  }
  int main() { return f(N::S2()); }

would each change the program to return 0 instead.

Change-Id: I4d09f7ac5e8f9bcd6e6bde4712608444b642265c
Reviewed-on: https://gerrit.libreoffice.org/60539
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-17 09:05:38 +02:00
Gabor Kelemen
cc7280efdb tdf#42949 Fix IWYU warnings in include/cppuhelper/*
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: Ib420e9216b8313f5ed7634ec375e39ceb741fd45
Reviewed-on: https://gerrit.libreoffice.org/59297
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-09-10 09:58:12 +02:00
Gabor Kelemen
3fb5f7181d Add missing sal/log.hxx headers
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it.
This is a continuation of commit 6ff2d84ade to be able to remove those unneeded includes.

This commit adds missing headers to every file found by:
grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG')
to directories from dbaccess to extensions

Change-Id: I4d15aa35e11664ef78c836ffc2937c7e0bb6ea59
Reviewed-on: https://gerrit.libreoffice.org/58165
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-08-01 09:49:07 +02:00
Andrea Gelmini
c44668a6c1 Fix typos
Change-Id: I1b966b636f67a549718ca19c00c2820e8d168c7a
Reviewed-on: https://gerrit.libreoffice.org/56589
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2018-06-28 14:37:39 +02:00
Jochen Nitschke
8ddca0648a tdf#42949 remove unused compheler includes ..
and fix the fallout

Change-Id: I15bc5d626f4d157cbc69a87392078b41e621d14e
Reviewed-on: https://gerrit.libreoffice.org/54882
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-06-05 10:56:36 +02:00
Noel Grandin
3a51daeace Improve re-throwing of UNO exceptions
(*) if we are already throwing a Wrapped*Exception, get the
exception using cppu::getCaughtexception.

(*) when catching and then immediately throwing UNO exceptions,
use cppu::getCaughtException to prevent exception slicing

(*) if we are going to catch an exception and then
immediately throw a RuntimeException, rather throw a
WrappedTargetRuntimeException and preserve the original exception information.

Change-Id: Ia7a501a50ae0e6f4d05186333c8517fdcb17d558
Reviewed-on: https://gerrit.libreoffice.org/54692
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-25 21:46:49 +02:00
Noel Grandin
4450b2a166 pass area param to DBG_UNHANDLED_EXCEPTION
and update sallogareas plugin to enforce this

Change-Id: Id0782c8a1f619372e10d931aec3c6a4743a4c86a
Reviewed-on: https://gerrit.libreoffice.org/52249
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-03 08:38:50 +02:00
Jochen Nitschke
9401c7c28a remove unused processfactory.hxx includes
and fix fallout

Change-Id: Id06bf31f2075111e426ba40c84c885ae70697bee
Reviewed-on: https://gerrit.libreoffice.org/52206
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2018-04-01 12:11:26 +02:00
Marco Cecchetti
a3646b25ac lok - chart - state switch issue triggers an OLE general error msg box
Change-Id: I6addd95d1ad3461b6e21328512cbd1301a36cd19
Reviewed-on: https://gerrit.libreoffice.org/50368
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/50482
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Marco Cecchetti <mrcekets@gmail.com>
2018-03-02 11:56:40 +01:00