Age | Commit message (Collapse) | Author |
|
OR and AND for legacy infix notation are classified as binary
operators but in fact are functions with parameter count. In case
no argument is supplied, GetByte() returns 0 and for that case the
implicit binary operator 2 parameters were wrongly assumed.
Similar for functions expecting 1 parameter, without argument 1
was assumed. For "real" unary and binary operators the compiler
already checks parameters. Omit OR and AND and 1-parameter
functions from this implicit assumption and return the actual 0
count.
Change-Id: Ie05398c112a98021ac2875cf7b6de994aee9d882
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147173
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: I0b92e2a94060549c39df7d08a6409518252fc757
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146970
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Automatically switching to en-US locale when using English
function names caused too much confusion. There also might be the
possibility that the '.' dot decimal separator clashes with the
inline array column separator in some locales.
A proper solution would make this user-specified and if set also
adjust the separators to the common English ones. For now keep the
default locale again as it previously was the case.
Change-Id: Ic4712c6609c14f35cf0d1d842ac7443806a6e115
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144924
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
While resolving named expression Pinnacle3
IF(AND(Pinnacle1+Pinnacle2<>11,Pinnacle1+Pinnacle2<>22,Pinnacle1+Pinnacle2>9),SUM(MID(Pinnacle1+Pinnacle2,1,1),MID(Pinnacle1+Pinnacle2,2,1)),Pinnacle1+Pinnacle2)
where resolving and inserting named expressions Pinnacle1
IF(AND(SUM($Sheet1.$D$3:$E$3)<>11;SUM($Sheet1.$D$3:$E$3)<>22;SUM($Sheet1.$D$3:$E$3)>9);SUM(MID(SUM($Sheet1.$D$3:$E$3);1;1);MID(SUM($Sheet1.$D$3:$E$3);2;1));SUM($Sheet1.$D$3:$E$3))
and Pinnacle2
IF(AND(Logic1<>11;Logic1<>22;Logic1>9);SUM(MID(Logic1;1;1);MID(Logic1;2;1));Logic1)
with Logic1
IF($Sheet1.$E$3+NilaiTahun>10;SUM(MID($Sheet1.$E$3+NilaiTahun;1;1);MID($Sheet1.$E$3+NilaiTahun;2;1));$Sheet1.$E$3+NilaiTahun)
with NilaiTahun
IF(SUM(MID($Sheet1.$F$3;1;1);MID($Sheet1.$F$3;2;1);MID($Sheet1.$F$3;3;1);MID($Sheet1.$F$3;4;1))<10;SUM(MID($Sheet1.$F$3;1;1);MID($Sheet1.$F$3;2;1);MID($Sheet1.$F$3;3;1);MID($Sheet1.$F$3;4;1));SUM(MID(SUM(MID($Sheet1.$F$3;1;1);MID($Sheet1.$F$3;2;1);MID($Sheet1.$F$3;3;1);MID($Sheet1.$F$3;4;1));1;1);SUM(MID(SUM(MID($Sheet1.$F$3;1;1);MID($Sheet1.$F$3;2;1);MID($Sheet1.$F$3;3;1);MID($Sheet1.$F$3;4;1));2;1))))
overall exceeds FORMULA_MAXTOKENS (8192) in the generated RPN
code, hence an ocStop is encountered as factor token.
(this cries for generating subroutine call token arrays where each
named expression could have their own RPN code and interim results
could be remembered for each while interpreting within one formula
cell; just dreaming..).
Change-Id: I744c4915a00849b107c7c25d7029aa19d976aa86
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144048
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
cheaper to init the stack with the first element, rather than calling
Push
Change-Id: Ia34f88b6534a663fae2ed08d0499d04d2f458847
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140137
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Hence a ' is not escaped by \' but by '' doubling it.
See also ODFF 5.10 Quoted Label
https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#__RefHeading__1017950_715980110
Apparently this was always wrong and even stored in files and
never correctly read/compiled back.
Change-Id: I94bdb7d1fdffe9bbd77cf443883dd76637be981b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139491
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: I7c587a68dbdeab9a8c8ed324ecae2eb5dd75b9df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139201
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
... to prepare having GetOpCodeMap() return a temporary if a final
doesn't exist yet. Currently just an alias.
Change-Id: I6fc100ae6223010e149e4af01fc7c17630930de7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139162
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: I6c1d8c0365cb59f3c63537c08e27a34bac111aaf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138705
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
... instead of formula::FormulaCompiler base class that doesn't
know anything about AddIns, and copy AddIns along to new resulting
native map.
Change-Id: I9e4ece2f7450a561ac502ca1dbddaa5a697fa2fe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137882
Tested-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
Initialized at FormulaCompiler base class instance it lacks AddIn
mapping and a still existing OpCodeMap prevents necessary
reinitialization from derived ScCompiler instance later.
Change-Id: I0c2db41dd45829abfb8460730264f097ab76ab2e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137881
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
Change-Id: I1edc2a979946078e4548c0933f9b64b7a08a7e6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137773
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
... so not only the com.sun.star.sheet.addin.* programmatic names
are recognized for XCell::setFormula() non-localized API calls.
Change-Id: I1f1f3f45001360445b25765312782f04ee079ee9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137769
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: I275f96bb8b24838538ac88532508ad7dbd127eae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136271
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
not reproducible for me, but appears to be an empty string here
sometimes.
Change-Id: I8465f178cc7e5a6efdc08c1d15c154eeb2277c7b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136287
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
... to repair broken saved as Excel documents with saved Add-In
programmatic names, by adding them as upper-cased symbols. Previously,
adding such name was rejected if the Add-In already existed in the
reverse map. Now multiple one-way aliases are accepted. The upper-case
programmatic name was already attempted to be added for all Add-Ins of
the collection (for the non-UI case via
fillFromAddInCollectionUpperName()) but the pre-known Add-Ins are mapped
before so existed already and those names were rejected, as they
shouldn't be necessary. Except for broken documents..
Change-Id: I3cb6848779362de3446581528d2f6e6f19af9ec8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136072
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
So ={1;2} or =-{1;2} or ={1;2}+3 or ={1;2}+{3;4} or ={1;2}+A1 are
propagated. But ={1;2}+A1:A2 is not because the range reference
should be implicit intersection not to be forced to array mode
unless user says so.
This also adds low level ocPush with svMatrix returning always
ParamClass::ForceArrayReturn in FormulaToken::GetInForceArray() so
any derived like ScMatrixToken inherit that.
Change-Id: Ida24414a795d6609bf01e361f96438f9e7f7f66c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135360
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
So in SUM(MUNIT(3)) the SUM does not get ForceArrayReturn.
Same as in
commit bac202275b1bf1abe4277daf35f74ff973c23483
CommitDate: Fri Jun 3 13:08:11 2022 +0200
Propagate inline array only for Value parameters, tdf#149378 follow-up
Change-Id: I60b17352c6e2f4fe608070c07f538456ed863156
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135358
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
So in SUM({1;2}) the SUM does not inherit it, but in ABS({-1;-2})
the ABS still does. This was always off, but so far didn't matter.
Change-Id: I00dfcd4b71b8dea943475bb5a593224312258e31
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135349
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
So the result will actually display as full matrix, or in the cell
range marked prior to input, instead of just the top left element
in one cell, without having to close the input with
Shift+Ctrl+Enter to force array mode. The previous behaviour can
be forced by pre-selecting/marking one cell, which also worked
previously when closing as array input.
Change-Id: I81c079ce02e0c8d0536617ca6882fb470a352441
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135278
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: I07f11bf12fbe1d1c2d812fa0965d6e632e1e1aba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133437
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
See tdf#42949 for motivation
Change-Id: I49a3ce10dee4b03f99156f5b641f69448e1d5617
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128479
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
Change-Id: I15a577b3c6da03001bbbf2c2b43b29b41c4007c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127234
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
See tdf#42949 for motivation
Change-Id: I44e4e3a88067c1c29ce9d563b22741e984b43576
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126964
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
which results in lots of nice string_view improvements picked up by the
plugins
Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I358f5e8031c235be76bb96591bf33f59a39b00ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123350
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ibff3c2fea3cadc234266953ab15ae5f25c4ac1e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121626
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia6e34b48cdcc4b011c46c576269cdeffab4821ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120100
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
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>
|
|
Allowed whitespace in ODFF and OOXML are
U+0020 SPACE
U+0009 CHARACTER TABULATION
U+000A LINE FEED
U+000D CARRIAGE RETURN
Line feed and carriage return look a bit funny in the Function Wizard if
part of a function's argument but work. Once a formula is edited, CR are
converted to LF though, probably already in EditEngine, didn't
investigate.
Change-Id: I6278f6be48872e0710a3d74212db391dda249ed2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119635
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Same as for OOXML, they are disallowed in ODFF as well.
Change-Id: Iff78a901838092a3ee32221fdaadd28ee50f7646
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119577
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
Change-Id: I333100fda7e181f68f36b03279b3fbb8cb768310
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117615
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9bce5bc590e3348d1fb0c81a9ec74cec2944d38a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116617
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
Optimise LocaleDataWrapper for reads by initialising the
data we in the constructor, so we don't need any kind of
locking
Reduces load time from 34s to 28s.
Change-Id: I4bd3bddb30b70ba015fe5b1372534f9507762b74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114960
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and bump limit from 42 to 100
Change-Id: I0a35b32e7ab74a4148197ba48c52b6714bdb449d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110756
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ie8fdb999e9d7420f0e8bb27e9fd716148f7fc9f8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110755
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
shave 5% of the time here - ref-counting triggered by copying
svl::SharedString is significant, so return by const&
instead of by value
Change-Id: Ic702632da45d75dddab33d6ce1e6f1097ff70de9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109900
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
in certain matrix formulas like SUM(IF(A1=G:G, H:H)*B1/B2) where whole
columns are used for comparison in the condition of IF ultimately
followed by a reducer like SUM. In such cases we can safely reduce the
double-refs involved in the comparison to the sheet area where there is
data before converting the data to ScMatrix.
This is a more restricted version of Noel's fix in
37ffe509ef011357123642577c04ff296d59ce68
Change-Id: I1c2e8985adedb3f4c4648f541fb0e8e7d0fae033
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109050
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit 65167a9265acfea04733b5ff6ee3220a9da624f4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109118
Tested-by: Jenkins
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
|
|
Change-Id: Iefe922c2e0d605114d54673d63eccc5e4abd545d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102143
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This should always have had a ParamClass member variable and
SetInForceArray()/GetInForceArray() functions but never did.
Now with
commit 3a33828b8de7554e497051738c722b1764960a86
CommitDate: Tue Oct 13 21:36:31 2020 +0200
Resolves: tdf#133260 Propagate ForceArrayReturn from inline arrays
it broke CppunitTest_sc_subsequent_filters_test with the virtual
dummy assert() in FormulaToken::SetInForceArray(). Unfortunately
not caught earlier but at least it did now.
Remove the duplicated FormulaToken overrides and simply derive
from FormulaByteToken instead that has all we need.
Change-Id: I7946602955970fb9d6f349efdacb41389e211b68
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104262
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
... and functions returning array/matrix.
Same as for TRANSPOSE() and FREQUENCY() but not mentioned in
ECMA-376-1:2016 OOXML.
Change-Id: I1e9f1151b2bc0b7de892f4f3d9f91b9a6b86b67f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104249
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
... not the current locale. Specifically important for
uppercase/lowercase conversions that may yield different results
for example in Turkish i with/without dot.
Change-Id: I2aa57cdcf530d7a0697c4ffbd5dccb86bb526d8e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103588
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
So for RPN
sv...Ref(ocPush), sv...Ref(ocPush), svSep(ocUnion), sv...Ref(ocPush)
another svSep(ocUnion) instead of svSep(ocSep) is appended.
Regression from
commit a6032ff5418ad66cc8fec10c636e32b124ee7864
CommitDate: Thu Oct 11 11:26:37 2018 +0200
Resolves: tdf#90698 catch list (1;2) of non-references as error
that introduced a conditional check on operands and operators.
Change-Id: If5da3a781f24f891ff12c4a8f32a2ec92c6b4c8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102276
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
|
|
See tdf#74608 for motivation
Change-Id: I5983c837977e40b91df02605c1012640ffd5c650
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98291
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I0d73bb7d8d3fde426edc0a10c0750758b68aceb5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95099
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...where the get member function is defined on a std::__shared_ptr base class,
so loplugin:simplifypointertobool used to miss those until now. (While e.g.
using libc++ on macOS found those cases.)
366d08f2f6d4de922f6099c62bb81b49d89e0a68 "new loplugin:simplifypointertobool"
was mistaken in breaking isSmartPointerType(const clang::Type* t) out of
isSmartPointerType(const Expr* e); c874294ad9fb178df47c66875bfbdec466e39763 "Fix
detection of std::unique_ptr/shared_ptr in loplugin:redundantpointerops" had
introduced that indivisible two-step algorithm on purpose.
The amount of additional hits (on Linux) apparently asked for turning
loplugin:simplifypointertobool into a rewriting plugin. Which in turn showed
that the naive adivce to just "drop the get()" is not sufficient in places that
are not contextually converted to bool, as those places need to be wrapped in a
bool(...) functional cast now. If the expression was already wrapped in
parentheses, those could be reused as part of the functional cast, but
implementing that showed that such cases are not yet found at all by the
existing loplugin:simplifypointertobool. Lets leave that TODO for another
commit.
Besides the changes to compilerplugins/ itself, this change has been generated
fully automatically with the rewriting plugin on Linux.
Change-Id: I83107d6f634fc9ac232986f49044d7017df83e2a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94888
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
|
|
Change-Id: Iac753e528e13cb2565832a484e87f88061bbc91e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92239
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I90054df6949cf966b9edc706b2e29c2a57553be9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92161
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib20fec3a7b6bfe2f94c6f5f2f9fa0be6f7c21e97
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87320
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I6cfd3036481b8f76da73e46ac2b4b4a879f98cee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86894
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|