Commit Graph
112 Commits
Author SHA1 Message Date
Mike Kaganski de4ef35350 tdf#163680: fix fixed-length strings assignment
Change-Id: I4aa8144df5dfb836ad0689c7855301b8b04da485
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175878
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-10-31 20:46:09 +01:00
Mike Kaganski ff3791f67a tdf#163219: only create local With variable for function results
The problem is, that having a local variable referring the same value
as the original expression 'foo' is not the same as referencing 'foo'
itself. After 'foo' is re-assigned, the local variable still refers
to the original value, not the new one.

It seems impossible to implement the reference using existing codegen
primitives, to imitate the true reference to 'foo', not to its value.
If we implement it by changing the runtime, the bytecode won't work
identically in older versions; if we introduce a new bytecode, that
would be an incompatible change.

As a workaround, only create the local With variable, when the block
variable is created using some function (as much as known by parser).
I think that there would be cases when this would still not work as
intended: an example is a property implemented using getter function;
the parser would likely treat the property as a variable, and avoid
creation of the local variable; and the getter would be called every
time a dot access will happen (which was the essence of tdf#132064).
However, this seems a better alternative to the bug fixed here.

Change-Id: I50bf679762fd2e73f215a000fa0ab60fd6ae7453
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174564
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-10-07 09:38:38 +02:00
Mike Kaganski 539856dbb7 Fix formatting of dates
Redression after commit 81e1e0a2a6
(Refactor SbxValue::Format, 2024-09-13).

Change-Id: Ie7eb50c32f3c1a3aec73fc882dc33cce42734747
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173449
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-09-17 05:55:13 +02:00
Mike Kaganski 196c89fc9d i#109051: also handle Exit Property for Property Set
An omission from commit 5ed103d2dd
(mib16: contributed bugfixes and various new symbols in VBA
compatibility implementation, 2010-06-15)

Change-Id: I1e08406eb1dcb64eeef5d925d22475f1b9f74de0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173426
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-17 05:54:15 +02:00
Mike Kaganski 40d0e6f4c4 tdf#162962: always create a local "Nothing" for the "WITH" variable
Other "WITH" blocks create the symbol that can be found by pPool->Find,
but can be not accessible at the call site.

Change-Id: I85ecc763a1bb3fd692c2c98e674047fdbde3f8f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173417
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-16 12:58:52 +02:00
Mike Kaganski 47a348bb0f tdf#162935: use PUTC for WITH variable assignment: it doesn't copy value
SbiRuntime::StepPUT, SbiRuntime::StepSET, SbiRuntime::StepVBASET call
checkUnoStructCopy eventually, which copies the UNO struct by value.
This is not what we need. On the other hand, SbiRuntime::StepPUTC only
makes the by-ref assignment, and makes the reference const; but Basic
code never assigns anything to the internal variable itself, only to
its members.

I hope that this time, I get it right.

Change-Id: I2b4a51a2dca9e7106e14e03360ef0d5a50b60079
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173305
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-13 01:55:07 +02:00
Mike Kaganski b2257d1f78 Improve run-time Currency type support in Basic
Change-Id: I1e04c6022944034a30ef896b8cd24050ebe3bbd5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173042
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-09 17:46:41 +02:00
Mike Kaganski a795fddafa tdf#162724: use localized decimal separator in ImpCurrencyToString
Same as in ImpCvtNum

Change-Id: Icbaa237e944a39309b01fdb18e668d054ff61c60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172693
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-09-01 04:06:40 +02:00
Mike Kaganski fa8a0f514a Related: tdf#132064 Use set to clear the With internal variable
In commit f3f46b5fe7 (tdf#132064: make
With statement only evaluate its argument once, 2024-08-17), I made
a mistake, clearing the internal variable in the end of SbiParser::With
using an Erase call, which does not just clears the variable itself,
but destroys the underlying object, which is not what we need.

I don't know how to refer to a global Nothing object to assign to the
variable; so just create an own internal Nothing, and use it in the
assignment.

Change-Id: Ic8ce52e0402d8461a9b9e4ee07614c4f0a46a95e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172006
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-08-18 10:26:26 +02:00
Mike Kaganski f3f46b5fe7 tdf#132064: make With statement only evaluate its argument once
This is implemented by creating a unique variable at entry of the
block, using it as the "with parent", and clearing afterwards. It
uses an invalid name, so can't be used by a user. The  generation
of the bytecode is done in compatible way;  only existing opcodes
were used (which was the reason to choose the implementation with
a variable), so compiled binaries in password-protected libraries
are expected to work with older versions.

The functional changes are:

1. The argument of With statement is evaluated immediately at the
start of the block; previously, it evaluated first time, when the
leading dot operator was used,  and could even be never evaluated,
if the operator wasn't used. This is consistent with VBA, and has
a benefit that the lifetime of the object  is guaranteed to cover
the whole block (might be useful if other block statements depend
on the object, similar to Python's 'with' statement contexts).

2. The primary goal of the change: it is only ever evaluated once,
no matter how many times was the dot operator used in the block.

Change-Id: I4dbd520538a57e3668ab706e8f45740db5d33393
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171980
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-08-17 22:18:18 +02:00
Alain Romedenne 0a9135e0d9 Basic QA new unit test for IF THEN statement
Intent is to cover:

- repeating ElseIf blocks
_ nested IF statements
- IF THEN one liner

Change-Id: Iee37707e26a563f336438ce7ba17271a7f06e6fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171285
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-08-01 10:04:02 +02:00
Andreas Heinisch 84e8758d42 tdf#160321 - Don't execute jump statement if the expression is out of range
Don't execute On expression GoSub Statement; On expression GoTo
Statement if the expression lies out of range.

Change-Id: I5c1de25918b5e812d7ec82034f8d56351374d56a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165960
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2024-06-10 13:52:00 +02:00
Jonathan Clark 9cc8457abc tdf#128122 Updated BASIC CCur to reuse SvNumberFormatter
Previously, BASIC CCur used a custom, single-purpose currency string
parser which did not properly accommodate the user's locale setting.
This change replaces the custom parser with SvNumberFormatter, which
does correctly respect system locale.

Change-Id: I179915eb080e876e5e550dd350fdb86d7fa2bf4c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160848
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-12-23 09:12:24 +01:00
Aron Budea c9e8638015 tdf#150137 fastparser: don't crash on undeclared namespace
Change-Id: Icc8bbb391c7e34754b7274d67d73ff509827a3d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155381
Tested-by: Aron Budea <aron.budea@collabora.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
2023-08-07 17:38:30 +02:00
Baole Fang e12fff12b6 tdf#152690: Fix "!" behavior when it is not the first in a group
Fix "!" behavior when it is not the first in a group.
Add testcases for "!" and Like.

Change-Id: Ia76fa26722b6546d08dd8842d83f55bb0c0ea5ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148720
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-03-16 21:14:20 +00:00
Alain Romedenne fd19bc83cf tdf#141474 tdf#151901 BASIC functions argument names do not match that of VBA
Basic function argument names can be used either by position either by name, keyword arguments ae called 'named arguments' in VBA
- VBA doc:
https://learn.microsoft.com/en-us/office/vba/language/concepts/getting-started/understanding-named-arguments-and-optional-arguments
- libO Basic function signatures:
https://help.libreoffice.org/latest/en-US/text/sbasic/shared/03090401.html?DbPAR=BASIC#bm_id3154422

This patch attempts to correct - all in one - malformed keyword names in BASIC function signatures.

It reflects keyword arguments usage inside QA BASIC unit tests.

In the end Online help pages may incorporate such practice.

Change-Id: Iab0c92b2c152d2564662e51e68f1f736b8deefd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145720
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2023-02-26 16:14:47 +00:00
Xisco Fauli 3c7cba927b tdf#152917: basic_macros: Add unittest
Change-Id: I69050ae0e6607ed4a1d1da0e89b45125e2c06e3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145190
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2023-01-09 19:08:03 +00:00
Xisco Fauli 4f09c5f925 basic: remove tabs from test file
Introduced in c6dc676306
"tdf#152520: basic_macros: Add unittest"

Change-Id: Ieef7177b3eb1c7c4ab1aaa11cc343ace3f26601f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144581
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-12-20 12:56:52 +00:00
Xisco Fauli 5f0cf6e7aa basic: add missing license statement in test files
While at it, convert test_optional_paramter_type.bas
to Unix format

Change-Id: I141fa0a00d6b6784c3a84c8b3041086d51e5cdbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144540
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-12-20 08:41:11 +00:00
Xisco Fauli c6dc676306 tdf#152520: basic_macros: Add unittest
Change-Id: I30f6badc620f3932cacff07bd37ef4da96f1bafd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144539
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-12-20 07:47:34 +00:00
Andreas Heinisch bdfcad586d tdf#151503 - Do not evaluate a missing optional variable to a boolean
Change-Id: I671f857344f91de63612eabcbbdb2cab9b94cc0d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141296
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-10-14 10:06:38 +02:00
Andreas Heinisch 6f3532f6aa tdf#151012 - Initialize optional parameters with their default values
Change-Id: I3ed3eb904b50892e5946abe684e801819ba296e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140128
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-09-25 11:39:33 +02:00
Andrea Gelmini d477d2eb37 Removed executable bits on files
Change-Id: I8508d26067084ff7bb15bbf2326a1ff7bc61a6ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136521
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-06-28 20:55:42 +02:00
Mike Kaganski 120daca419 tdf#149447: use proper UNO types for marshalling unsigned Basic types
cppu::UnoType<sal_uInt8> corresponds to UNO boolean, so its use made the
unsigned values be converted to a true/false in Any; and additionally,
using such a boolean Any, even having a 'true' value, as a parameter to
a double argument would make operator >>=(const Any &, double &) return
false, giving the resulting double equal to 0.

The wrong conversion of UShorts and ULongs to cppu::UnoType<sal_uInt8>
(aka TypeClass_BOOLEAN) was introduced in commit
11f9aa4fcb
  Author Andreas Bregas <ab@openoffice.org>
  Date   Thu May 10 14:22:42 2001 +0000
    #79615# sbxToUnoValue(): Choose smallest possible type for numeric values

Treating of unsigned Basic Byte as a signed cppu::UnoType<sal_Int8> (aka
TypeClass_BYTE) was already introduced in
commit c25ec0608a
  Author Jens-Heiner Rechtien <hr@openoffice.org>
  Date   Mon Sep 18 15:18:56 2000 +0000
    initial import

Then, in commit 553cf2a834
  Author Andreas Bregas <ab@openoffice.org>
  Date   Fri Jun 08 14:59:57 2001 +0000
    #87927# Map TypeClass_BYTE to SbxINTEGER instead of SbxBYTE because of signed/unsigned problem

an attempt was made to handle obviously this same problem, changing the
corresponding UNO type to TypeClass_SHORT. But it seems that it created
problems when passing arrays of Byte through UNO to COM, where it needed
to convert to a safearray, so this decision was reverted in commit
dd6ba6b64a
  Author Mikhail Voytenko <mav@openoffice.org>
  Date   Thu Jul 08 21:33:48 2010 +0200
    mib17: #162917# let basic byte use one byte, let olebridge convert sequence to safearray correctly

This change tries to avoid the problem that caused the latter revert,
by only treating Bytes as UNO shorts in getUnoTypeForSbxValue, where
scalar Byte values are considered, keeping old handling for arrays.

Change-Id: I805108743376e2fc27dd21a27c31759b76dc0d09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136526
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-06-28 15:15:48 +02:00
Andreas Heinisch 522f5ad4d8 tdf#147529 - BASIC MsgBox: Check for missing optional parameters
Change-Id: Iecb47e0005c609ee1117d6fb141e810c0166806a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136339
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-06-24 09:20:45 +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
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
Mike Kaganski fe597a3379 Test StarBasic's native non-ASCII name syntax
Change-Id: Ie9f0cd21e59ffc1e3fbe2616e2ae7abbd0169424
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133103
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-04-17 10:08:08 +02:00
Alain Romedenne da27693800 Basic Collection class unit test
Change-Id: I7b67727ab8c3f7f67c2038500434ab44fa7d1949
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128544
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-31 17:26:55 +02:00
Stephan Bergmann e2ba33336f Adapt test to even slower builds
...like my local ASan+UBSan build, which now happened to fail once with

>  Failed: TestReplacePerformance (t = 60 s)
> Tests passed: 0
> Tests failed: 1

when the machine was under load during a parallelizing `make check`, following
up on 3564b5c6e9 "Adapt test to slow builds"

Change-Id: I8f0c8f7e6e145b6d5009f48d2af865ea5caab375
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132335
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-03-31 14:06:56 +02:00
Alain Romedenne b9b9b3afde tdf#114263 tdf#147262 CallByName() function LibO Basic test unit
Change-Id: Ia9bd38c0da4d3f94b824ebb1f98ac912758e8d38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129610
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-30 09:04:38 +02:00
Andreas Heinisch aa54ea2323 Change the comment of the test cases to clarify the textual representation of the calculated string
Change-Id: I98478297a577f723864b37514bbd432a6224350d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129844
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-03-02 21:42:09 +01:00
Andreas Heinisch 3ba8b56b32 tdf#147089 - Round Integral Division (IDIV) literals to Integer values
Change-Id: Ia243c6117a437d0c6efb33a4e76c5e9ee539fbdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130302
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-02-21 23:10:46 +01:00
Mike Kaganski 5276177877 tdf#147364: fix function signature to account to calling convention
First, the integer function result is returned in a 64-bit register (RAX),
and truncation it to sal_Int32 breaks any pointer return value.

Second, using explicit (not vararg) first function double argument would
pass it through XMM0, without also copying it to RCX (which is guaranteed
for varargs).

Ref: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
Change-Id: I08212c44d8690d6910068b13c16af2ce899c94f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129808
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-02-11 12:56:03 +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
Stephan Bergmann 3564b5c6e9 Adapt test to slow builds
...like my local ASan+UBSan build, which kept failing with

>  Failed: TestReplacePerformance (t = 35 s)
> Tests passed: 0
> Tests failed: 1

when the machine was under load during a parallelizing `make check`

Change-Id: I59c81a61a29df7165f6fad33e3fe3da975f05ed2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129237
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-31 23:34:32 +01:00
Mike Kaganski 24afbaab3a Fix format string
Change-Id: I18952bf6641175d25128b512ddfb56fd51767038
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129083
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-01-31 14:08:17 +01:00
Mike Kaganski 81a3d9b4bf tdf#132388: add unit test
I hope that this performance test is OK. I chose 20 s threshold, as
it works much faster on my system (under 4 s); it shouldn't be much
slower elsewhere; and both the original bug, and the regression that
followed the initial fix, made it execute orders of magnitute slower
(I expect hours on fast systems).

Change-Id: I75ee4c60e562473fe70a203faa94b48c5fbfb4fe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129203
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-01-31 11:24:00 +01:00
Andreas Heinisch 35aa82ef1c tdf#145693 - Argument name should be 'charcode' instead of 'string'
In addition, changed argument datatype from Int to Long.

Change-Id: I702e09b6b8061d7cf00dd403e4681a0ab348d4c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128100
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-01-08 11:48:32 +01:00
Andreas Heinisch 260a2036d6 tdf#130426 - Rename file for tdf#145693
Change-Id: I1435f3e8c8ecf41ecd6b2766e19009c6b1783326
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128099
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2022-01-07 12:17:50 +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
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
Andreas Heinisch 67c1591060 tdf#125637 - Correctly hand names ending with an underscore
If a name is ending with an underscore at the end of the line, it won't
be recognized correctly and it will be wrongly interpreted as the
respective name without the underscore at the end. Instead of changing
the macro source, use a flag in order to correclty identify the line end.

Change-Id: I6f933d7382b510bffed3e2692d32c232b7084624
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123833
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-20 20:27:59 +02:00
Andreas Heinisch e090afc29b tdf#144924 - Change return type of array elements of the split function
If VBA is not enabled, allow the assignment of variables with different
data types to the individual array elements created by the split
function.

Change-Id: I7bdd432cdebbfded5f7fb3acc0216474eb6b6821
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123122
Tested-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-10-07 08:21:58 +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
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
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
Andreas Heinisch afddd56a80 tdf#139840 - Use utl::TextSearch to implement the InStr function
In addtion, fixed a crash if the start position is greater than the
length of the string being searched.

Change-Id: I9bcda1131324bdfac6957018e91b3a36dd2dc3d6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118996
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-07-16 09:29:16 +02:00
Xisco Fauli 0ce3a9dcc0 tdf#111313: basic_macros: Add unittest
Change-Id: Id6f8bc0998d4f79434d46017b998917dcc53ac6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118949
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-07-15 10:02:00 +02:00
Xisco Fauli f7d128f122 tdf#98778: basic_macros: Add unittest
Change-Id: I35468fb35f5c24af2138688d99af0e41ba672334
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118944
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-07-14 19:39:07 +02:00