summaryrefslogtreecommitdiff
path: root/formula/source
AgeCommit message (Collapse)Author
2022-06-24crashtesting: assert seen with forum-mso-de-53682Caolán McNamara
not reproducible for me, but appears to be an empty string here sometimes. Change-Id: I8465f178cc7e5a6efdc08c1d15c154eeb2277c7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136247 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-11-23O[U]String::replaceAt overloads that take string_viewNoel Grandin
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>
2021-10-30Prepare for removal of non-const operator[] from Sequence in formulaMike Kaganski
Change-Id: I9baa0ac24865d54503c21545109163bde11eac47 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124367 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-11loplugin:moveparam in formulaNoel Grandin
Change-Id: I358f5e8031c235be76bb96591bf33f59a39b00ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123350 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-17remove GetCharClassPtr from SvtSysLocaleNoel Grandin
we already have GetCharClass and we never return a nullptr Change-Id: I3cb79bc60be614c0474ecfdaad17991f2ecb6368 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122208 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-04store ScTokenArray by value in SharedFormulaBufferNoel Grandin
Change-Id: Ibff3c2fea3cadc234266953ab15ae5f25c4ac1e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121626 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-06cid#1489780 Explicit null dereferencedCaolán McNamara
Change-Id: Ia6e34b48cdcc4b011c46c576269cdeffab4821ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120100 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-05Pass context and resource string down to boost::locale separatelyNoel Grandin
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-07-28Resolves: tdf#76310 Preserve whitespace TAB, CR, LF in formula expressionsEike Rathke
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
2021-07-28ODFF: eliminate spaces between function name and initial opening parenthesisEike Rathke
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>
2021-06-28loplugin:indentation improve checks for brace alignmentNoel Grandin
Change-Id: I333100fda7e181f68f36b03279b3fbb8cb768310 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117615 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-17use string_view in the Translate APINoel Grandin
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-08Simplify Sequences initializations (desktop/e*/filter/forms/formula/fpicker)Julien Nabet
includes removing of unused TOKEN_SEP Change-Id: Ic72d9d94bd8d07232699ee4d948f3b203d524491 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116833 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-06-02Merging an unsupported formula grammar is worth a real assert()Eike Rathke
Change-Id: I9bce5bc590e3348d1fb0c81a9ec74cec2944d38a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116617 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-05-21add Toggleable as a separate thing to a ButtonCaolán McNamara
and inherit ToggleButton from both it and Button Change-Id: If0e500aca8d0ffa087cb5e2bfc1786372fbff4eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115921 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-21use toggle instead of click for CheckButtonCaolán McNamara
Change-Id: Iec5139cc2b739a624db7f10854a29e191b509286 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115889 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-02tdf#79049 speed up OOXML workbook load (4)Noel Grandin
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>
2021-04-23undo blocking emitting focus events during grab_focusCaolán McNamara
revert... commit f97dbac73fe149e8fed0932890d0c1d6be4869a3 Author: Caolán McNamara <caolanm@redhat.com> Date: Wed Jun 26 21:00:02 2019 +0100 infinite focus changing in toc biblio page which blocked calling focus-changed callbacks when grab_focus is called explicitly analogous to how we block value-changed callbacks setting values through code but don't block them when the value is changed by user interaction. In retrospect that was a poor choice, so revert that and subsequent workarounds in favour of just not calling gtk_grab_focus if the widget already has focus. checked: a) tdf#138427 focus set to wrong input box b) tdf#138078 only call GetFocus if we gained focus from an unfocused state c) tdf#137993 ensure the toplevel vcl::Window is activated d) tdf#136941 call focus in handler explicitly Change-Id: I411480e2d627aa9995fb41b0aa17e9fb6d34d73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114524 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-19use more string_view in comphelper::stringNoel Grandin
Change-Id: I5d27824694e38de540e5f1fcd8704f8777f65140 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114261 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-23tdf#124176 Use pragma once in f*Vincent LE GARREC
filter, forms, fpicker, framework Change-Id: I55a25ad2dc3749e63465e638e8eeea3c322eabbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112047 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2021-02-18move async focus-in/focus-out workaround to known client that needs itCaolán McNamara
and for the normal case process immediately. Use-case is the bibliography editor, modified uncommitted entry, click in browser column margin area to select a new row, the entry should commit its old contents to the old row before filling from the new row Change-Id: Ib41d96afcfa86bcd1075b9512d4cfab593afa66d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111152 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-11ofz#30812 protect NextToken calling NextToken with RecurseGuardCaolán McNamara
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>
2021-02-11merge the two identical nRecursionMax expressionsCaolán McNamara
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>
2021-01-25tdf#92456 improve VLOOKUP perfNoel Grandin
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>
2021-01-14tdf#133858 reduce the double-ref range to data contentDennis Francis
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>
2020-12-02tdf#138427 focus set to wrong input boxCaolán McNamara
Change-Id: I4c1d3aa720f280f0ec1a3764d55f1d95ebd3180d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106999 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-11-13tdf#123936 Formatting files in module formula with clang-formatPhilipp Hofer
Change-Id: Id70a78e38749c6b402d6f709525a8c6b9a8701a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105671 Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-11-10new loplugin:reducevarscopeNoel Grandin
Change-Id: Iefe922c2e0d605114d54673d63eccc5e4abd545d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102143 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-22long->tools::Long in forms..frameworkNoel
Change-Id: I4cb29aade5ad1d3c3588b9437197e8493292872e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104625 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-14Derive FormulaExternalToken from FormulaByteToken, tdf#133260 follow-upEike Rathke
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
2020-10-13Resolves: tdf#133260 Propagate ForceArrayReturn from inline arraysEike Rathke
... 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
2020-10-06move set_user_managed_scrolling to an initial weld argumentCaolán McNamara
gtk is creating a11y objects on widgets changing parents so manage when that can happen to avoid premature creation of custom widget a11y objects Change-Id: I4879a93a897b2e4084cf6af0c9c0b0f0c1062254 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104025 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-29Resolves: tdf#137091 Use CharClass matching the formula languageEike Rathke
... 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>
2020-09-09Resolves: tdf#136364 treat svSep type with ocUnion as range typeEike Rathke
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
2020-08-31tdf#136269 give search entry initial focusCaolán McNamara
Change-Id: Id1b584341f2819e2fb4528465ee1d42c8f72dec8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101698 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-08-14loplugin:simplifybool moreNoel Grandin
look for expressions like !(a && !b) which can be expanded out Change-Id: I72515a9638762b050f9a258c08da39ebfa2ef8e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100579 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-07formula: create instances with uno constructorsNoel Grandin
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>
2020-06-05have just one way to set expander imageCaolán McNamara
Change-Id: Ic07709a864620c6146616c8e0a1417343c0937de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95590 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-05-29Related: tdf#131423 CHOOSE() supports only 30 jump targets, limit in dialogEike Rathke
Change-Id: Ic3506ee6194ac4e74e572a10db96f100bc9e6ac2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95149 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-05-29loplugin:simplifybool in dbaccess..frameworkNoel Grandin
Change-Id: I0d73bb7d8d3fde426edc0a10c0750758b68aceb5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95099 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-26Fix loplugin:simplifypointertobool for libstdc++ std::shared_ptrStephan Bergmann
...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
2020-05-13Check maximum end position to not assert() or "!!br0ken!!"Eike Rathke
While editing a formula in the Function Wizard it could happen that inserting an unclosed quote attempted to copy one more character than string length for parameter display. For example =FUNC("A";") Change-Id: Ic25ee0b97c3baee8d2e964c9e4b907415b0d889e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94086 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-04-23Related tdf#131169: avoid magic numbersJulien Nabet
Change-Id: Ic82f214f22933e3c74b8b0fc4c6a25b19f103fa1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92735 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-04-22tdf#131169: Retrieve right category in function wizardJulien Nabet
m_xFuncPage->GetCategory() takes into account "Last Used" + "All" so 13 categories (0 -> 12) whereas m_pFuncDesc->getCategory()->getNumber() doesn't take into account the 2 first (so only 0->10) So it's not +1 but +2 Change-Id: I4d37575a3b6615c76bfa173402191a8661714e95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92652 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2020-04-15loplugin:buriedassign in f,h,i*Noel Grandin
Change-Id: Iac753e528e13cb2565832a484e87f88061bbc91e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92239 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14loplugin:flatten in formulaNoel Grandin
Change-Id: I90054df6949cf966b9edc706b2e29c2a57553be9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92161 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-21Resolves: tdf#131423 Handle Function Wizard max argument count correctlyEike Rathke
The function description's argument count includes the VAR_ARGS and PAIRED_VAR_ARGS logic. Limit the max arguments count to the actual supported number of arguments. Change-Id: I588bed4672ff84adddc4be94962b2537758c5247 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90849 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2020-01-24loplugin:makeshared in drawinglayer..fpickerNoel Grandin
Change-Id: Ib20fec3a7b6bfe2f94c6f5f2f9fa0be6f7c21e97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87320 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-20tdf#42949 Fix IWYU warnings in formula/Gabor Kelemen
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>
2019-12-19sal_Char->char in formula..i18npoolNoel Grandin
Change-Id: I765979f41842befcf25909944100d1caa97f81a8 Reviewed-on: https://gerrit.libreoffice.org/85476 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>