Age | Commit message (Collapse) | Author |
|
...in include files. This is a mix of automatic rewriting in include files and
manual fixups (mostly addressing loplugin:redundantfcast) in source files that
include those.
Change-Id: I1f3cc1e67b9cabd2e9d61a4d9e9a01e587ea35cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158337
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I8c08bf41b96d4a6085e7d72cb39e629efa556d09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158300
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...now that warning about O[U]String vars that could be O[U]StringLiteral is no
longer useful
Change-Id: I389e72038171f28482049b41f6224257dd11f452
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157992
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: If69768ffac37aa7b39a806b3c67ad8cbdafc5d2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157981
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: I27782fb4b912d8b0d5f19cbe296c2a3b98b2bfd7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157818
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...after 1eef07805021b7ca26a1a8894809b6d995747ba1 "Bump baseline to C++20"
Change-Id: I75509f3731357e0e3ae73c3774abd6e4070f605b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157806
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...that have been made unused by 7ef3d937415185ef66e32dd3043783eddcd03db5
"loplugin:ostr: Rewrite some uses of O[U]String to use ""_ostr/u""_ustr
literals". (And which means we can remove the relevant code from that plugin
again.)
(This also found a handful of remaining uses that had been hard for the plugin
to discover, along the lines of
> std::map<OUString, int> m = {{u"foo", 0}};
being represented by a
> DeclStmt 0xdaca578 <line:103:5, col:50>
> `-VarDecl 0xdac9150 <col:5, col:49> col:29 s11 'std::map<OUString, int>':'std::map<rtl::OUString, int>' cinit destroyed
> `-ExprWithCleanups 0xdaca548 <col:35, col:49> 'std::map<OUString, int>':'std::map<rtl::OUString, int>'
> `-CXXConstructExpr 0xdaca508 <col:35, col:49> 'std::map<OUString, int>':'std::map<rtl::OUString, int>' 'void (initializer_list<value_type>, const std::less<rtl::OUString> &, const allocator_type &)' list std::initializer_list
> |-CXXStdInitializerListExpr 0xdaca480 <col:35, col:49> 'initializer_list<value_type>':'std::initializer_list<std::pair<const rtl::OUString, int>>'
> | `-MaterializeTemporaryExpr 0xdaca468 <col:35, col:49> 'const std::pair<const rtl::OUString, int>[1]' xvalue
> | `-CXXBindTemporaryExpr 0xdaca448 <col:35, col:49> 'const std::pair<const rtl::OUString, int>[1]' (CXXTemporary 0xdaca448)
> | `-InitListExpr 0xdac9df0 <col:35, col:49> 'const std::pair<const rtl::OUString, int>[1]'
> | `-CXXConstructExpr 0xdaca408 <col:36, col:48> 'const std::pair<const rtl::OUString, int>' 'void (const char16_t (&)[4], int &&) noexcept(_S_nothrow_constructible<const char16_t (&)[4], int>())' list
> | |-StringLiteral 0xdac91b8 <col:38> 'const char16_t[4]' lvalue u"foo"
> | `-MaterializeTemporaryExpr 0xdaca3f0 <col:46> 'int' xvalue
> | `-IntegerLiteral 0xdac91d8 <col:46> 'int' 0
> |-CXXDefaultArgExpr 0xdaca498 <<invalid sloc>> 'const std::less<rtl::OUString>':'const std::less<rtl::OUString>' lvalue
> `-CXXDefaultArgExpr 0xdaca4b8 <<invalid sloc>> 'const allocator_type':'const std::allocator<std::pair<const rtl::OUString, int>>' lvalue
Clang AST.)
Change-Id: I496fe9d4d5e1a033cb7b27b4e04b303f8ddbed4a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157756
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...as at least with LLVM 18 trunk, the generated executable references
@rpath/libclang-cpp.dylib but didn't actually contain an LC_RPATH
Change-Id: Ida643903aa4566853ea9541553f0dfc9c3243d4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157706
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...involving conditional preprocessed code at
> vcl/skia/SkiaHelper.cxx:265:13: error: unnecessary cast to void [loplugin:casttovoid]
> 265 | (void)blockDisable;
> | ^~~~~~~~~~~~~~~~~~
> vcl/skia/SkiaHelper.cxx:286:22: note: first consumption is here [loplugin:casttovoid]
> 286 | if (!blockDisable && !DefaultMTLDeviceIsSupported())
> | ^~~~~~~~~~~~
Change-Id: I222d72d240852be2d64fe08d345f00d137cd5a63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157707
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
This is a first cut at rewriting uses of OUString constructed from u"..." as
u"..."_ustr. It covers the same changes as
<https://gerrit.libreoffice.org/c/core/+/155412/6/> "WIP: Delete OUString UTF-16
string literal ctor/assignment op", but does so with automatic rewriting (see
e0c33ec15f53a01fa3ee07489871bbe09bb5c9c3 "loplugin:ostr: automatic rewrite",
plus a handful of 002b0a9d5793e07609f953b9961b04bcab7a7e3f "loplugin:ostr:
manual modifications" where automatic rewriting wasn't set up to handle macro
bodies).
The compilation-time impact of all those changes appears to be negligible: For
some Windows build of mine, just touching the files that would be affected by
002b0a9d5793e07609f953b9961b04bcab7a7e3f and
e0c33ec15f53a01fa3ee07489871bbe09bb5c9c3 (but without actually applying those
changes yet) and doing `time /opt/lo/bin/make -O check screenshot PKGFORMAT=
gb_SUPPRESS_TESTS=x`, three times in a row reported sample real times of
21m15.438s 23m17.840s 23m41.529s
and repeating all that with the two changes actually applied reported sample
real times of
22m43.547s 21m42.687s 23m1.813s
The plugin itself is already prepared to do further rewrites (see the TODOs),
which will be done in follow-up commits.
Change-Id: I408ecf056dce1b9da683d7c377b8d9058df1558d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157676
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I231b80cb0779d92bba32da67f6878c07d757c967
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157198
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Done during the conference hackfest
Change-Id: I765e6dc839a98038c4071c8444ce3db9293c8a6c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157173
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Change-Id: Ic102ae992fc2fbfd187149b9d20bf1d2202ba5c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157042
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Unusually, we cannot use rtl::Reference to hold SwXText,
because rtl::Reference assumes that its pointee is a subclass
of OWeakObject, which SwXText is not (and we cannot make
it so because the UNO bridge does not support virtual base
classes).
So we have to use css::uno::Reference<SwXText> and carve
out an exception in loplugin:refcounting.
Change-Id: If3a1307e30fdcd3b47aa665252be081fb5063400
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156982
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and make them support virtual bases, even though the bridge code does
not support that (yet)
Change-Id: I247e795391fa452dea2922869b15ab043eb2bdd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156941
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...to avoid
> In file included from /home/sbergman/lo/core/cui/source/factory/cuiexp.cxx:20:
> /home/sbergman/lo/core/cui/source/factory/dlgfact.hxx:524:116: fatal error: TODO: Unexpected 'IdenticalDefaultArgumentsResult::Maybe' [loplugin:overrideparam]
> 524 | const OUString& rName, const OUString& rDesc, const OUString& rTitle = "") override;
> | ^~
> /home/sbergman/lo/core/include/svx/svxdlg.hxx:380:116: note: TODO: second argument is here [loplugin:overrideparam]
> 380 | const OUString& rName, const OUString& rDesc, const OUString& rTitle = "" ) = 0;
> | ^~
> MaterializeTemporaryExpr 0x7f6fd76d4218 'const OUString':'const class rtl::OUString' lvalue
> `-CXXBindTemporaryExpr 0x7f6fd76d41f8 'const OUString':'const class rtl::OUString' (CXXTemporary 0x7f6fd76d41f8)
> `-CXXConstructExpr 0x7f6fd76d41b8 'const OUString':'const class rtl::OUString' 'void (const char &[1], typename libreoffice_internal::ConstCharArrayDetector<const char[1], libreoffice_internal::Dummy>::Type)'
> |-StringLiteral 0x7f6fd76d3e48 'const char[1]' lvalue ""
> `-CXXDefaultArgExpr 0x7f6fd76d4170 'libreoffice_internal::Dummy':'struct rtl::libreoffice_internal::Dummy'
> MaterializeTemporaryExpr 0x7f6fe30b5f58 'const OUString':'const class rtl::OUString' lvalue
> `-CXXBindTemporaryExpr 0x7f6fe30b5f38 'const OUString':'const class rtl::OUString' (CXXTemporary 0x7f6fe30b5f38)
> `-CXXConstructExpr 0x7f6fe30b5ef8 'const OUString':'const class rtl::OUString' 'void (const char &[1], typename libreoffice_internal::ConstCharArrayDetector<const char[1], libreoffice_internal::Dummy>::Type)'
> |-StringLiteral 0x7f6fe30b48f8 'const char[1]' lvalue ""
> `-CXXDefaultArgExpr 0x7f6fe30b5ea8 'libreoffice_internal::Dummy':'struct rtl::libreoffice_internal::Dummy'
after c7a608a6691c790783c63f504010bc796c36af25 "tdf#155503 Add title to document
title dialog" in an --enable-compiler-plugins=debug build.
(Instead of trying to inspect deeper into the code that compares two
StringLiteral directly in Plugin::checkIdenticalDefaultArguments, it looked
simpler to just extend structurallyIdentical.)
Change-Id: Ie1eecff210413f0a29213d867aad249420c1c278
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156916
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
we use custom subclasses when we want to modify behaviour
Change-Id: I1aef9e87c76ea97f1868134f5e1ac0e317b5c698
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156559
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I76773e5273579536aef330d5eb83887bba7e7be8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156247
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: Ieab59fa456bce13145b61cb5e8b2fb9ff9b4c573
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156193
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
which warns against using the 'operator bool' conversion of
std::optional<bool> which can lead to interesting bugs
The bugs that this plugin have been submitted independantly,
so this change is just using has_value() in relevant places.
Change-Id: I259b837feeecddcb8cd1d7e5db1e85bf505907cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155978
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Serious use of glm was removed from vcl in
commit db89f53c31af997b9bf422b0e784afba8d62a42e
remove OpenGL VCL backend code
This is a bit of leftover from that
Change-Id: I019279cd0cc804d3fa4535a651704bccca38b9db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155909
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
also drop now-unused osl_Condition_Const.h
Change-Id: I40beb5b1ad49c126a126bb444d5f66703664d56d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155820
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
look for methods where we don't need to guard access
to the field, because the field is never modified
Change-Id: I62c33cc3f52881557515765d3733c4afc78547aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155836
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
encountering when we need to pass a std::string to an OString
Change-Id: I91d2aa1f20e7c2407c708c9ce4ae82fb52934c85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152526
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...but is not defined"
Change-Id: Ib1350d5d34eef0d544ca8f436ae63c693b7d2f5d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155354
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
- also remove now obsolete GetInfo overrides
Change-Id: Iaac75ed2e53daead06242ce4620fd2b879909e02
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155061
Tested-by: Jenkins
Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
|
|
Change-Id: I36bc86fcffc3c10fe44e60d779c9aa48eeed00f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154749
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Add tests for the GTK3 accessibility platform layer. These tests
compare the internal LO representation with what is visible to the
platform, and thus the user's accessibility tools.
In most cases the tests are fairly trivial as LO's internals are not
far off AT-SPI2's expectations. There are however notable exceptions
like for example the text attributes, that have a wildly different
representation and require more complex checks matching what LO's
platform layer does, the other way around.
These tests use libatspi2 directly, but as the C API is awful to work
with regarding resource management, there are wrappers to handle the
complexity using RAII. The resulting API is fairly trivial to use.
As these tests require using the GTK3 VCL plugin and for the a11y tree
to be visible to AT-SPI2, they are run under XVFB using a separate dbus
session through dbus-launch.
Working on this has already lead to reporting and/or solving some
issues:
* https://gerrit.libreoffice.org/c/core/+/151303
* https://gerrit.libreoffice.org/c/core/+/151650
* https://gerrit.libreoffice.org/c/core/+/152456
* https://gerrit.libreoffice.org/c/core/+/152457
* https://bugs.documentfoundation.org/show_bug.cgi?id=155625
* https://bugs.documentfoundation.org/show_bug.cgi?id=155705
* https://gerrit.libreoffice.org/c/core/+/152748
Only a subset of the a11y APIs are covered for the moment, but the
current state should make it easy to extend upon.
Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
|
|
Change-Id: If9c76b9c500a5bee0fbf20a44597a250b7fa2af0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154808
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This does nothing now, as we are now always using doubles for VCL glyph
coordinates.
Change-Id: I87e4e3057dbc54a2ecf0924d3d6a408cf519f842
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154631
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
|
|
Change-Id: Id2bbe63ca8d4255fd883798581ac7fa1fda7dba9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154723
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic2e9de67a00bb9ca8ab4d0f7528b22c58d0cc360
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154721
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I2c96b367138b94d6178a3c4a0f83049f13a04f82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154679
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I53817a6b017203d8694032320869d11412c57ee9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154027
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia86c8bd0bdc85c375eb3837ba97f9e171d9dac6e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153974
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I8d3402a69237b665462e04440ad73fe29e2133db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153807
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I95ab7581dec35b113cb657ce8e5ee27c89c73593
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153746
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
around dealing with operator[] on map data-types
Change-Id: Idd6654948ae2d03d634fcf30a8d98530a78ab4ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153740
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
that can be initialised at compile-time instead of runtime
Change-Id: I08d516fdc13a3a79f93c079f89ac44cbc7a1ed71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153620
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
OUStringLiteral should be declared constexpr, to enforce
that it is initialised at compile-time and not runtime.
This seems to make a different at least on Visual Studio
Change-Id: I1698f5fa22ddb480347c2f4d444530c2e0e88d92
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153499
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ied72c83dbc364f96e5b78a3cb915b23a1751ac0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152646
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
(<https://github.com/llvm/llvm-project/commit/397f2e9ebee8d8e45547e90dd05228d7f965df67>)
Change-Id: I51acda5951f8250d1a1b47e1c2612199ae7338a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152618
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Seems to be unused since 88c343b50a1de197394e3e22bf82ff455386a80b
"Corrected my previous mess on mathml export with color export 2.
Now only exports HTML4 colors and others are treated as #RRGGBB.
Now mathml can import #RGB colors.
"
in 2020
Change-Id: Iac006383146afaa62775e6e76fa203925dce51d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152585
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
|
|
and keep the remaining one which uses unique_ptr
Change-Id: I0e4e4aff5c202897a27dfef97750c14c3c5736bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152581
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: I28929d4137008ebcca1733837d0b2112b6859a89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152563
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152576
Tested-by: Jenkins
|
|
Change-Id: I3ee370e5d3ef4227681c4a973ac6f24f9aa241e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152556
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152575
|
|
Change-Id: Ief95f111350808f010539bb733a553007d30a9df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152006
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3a3d4debd83f1a6452721ce704b6b88622b38109
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152004
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I089fd6b9281cc35768462e83a7e18588f357df4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152003
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id948627873db9c646d1a81784dd16f6aa1c2063b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151553
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|