262 Commits
Author SHA1 Message Date
Devansh Varshney b336f57daf fix: Tiny typo in unoidl README.md
removed the extra a in 'from' and added backticks
to `N8 * Idx-String`

Change-Id: Id257c9a577421ff11224a7a0efb1f3f2973c767b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208255
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-07-20 07:47:51 +02:00
Tor Lillqvist fa8e80f065 Be prepared for a case-insensitive file system on Linux, too, not just macOS
Can easily happen at least on WSL.

Also avoid warnings about the deprecated readdir_r(). In current
POSIX, readdir() is required to be thread-safe. (It might well have
been for a long time in those POSIXish platforms we care for, I don't
know.)

Change-Id: I2b89b7aa170f661365580979d151c1b0557955fd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197053
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@iki.fi>
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2026-01-12 13:16:15 +01:00
Mike Kaganski b6feccc9a2 Replace dtoa with fast_float for faster string-to-float parsing
fast_float implements C++17 from_chars for floating-point types, which
is still unavailable even in the latest versions of compilers e.g. for
macOS. It is maintained, unlike dtoa; it is said to be adopted as the
from_chars implementation for gcc. It is header-only, which simplifies
many things.

Change-Id: I6b597d4d35a076930e6e35f4f8cff3ca84f48ba1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191248
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-09-21 08:17:39 +02:00
Caolán McNamara c2e99a2502 cid#1555615 Variable copied when it could be moved
and

cid#1555637 Variable copied when it could be moved
cid#1555640 Variable copied when it could be moved
cid#1555863 Variable copied when it could be moved
cid#1556471 Variable copied when it could be moved
cid#1556634 Variable copied when it could be moved
cid#1556731 Variable copied when it could be moved
cid#1556751 Variable copied when it could be moved
cid#1556807 Variable copied when it could be moved
cid#1557366 Variable copied when it could be moved
cid#1558026 Variable copied when it could be moved

Change-Id: I187cb364877d35acd843d8391e5b376437ec96f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188935
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-05 12:05:04 +02:00
Caolán McNamara 1dcdc80798 cid#1660247 Variable copied when it could be moved
and

cid#1660246 Variable copied when it could be moved
cid#1660243 Variable copied when it could be moved
cid#1660240 Variable copied when it could be moved
cid#1660237 Variable copied when it could be moved
cid#1660235 Variable copied when it could be moved
cid#1660234 Variable copied when it could be moved
cid#1660230 Variable copied when it could be moved
cid#1660228 Variable copied when it could be moved
cid#1660225 Variable copied when it could be moved
cid#1660223 Variable copied when it could be moved

Change-Id: I3cd87174e8e88a9c55101a73399117c3f2b80644
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188926
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-05 09:42:05 +02:00
Gabor Kelemen e90c95e70e Drop exceptions for osl/endian.h from yaml files
This is handled by bin/find-unneeded-includes
since commit 53d4346968

Change-Id: I3f289180270acd6c44b52466d2afa77d71c21450
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187144
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-07-02 09:04:01 +02:00
Caolán McNamara 277cd55361 __coverity_tainted_data_sanitize__ is deprecated
Change-Id: I333fa67d7f9a8369405c39873760bba1ae2a2c7c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180491
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-01-20 09:29:17 +01:00
Caolán McNamara 23d7910c1e cid#1554844 COPY_INSTEAD_OF_MOVE
and

cid#1554878 COPY_INSTEAD_OF_MOVE
cid#1554907 COPY_INSTEAD_OF_MOVE
cid#1555082 COPY_INSTEAD_OF_MOVE
cid#1555224 COPY_INSTEAD_OF_MOVE
cid#1555301 COPY_INSTEAD_OF_MOVE
cid#1555378 COPY_INSTEAD_OF_MOVE
cid#1555395 COPY_INSTEAD_OF_MOVE
cid#1555452 COPY_INSTEAD_OF_MOVE
cid#1555466 COPY_INSTEAD_OF_MOVE
cid#1555514 COPY_INSTEAD_OF_MOVE
cid#1555566 COPY_INSTEAD_OF_MOVE
cid#1555753 COPY_INSTEAD_OF_MOVE
cid#1555782 COPY_INSTEAD_OF_MOVE
cid#1555825 COPY_INSTEAD_OF_MOVE
cid#1555842 COPY_INSTEAD_OF_MOVE
cid#1555891 COPY_INSTEAD_OF_MOVE
cid#1555917 COPY_INSTEAD_OF_MOVE
cid#1555961 COPY_INSTEAD_OF_MOVE
cid#1556021 COPY_INSTEAD_OF_MOVE
cid#1556055 COPY_INSTEAD_OF_MOVE
cid#1556307 COPY_INSTEAD_OF_MOVE
cid#1556349 COPY_INSTEAD_OF_MOVE
cid#1556436 COPY_INSTEAD_OF_MOVE
cid#1556665 COPY_INSTEAD_OF_MOVE
cid#1556696 COPY_INSTEAD_OF_MOVE
cid#1556718 COPY_INSTEAD_OF_MOVE
cid#1556775 COPY_INSTEAD_OF_MOVE
cid#1556835 COPY_INSTEAD_OF_MOVE
cid#1556877 COPY_INSTEAD_OF_MOVE
cid#1556994 COPY_INSTEAD_OF_MOVE
cid#1557010 COPY_INSTEAD_OF_MOVE
cid#1557074 COPY_INSTEAD_OF_MOVE
cid#1557111 COPY_INSTEAD_OF_MOVE
cid#1557142 COPY_INSTEAD_OF_MOVE
cid#1557163 COPY_INSTEAD_OF_MOVE
cid#1557164 COPY_INSTEAD_OF_MOVE
cid#1557214 COPY_INSTEAD_OF_MOVE
cid#1557254 COPY_INSTEAD_OF_MOVE
cid#1557322 COPY_INSTEAD_OF_MOVE
cid#1557327 COPY_INSTEAD_OF_MOVE
cid#1557492 COPY_INSTEAD_OF_MOVE
cid#1557565 COPY_INSTEAD_OF_MOVE
cid#1557663 COPY_INSTEAD_OF_MOVE
cid#1557798 COPY_INSTEAD_OF_MOVE

Change-Id: I2ae9c184dcc18d44a65437e18c49e16b27f4d81d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174893
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-14 15:28:24 +02:00
Caolán McNamara 3ef8075040 version COVERITY conditionals
so there's a recheck on each major if they are still needed

Change-Id: I351f731fe4eaec0ebf735147a9a168cccba3bca5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174883
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-10-14 13:07:37 +02:00
Caolán McNamara b35a1ee2aa cid#1607362 Overflowed constant
and

cid#1607419 Overflowed constant
cid#1608605 Overflowed constant

Change-Id: Ia63cc771021d8a8031c62582a2fa6a68dc214f08
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173614
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-09-18 18:03:24 +02:00
Caolán McNamara 0ba4558949 cid#1555812 COPY_INSTEAD_OF_MOVE
and

cid#1556056 COPY_INSTEAD_OF_MOVE
cid#1556907 COPY_INSTEAD_OF_MOVE
cid#1556957 COPY_INSTEAD_OF_MOVE
cid#1556970 COPY_INSTEAD_OF_MOVE
cid#1607095 COPY_INSTEAD_OF_MOVE

Change-Id: I51112b3a63b8e9333e3eaaeb55b764e6c449a5ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172117
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-21 09:31:36 +02:00
Stephan Bergmann 399ed986e5 Clean up conditions in Module_unoidl
unoidl-check and unoidl-write are needed during the build.
unoidl-read and unoidl-write are part of the SDK.

Change-Id: I82fc79a09524fa14638b4d2daeafeeb024f1fd66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172159
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
Tested-by: Jenkins
2024-08-21 07:25:40 +02:00
Caolán McNamara 4504d921a6 cid#1555694 COPY_INSTEAD_OF_MOVE
and

cid#1555695 COPY_INSTEAD_OF_MOVE
cid#1555696 COPY_INSTEAD_OF_MOVE
cid#1555705 COPY_INSTEAD_OF_MOVE
cid#1555711 COPY_INSTEAD_OF_MOVE
cid#1555713 COPY_INSTEAD_OF_MOVE
cid#1555727 COPY_INSTEAD_OF_MOVE
cid#1555742 COPY_INSTEAD_OF_MOVE
cid#1555745 COPY_INSTEAD_OF_MOVE
cid#1555749 COPY_INSTEAD_OF_MOVE
cid#1555760 COPY_INSTEAD_OF_MOVE
cid#1555773 COPY_INSTEAD_OF_MOVE
cid#1555774 COPY_INSTEAD_OF_MOVE
cid#1555778 COPY_INSTEAD_OF_MOVE
cid#1555790 COPY_INSTEAD_OF_MOVE
cid#1555831 COPY_INSTEAD_OF_MOVE
cid#1555847 COPY_INSTEAD_OF_MOVE
cid#1555851 COPY_INSTEAD_OF_MOVE
cid#1555853 COPY_INSTEAD_OF_MOVE
cid#1607763 COPY_INSTEAD_OF_MOVE
cid#1607504 COPY_INSTEAD_OF_MOVE

Change-Id: I991f15f12e773d325ed9725498df5725b049a858
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170625
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-17 21:49:14 +02:00
Andrea Gelmini 62f74053ea Fix typo
Change-Id: If0583a49b417b7bb913201a1ccb4ab539856e389
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169220
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2024-06-19 22:59:24 +02:00
Andrea Gelmini cd8cab9c76 Fix typo
Change-Id: I80dd506275bf8032316bba5eff152635e62268d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169150
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2024-06-19 08:47:46 +02:00
Andrea Gelmini ee4cdfb6fa Fix typo
Change-Id: I2044da5e2b973f410531fee8d2b24a59c6279fc6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169128
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-06-19 08:47:25 +02:00
Andrea Gelmini e34d63230c Fix typo
Change-Id: I8613fc1be864f79af407f66b486f0e9cab9862db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169129
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2024-06-19 08:46:41 +02:00
Andrea Gelmini 58ef023d63 Fix typo
Change-Id: I30f0d9517bd244606ce596fbb88da1cc6ed54cd7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169162
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-06-19 08:43:41 +02:00
Christian Lohmaier 0c4c84a14b makefile simplification: replace $(call gb_CustomTarget_get_workdir,foo)
…by a simple/static $(gb_CustomTarget_workdir)/foo

The build system has a lot of overly complicated leftovers from when it
was introduced and had not only deal with split repositories but also
had to coexist with another buildsystem. Along with lots of copy'n'paste
along the years the makefiles became hard to grasp for newcomers with
all our calls and evals.
As a first step to streamline that, the macros from TargetLocations that
simply prefix a static path to the argument (and similar of the same
kind) are a natural pick before simplifying the rules themselves/getting
rid of a bunch of eval statements.

Change-Id: Ia06dbbcd5d1994755a2ff05b84f72ccbc4e3cab5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167005
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2024-05-03 16:06:14 +02:00
Caolán McNamara b26ff81a6f use [[noreturn]] instead of asserts that badUsage exits
Change-Id: I927434290b02b6cc0386b1e0038cd8385a762249
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166996
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2024-05-02 13:21:40 +02:00
Caolán McNamara 51407b6f8d WaE: C6011 Dereferencing NULL pointer warnings
add some asserts for msvc

Change-Id: I3b024b9c1a3160a963ba77ad7313767f2c0a29ce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166920
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-30 13:39:50 +02:00
Noel Grandin 59ad8d6d15 loplugin:ostr in codemaker,unoidl
Change-Id: I75f5531023f31da029491ce4a078005eebbfe59e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166738
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2024-04-26 19:44:07 +02:00
Stephan Bergmann 741f88c9ec Some improvements to the UNOIDL SourceTreeProvider
Trying to do

$ instdir/sdk/bin/unoidl-read udkapi

(i.e., parsing the udkapi/com/sun/star/**.idl tree and printing it out): first
failed with

> Bad input <file:///.../udkapi/com/sun/star/beans/theIntrospection.idl>: source file defines more than one entity

because of its

> published interface XIntrospection;

forward declaration, so ignore such interface forward declarations; then failed
with

> Bad input <file:///.../udkapi/com/sun/star/modules.idl>: source file defines no entity

because "this file contains documentation of the modules", so ignore such
effectively empty files; then failed with

> Bad input <file:///.../udkapi/type_reference/udkapi.idl>: source file defines more than one entity

so instead do

$ mkdir TMP
$ cp -r udkapi/com TMP/
$ instdir/sdk/bin/unoidl-read TMP
$ rm -r TMP

which succeeded.

Change-Id: I465052539b474733e7945b312c996af27a034335
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164094
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-28 16:01:38 +01:00
Stephan Bergmann 1037edf4ec Fix copy/paste error
...that had caused unoidl-write to generate garbage values when writing
constants of type double to binary type libraries.  (But which had apparently
gone largely unnoticed until now, as the only actual use so far of such a
constant of type double that I could find is

>     const double            aConstDouble    = 3.14e-10;

in the unused stoc/test/testcorefl.idl test file.)

Change-Id: I9a6fdb7a4aaff1008b8264cbbc64a84e60bd3813
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164096
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-02-28 15:47:03 +01:00
Caolán McNamara ca1c8b4471 we don't need the reg or store libraries for fuzzing
possibly other configations too, but just for fuzzing for the moment

from looking at:
https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_libreoffice/latest
and see what is built but is 0% coverage and uninteresting to be non-0

Change-Id: Ia7afdfc033dd8a705d85c76b246dc5dfb259b063
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163311
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-02-13 17:27:34 +01:00
Stephan Bergmann 363b4078be Manual extended loplugin:ostr change
Change-Id: I003851390566dfe2b98cecc88afc8153f061ad68
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159522
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2023-11-17 08:12:20 +01:00
Gabor Kelemen 6f60670877 Use less zlib external headers dependency
Change-Id: Ibcc7f37e464cde44cfbb6fbd70c3dc66667102bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156553
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <kelemeng@ubuntu.com>
2023-09-18 08:34:34 +02:00
jsala 04a58d7eae tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro
Also change some range based for.

Change-Id: I32c5cbe0033c40cde3f1fc86ec8af90e558f2652
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141666
Tested-by: Jenkins
Reviewed-by: Hossein <hossein@libreoffice.org>
2022-11-06 01:22:27 +01:00
Mike Kaganski 3d236177be Deduplicate O(U)StringConcatenation
And use an overloaded helper function with a better (?) unified name
to show that the result is not an O(U)String.

Change-Id: I8956338b05d02bf46a6185828130ea8ef145d46b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141203
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-11 12:46:01 +02:00
Noel Grandin 42572c6d0d elide some makeStringAndClear() calls
Change-Id: I3b7ae370b41638c0a67374d5132b7bdf56e7c672
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137311
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-22 11:13:45 +02:00
Stephan Bergmann 3ae546f97b Use idlc/test/parser/conversion.tests in CustomTarget_unoidl/unoidl-write_test
...now that idlc is gone since "[API CHANGE] Remove deprecated idlc and regmerge
from the SDK".  (idlc implemented some dubious conversions from floating-point
to integer types, which unoidl-write does not implement, so the original version
of idlc/test/parser/conversion.tests was not usable in
CustomTarget_unoidl/unoidl-write_test.)

Change-Id: I3b69920dda24c54c9313cd5c2cd0c0fdd9951ca7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123614
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-11 09:58:17 +02:00
Stephan Bergmann a8485d558f [API CHANGE] Remove deprecated idlc and regmerge from the SDK
* Client code must replace uses of idlc and regmerge with uses of unoidl-write,
  see the changes to odk/examples/ and ure/source/uretext/ in
  40f2aee658 "Provide unoidl-write also for the
  SDK" for examples.

* The new types.rdb format is not compatible with LibreOffice < 4.1.  Clients
  generating extensions containing such files are advised to use appropriate
  LibreOffice-minimal-version elements.

* For compatibility with old extensions, reading the legacy types.rdb format is
  still supported.

* The SDK no longer ships an idl/ sub-directory containing the udkap and offapi
  .idl files (as, unlike idlc, unoidl-write does not need them).
  odk/config/cfgWin.js had to be adapted to look (somewhat arbitrarily) for an
  examples/ sub-directory instead of idl/ when checking for "an sdk folder".
  gb_UnoApi_package_idlfiles became unused and has been removed.

* The idlc and regmerge executables have been removed.  Module idlc has been
  removed except for idlc/test/parser/, which is also used by
  CustomTarget_unoidl/unoidl-write_test, and which may eventually be moved into
  module unoidl.  Module external/ucpp and the corresponding configure options
  have also been removed.

Change-Id: I42a0231699b863b5ebe2bee63bc32c8f79278cc1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122363
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-10 17:15:49 +02:00
Noel Grandin f71606c920 new loplugin:moveit
look for local variables that can be std::move'd to parameters

off by default, since it doesn't do proper data flow analysis

Change-Id: I3403a0fcffd165bdea6a772528bc53995c5fdb40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135527
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-10 13:13:15 +02:00
Noel Grandin 75918e709a clang-tidy modernize-pass-by-value in unoidl
Change-Id: Ibeb6aa656d6ed8b8ba78e800c9e28ba63ec0ec40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134521
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-18 14:45:27 +02:00
Noel Grandin 4dc1a911a5 use reserve before filling some vectors
Change-Id: Ib2ae513de46b2a0c16101747540ba09a7cdfb018
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134481
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-17 17:37:20 +02:00
Noel Grandin 9820f11ad2 address review comments on "use more string in unoidl.."
on
    commit 2d9291b943
    Author: Noel Grandin <noel.grandin@collabora.co.uk>
    Date:   Thu Apr 21 12:53:15 2022 +0200
    use more string_view in unoidl,codemaker

Primarily reverting the findEntity call-chain to use OUString
instead of std::u16string_view.

Change-Id: Ib01b9473c859bba3791563df753823bbf0a87ce0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133302
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-22 13:27:56 +02:00
Noel Grandin 2d9291b943 use more string_view in unoidl,codemaker
Change-Id: Ibc0624a662c98ef1308a3bb0c7c082935a89a25c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133252
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-21 13:53:26 +02:00
Noel Grandin fdfd517a6f loplugin:stringviewparam whitelist some more functions
for which we have o3tl:: equivalents

Change-Id: I4670fd8b703ac47214be213f41e88d1c6ede7032
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132913
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-13 08:38:53 +02:00
Jan-Marek Glogowski 6f39602ecb Move unoidl-write from cross-tooling to default
Fixes the ODK cross-build used for Windows Arm64.

Regression from commit 40f2aee658
("Provide unoidl-write also for the SDK").

Change-Id: I54d2732358ed1d48911e206ed02bfca2d3a78782
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132718
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-04-10 23:34:57 +02:00
Noel Grandin b24a4d255d use more string_view
found by tweaking the loplugin:stringview and making it whitelist
getLength

Change-Id: Ic15d3703d1fb07658e99e1db1c89e2fa5bc70c19
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132771
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-10 20:15:16 +02:00
Stephan Bergmann 29578ae139 Introduce unoidl-read --summary mode
...as needed by odk/docs/idl/wikilinks.py

Change-Id: I6dd096338e9f200679810d33e89c8b9ce18f69f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132752
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-04-09 13:15:01 +02:00
Noel Grandin 1927b51993 loplugin:stringviewparam convert methods using indexOf
.. and lastIndexOf, which convert to find and rfind

Change-Id: I6c4156cf904774c0d867f85a4c2785dba7593f62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132445
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-02 13:31:19 +02:00
Stephan Bergmann 40f2aee658 Provide unoidl-write also for the SDK
...after the new types.rdb format that unoidl-write generates has been used
internally since LibreOffice 4.1 in 2013; following up on
6db34b6b33 "Directly build UNOIDL .rdb files from
.idl files" and its "The legacy tools idlc, regcompare, regmerge, and regview
are still contained in the URE or SDK for now."

The tools idlc and regmerge are deprecated but still shipped in the SDK for now.
The plan is to drop them completely for LO 7.5.

odk/examples/ and ure/source/uretest/ are adapted to use unoidl-write instead of
idlc and regmerge:

* unoidl-write does not use a C preprocessor and the # directives in .idl files,
  it supports reading a single .idl file (containing an arbitrary number of
  declarations) or a directory tree where each directory corresponds to a UNOIDL
  module of the same name and each .idl file contains the declaration of the
  (non-module) UNOIDL entity of the same name.  For some of the odk/examples/,
  that required moving individual .idl files into sub-directories named after
  the respective modules.  In odk/settings/std.mk, definitinos of IDL and
  REGMERGE have been replaced with a new UNOIDLWRITE.

* unoidl-write always enforces reserved UNOIDL identifier restrictions (see
  04af4e4f55 "[API CHANGE] Fix all bad UNOIDL
  identifiers across offapi" and 6201792406
  "Enforce the UNOIDL identifier scheme") (which idlc only enforced optionally
  with -cid -we).  That required renaming "my_module" in
  odk/examples/DevelopersGuide/Components/CppComponent/.

* The new types.rdb format is not compatibly with LibreOffice < 4.1.  Clients
  generating extensions containing such files are advised to use appropriate
  LibreOffice-minimal-version elements.

Change-Id: I1a248fd96e86ecbf407f829bc100d44bfe7f4e7d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130533
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-02-25 16:46:26 +01:00
Stephan Bergmann 45d93ea927 Fix clang-cl -Zc:dllexportInlines- build
That flag is only supported by clang-cl, not by MSVC, and
c7c9f3f57a "use clang-cl's -Zc:dllexportInlines-
for clang-cl builds" apparently naively assumed that it would work to build LO
with clang-cl and that flag without actually trying it out, and
1040228c35 "My clang-cl build does not work with
-Zc:dllexportInlines-" effectively disabled it completely.

The way to avoid unresolved external symbols during linking of URE libraries
(see the 1040228c35 commit message) is apparently
to also build libraries that the URE libraries depend on with the flag, hence
the change from gb_Library_set_is_ure_library to
gb_Library_set_is_ure_library_or_dependency.  For now, I only marked those
additional libraries (unoil and xmlreader) that actually caused issues when
linking the URE libraries.

Change-Id: I3a85c73246250981cd86b7ee41f87b41f393a4b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126012
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins
2021-12-02 07:39:52 +01:00
Noel Grandin 29489b33b4 loplugin:flatten
Change-Id: I3b4226a9d089ec9aedab95d96e50a068f57a76c7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123991
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-21 14:58:51 +02:00
Stephan Bergmann 1101b3524d Repurpose regcompare test as unoidl-check test
532b47a650 "[ABI CHANGE] In SDK, replace
regcompare with unoidl-check" had left "registry/CustomTarget_regcompare_test.mk
around to verify that unoidl-check behaves the same as did regcompare on those
old-format .urd/.rdb files."  Behavior of unoidl-check on those old-format .rdb
files will become less relevant with the planned move from the old-format
idlc/regmerge toolchain to the new-format unoidl-write toolchain also for the
SDK.  But there appear to be no unit tests for unoidl-check, so repurpose (and
move around) the existing test (switching it from using idlc/regmerge to using
unoidl-write).

Change-Id: I4c33e9c16aaf0f99e35d9257a40f3bc2ae2725ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121783
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-15 07:59:25 +02:00
Stephan Bergmann 6201792406 Enforce the UNOIDL identifier scheme
...which reserves identifiers containing underscores and starting with a
lowercase letter for the implementation.  That TODO can finally be resolved now
after 04af4e4f55 "[API CHANGE] Fix all bad UNOIDL
identifiers across offapi".

Change-Id: Id63ba96aa77f8666fbdfa90f7b260af42e6856bf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122362
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-14 20:39:18 +02:00
Noel Grandin 66e5317a91 loplugin:moveparam in unoidl
Change-Id: Id3069cad0b118b5593bb7a0faa9d7e33e5bef168
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123353
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-11 11:37:04 +02:00
Stephan Bergmann ad1557f5d7 A more lightweight O[U]StringConcatenation
...compared to a full-blown O[U]String, for temporary objects holding an
O[U]StringConcat result that can then be used as a std::[u16]string_view.

It's instructive to see how some invocations of operator ==, operator !=, and
O[U]StringBuffer::insert with an O[U]StringConcat argument required implicit
materialization of an O[U]String temporary, and how that expensive operation has
now been made explicit with the explicit O[U]StringConcatenation ctor.

(The additional operator == and operator != overloads are necessary because the
overloads taking two std::[u16]string_view parameters wouldn't even be found
here with ADL.  And the OUString-related ones would cause ambiguities in at
least sal/qa/rtl/strings/test_oustring_stringliterals.cxx built with
RTL_STRING_UNITTEST, so have simply been disabled for that special test-code
case.)

Change-Id: Id29799fa8da21a09ff9794cbc7cc9b366e6803b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122890
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-10-03 19:50:44 +02:00
Stephan Bergmann 7b10f11904 Implement the SourceTreeProvider Cursor
Change-Id: Ibf54bd1e852ea23fb37c7222625895d240452424
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122361
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-21 07:49:27 +02:00