Commit Graph
775 Commits
Author SHA1 Message Date
Stephan Bergmann e88cb2d41f -Werror,-Wdeprecated-declarations (sprintf, macOS 13 SDK): basic
Change-Id: If70c3bf8d7d6c855baf23b02cccb3f3b5ccb9f64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142321
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-11-05 17:17:54 +01:00
Noel Grandin 0a7eac8576 use more string_view in accessibility..configmgr
Change-Id: Ie16d36faac7d06e275348ed68e6c6b2518534fd6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140636
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-27 13:31:20 +02:00
Noel Grandin fd3888c69a move ErrCode to comphelper and improve debug output string
need to move it, because modules "below" vcl want
to use the debug output method

Change-Id: Ibcaf4089a1e0b3fcc0b5189c7ebf1aae90f50b48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139791
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-14 08:34:38 +02:00
Andreas Heinisch 7e2a8a9869 tdf#150139 - Add a concrete name to the error message
Add a concrete name to the "Property or method not found: $(ARG1)" error message when creating a listener.

Change-Id: I76c904793a96082c49f8aa2d45c76c50a453d892
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138061
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-08-22 19:03:42 +02:00
Stephan Bergmann ca550863f7 Better cast to sal_[u]IntPtr when passing pointer to O[U]String::number
Change-Id: I5b7a0fa060c1e0ae4aa194e0c1862f303dd8a2d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138062
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-10 13:40:09 +02:00
Noel Grandin 7c9d99a5cb elide some makeStringAndClear() calls
Change-Id: Ie8c04a8c414f32cc0e68fbab1d24a9707f179011
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136201
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-21 10:10:36 +02:00
Mike Kaganski f4ff0ed557 tdf#149622: also clear return value before calling method from SbxObject::Call
Moves the custom cleanup logic to overridden SbxMethod::Clear, to simplify
the cleanup code and make sure it restores empty Variant correctly.

Change-Id: I01fa0529acd9ac787ffcda60fd6836ade4afdcb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136108
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-06-20 12:46:27 +02:00
Stephan Bergmann bd279d3002 Use more appropriate index variable type
Change-Id: I0a6de93876d316a1aa094cf98dc2ee5c7eddebbf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135205
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-31 22:42:34 +02:00
Noel Grandin 5ecdedbf81 clang-tidy modernize-pass-by-value in basic
Change-Id: I9034ab95a4ccb58e36e77d911dd33cc50857c03a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135176
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-31 15:11:27 +02:00
Stephan Bergmann 5060c50158 Use o3tl::make_unsigned in some places
...where a signed and an unsigned value are compared, and the signed value has
just been proven to be non-negative here

Change-Id: I20600d61a5d59d739bc1bee838c0038e4611aec2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134875
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-24 16:50:03 +02:00
Pragat Pandya 6abc09926c tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro
Change-Id: I54257e87da0cd66da59d820c7960c3e4b020fda3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134027
Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
Tested-by: Jenkins
2022-05-09 20:42:03 +02:00
Xisco Fauli 7251f9c1b8 basic: remove commented out line
Introduced in 90d33f5945
"tdf#148358 - Compare Non-ASCII variable names case-insensitive"

Change-Id: I5bccb3f2f54ac61f2fbf960e78e3d4e4a0893f85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134081
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-05-09 18:30:35 +02:00
Andreas Heinisch 90d33f5945 tdf#148358 - Compare Non-ASCII variable names case-insensitive
Change-Id: I761eb27b16c92d58df1be8e6011fc9b94db2a59c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133774
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-05-07 16:00:50 +02:00
Noel Grandin d506ff97c2 add string_view wrappers for rtl::math::stringToDouble
Change-Id: I114bec72cb933238675e539a8388a607226827cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133455
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-27 12:19:55 +02:00
Noel Grandin 33bd16b344 loplugin:stringviewparam convert methods using copy()
which converts to std::string_view::substr()

Change-Id: I3f42213b41a97e77ddcc79d84d512f49d68ca559
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132729
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-17 10:27:33 +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
Noel Grandin 3a88b513fd loplugin:stringviewparam convert methods using trim
for which we add a new o3tl::trim method

Change-Id: I9d37b6264eea106aa2f3502bd24b8cccf7850938
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132658
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-08 10:26:10 +02:00
Mike Kaganski b32c85d0be Move creation of case-insensitive variable name to a central place
SbxVariable::NameToCaseInsensitiveName might then be used wherever
such names may be needed (see e.g. tdf#148358).

Change-Id: I7749a12a05225398848cbf72700c6f0bc119bc22
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132561
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-04-05 11:30:24 +02:00
Mike Kaganski de81c2545a Related: tdf#144245 Optimize case-insensitive handling
1. Make BasicCollection::implGetIndexForName take OUString again,
after commit f7de7de118 made it take
std::u16string_view. All call sites pass OUStrings, and commit
ef32c3b4f9 made it create OUString
from the argument.
2. Have SbxVariable cache a case-insensitive variant of the name.
It is currently only used in the Collection implementation, but
may be used in other places; Tthe names are case-insensitive in
Basic, and VBA allows non-ASCII characters in names, so this
caching might be useful elsewhere.
3. Skip non-ASCII characters when calculating name hash, to allow
non-ASCII-containing strings still have some hash variance, when
at least some of the first 6 characters are ASCII.

Change-Id: If90ccea2c4b44c34967e6b764b6fab45b2976c40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132493
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-04-04 11:06:00 +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
Mike Kaganski a2c3ef6d81 Move BSTR wrapper to systools, and fix some wrong BSTR uses
BSTR is documented [1] to be prefixed by a 32-bit integer specifying
its length *in bytes* (not characters), so passing wchar_t* as BSTR
is wrong, and the length member of rtl_uString can't substitute the
proper BSTR length, since rtl_uString::length specifies length in
characters. Any code taking BSTR and using SysStringLen to get its
length would only get half of the passed OUString data.

In dbaccess/source/ui/dlg/adodatalinks.cxx, the abovementioned
error was implemented. OTOH, OLEVariant::getByteSequence() in
connectivity/source/drivers/ado/Aolevariant.cxx passed BSTR from
tagVARIANT to ctor of OLEString, which resulted in the BSTR being
freed in both dtors of OLEString and OLEVariant (the latter calls
VariantClear, which itself clears string when vtfield is VT_BSTR).

[1] https://docs.microsoft.com/en-us/previous-versions/windows/desktop/automat/bstr

Change-Id: Iedbd62b20133644258af3660616add7b63cac258
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131950
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-22 22:23:56 +01:00
Noel Grandin 7002caa97e new loplugin:trivialdestructor
look for potentially trivial destructors that can then be elided

Change-Id: I435c251bd4291b5864c20d68f88676faac7c43fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131318
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-11 09:06:06 +01:00
Caolán McNamara 25bcd30895 cid#707501 Uninitialized scalar variable
Change-Id: I89f08a858b7a820fce1dd3bc2b914c3e5eb3d656
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130703
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-28 15:44:21 +01:00
Caolán McNamara 34d3f1601c cid#707500 Uninitialized scalar variable
Change-Id: I4680b59483ae827cbceb567968dc6c4e864f7ad4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130702
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-28 15:43:56 +01:00
Caolán McNamara d833234624 cid#707503 Uninitialized scalar variable
Change-Id: I8e1c27f04d8a2ce2ff4608f97b5ff58c55833a37
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130704
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-28 15:43:11 +01:00
Andreas Heinisch a79e7dc9e8 tdf#146672 - CDbl: skip spaces and tabs at the end of the scanned string
Change-Id: Ib7a4e8c7145b549a5327de23549d39d11f8590cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129648
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-02-09 11:09:01 +01:00
Mike Kaganski 5bd55c22c1 We know the length here
Change-Id: I630b7fbda7c9ebf578e74260a0d67eea32e9e429
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129549
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-06 13:13:49 +01:00
Gabor Kelemen 840b4eb2f3 Recheck modules [a-c]* with IWYU
See tdf#42949 for motivation

Change-Id: I74a3c3a67c3639376e2251c3eb917fa4139dfbd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127808
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-01-13 08:26:15 +01:00
Andreas Heinisch 565a5fdee3 tdf#145960 - Return type of boolean operators should be of type boolean
In addition, added missing vba test to the test routine.

Change-Id: I3ee837e1eab30f10e0a4169d11014f9b6574ad1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127631
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-12-28 19:54:58 +01:00
Andreas Heinisch d8428094c7 tdf#144353, tdf#146281 - Correctly copy the information about variables
During the assignment of a variable, copy its information only if there
isn't already one present.

Change-Id: I29fcfcd10406f2af0708a879d57e0a3c704f179e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127387
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-12-27 20:48:55 +01:00
Mike Kaganski be596c0192 Nullify passed pointer in releaseDecimalPtr unconditionally
This was an implementation error ever since it was introduced
in commit 79d3bc4799.
The function is used to release the refcounted object, and the
calling code does not always set the pointer to another value
or discard it (see uses in basic/source/sbx/sbxvalue.cxx). If
it resets the pointer in some cases, it must do it always.

Change-Id: I17de412914935082d20f2a1a91ea6e4e289936aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127254
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-23 10:34:19 +01:00
Noel Grandin 26f46b861d loplugin:flatten in accessibility..basic
Change-Id: If2cc282c2b135d634daf393a082c29049b10a677
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127223
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-21 13:43:06 +01:00
Tor Lillqvist 47aabde053 Make the tdf#97983 changes to BASIC optional
If you want to keep the string to floating point conversion semantics
in BASIC as they were in LibreOffice 6, you can either set the
LIBREOFFICE6FLOATINGPOINTMODE environment variable to some non-empty
value, or set the org.openoffice.Office.Scripting/Basic/Compatibility/
UseLibreOffice6FloatingPointConversion flag in the Expert
Configuration. (Or use a registry modification file with that effect.)

Adapt the relevant unit test accordingly. Thanks to Mike Kaganski for
showing how to access the setting in the LibreOffice registry from
Basic.

Change-Id: I13d6d5d834e1bb81ef8df489db2b1da79f01dfc5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125756
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-09 12:06:49 +01:00
Mike Kaganski 59a90439a4 Simplify ImpStrChr and ImpScan
Change-Id: I8c752a7838ded7f3783982411ec937f46224d522
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126172
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-01 15:49:17 +01:00
Mike Kaganski c28a13b9e2 Unify and simplify floating-point-to-integer conversion
* Round the number once, to avoid doing it three times for a successful conversion.

* Round to nearest before convertsToAtMost/convertsToAtLeast, to handle cases like
    Dim n As Integer
    n = 32767.4
  which should succeed.

* Add overflow checks to Hyper (U/Int64) types.

Change-Id: Ib10837e6df3cc1e3aba7a657e882bd40e344fd3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126173
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-12-01 14:03:30 +01:00
Andreas Heinisch 8294268307 tdf#143575, tdf#143974 - Remove custom precision format in BASIC
Change-Id: Iefe046fa223f85204b27ebabe81523aa1a97f92f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122856
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-09-30 11:33:55 +02:00
Andreas Heinisch ed16602512 tdf#143575, tdf#143974 - Use rtl::math::doubleToUString to convert numbers to strings
Change-Id: I1427dbd49af680a1bf386410977c9cb2b0a3961e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122831
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-09-30 09:26:54 +02:00
Caolán McNamara 010e99c701 cid#1486004 silence Uncaught exception
Change-Id: Id545530140c0f2ceeeaecfb0c03c94f296bdbb4f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122297
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-09-18 15:27:53 +02:00
Andreas Heinisch e32d864dbe tdf#144353 - Handling of missing optional parameters
Don't assign a missing optional variable to a property and don't allow
the computation/comparision including missing optional attributes.

In the previous cases a ERRCODE_BASIC_NOT_OPTIONAL is raised.

Change-Id: Iab391286fcace16c271ae511304075e2a0c5c651
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121794
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-09-10 13:28:33 +02:00
Noel Grandin 8024118d5c clang-tidy:readability-redundant-member-init
Change-Id: Ibeff6e5cbc20ab86b1e9cb96292acb340849ede3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121149
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-27 21:24:20 +02:00
Noel Grandin ef38b9af0a split SvNumberFormatter into it's own header
so I can make changes without running into cyclic dependencies
between header files

Change-Id: I98a91c7cc66002ba745cdb8239e5cc267922a45c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120412
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-13 11:46:13 +02:00
Eike Rathke e89404f00b There is no LANGUAGE_ENGLISH {en} locale but LANGUAGE_ENGLISH_US {en-US}
The known fallback locale is en-US so this worked by chance..

Change-Id: I81ee2aff0cc35b4c8d501dfb6846f0709f1417ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120301
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
2021-08-11 02:34:36 +02:00
Noel Grandin 14cfff500e Pass context and resource string down to boost::locale separately
because this is often on a hot path, and we can avoid the splitting and
joining of strings like this.

Change-Id: Ia36047209368ca53431178c2e8723a18cfe8260a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119220
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-05 09:39:11 +02:00
Noel Grandin 1597cc5b3e convert #defines to OUStringLiteral
mostly by doing

$ git grep -l '#define.*\"' -- *.cxx
    | xargs perl -pi -e
's/^#define\s+(\w+)\s+(\".*\")/constexpr OUStringLiteral \1 =
u\2;/g'

Change-Id: Idface893449b0ef2a3c5254865a300585d752fbb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119669
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-02 14:43:58 +02:00
Andreas Heinisch a330732cf8 tdf#107953 - Extend significant digits
According to
https://randomascii.wordpress.com/2012/03/08/float-precisionfrom-zero-to-100-digits-2/
show at least 9 / 17 significant digits for a single / double data type
in order to identify the contained value.

Change-Id: Id2833fc51ca005bc78b68d6b4cca28f2d95f5a85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119526
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-07-28 09:57:31 +02:00
Noel Grandin 0771ac00ac use string_view in the Translate API
Change-Id: I0bb0ea9d39ed623928060ffd3f2e2bc36ba33209
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117272
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-17 14:32:11 +02:00
Noel Grandin 0afb2b63b3 fix some leaks in basic
Change-Id: I52c10cdbe9661974c908ee052336c779a40de402
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115323
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-10 15:14:48 +02:00
Caolán McNamara c56b5f9758 cid#1474072 silence Untrusted loop bound
Change-Id: I2f966440b59c61bfd692c0e63bdffc37eafdb7a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115229
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-07 11:56:11 +02:00
Noel Grandin e859bf8c4d loplugin:constmethod
Change-Id: I7913fd8144d521b8293ac43036d0fad82e457cd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115145
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-05 18:50:51 +02:00
Caolán McNamara 7e22869694 cid#1473732 Untrusted loop bound
and

cid#1474044 Untrusted loop bound

Change-Id: If30dc454d60adca11fd1a53ecf472555e328bd42
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113441
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-01 11:35:14 +02:00