... instead of twice the same name. Even if not handled yet in Calc, external
3D references may get imported and have to be written again.
Copy&Paste error since 2f373570c5
Change-Id: I6cb982793e1072d619053c02860a8046e78bc99e
Excel expects '[1]Sheet Name' instead of [1]'Sheet Name' and complains if it
encounters the latter.
Fortunately Calc handles both.
Change-Id: If1129e58725b522ca4755c05e313c03fca065f28
For instance, column / row label tokens don't work correctly in
grouped cells with the current implementation.
Change-Id: Idf86312ef15fbfd4382aa90ee6d131c671a80683
... when handling name token. This can happen when importing BIFF .xls and the
original range is not present in the document. The document is broken, but such
formula can continue to work if the range expression was not actually executed,
for example IF(TRUE(),then_good,else_bad_range) where else_bad_range is #NAME?
error.
Change-Id: I823ac89115418cf5069b2baf5c5de2c814319ae7
Speedup of this particular function and callees by factor 33 ...
1000 calls for =12345.6789 and =123.456 alternating:
Before:
Ir Irpc Callee
9859177 9859 ScCompiler::IsValue
6246858 6246 SvNumberFormatter::IsNumberFormat
3496261 3496 SvNumberFormatter::GetStandardIndex
After:
298000 298 ScCompiler::IsValue
248000 248 rtl_math_uStringToDouble
Change-Id: I36eac8c5fe1b1cbf34dfb480c9e7ca6607769364
...which makes it more flexible, can now also be used on non-const arguments.
The drawback of the argument no longer being a compile-time constant is remedied
by making the ctor constexpr.
Change-Id: Ia4903a2cc86791fece92eac0cb8406b6659dd19d
This silences the SAL_WARN_IF like
warn:formula.core:6944:1:formula/source/core/api/FormulaCompiler.cxx:625:
OpCodeMap::putOpCode: reusing OpCode 161,
replacing '_xlfn.ORG.OPENOFFICE.ERRORTYPE' with 'ERRORTYPE'
in English map 0x1018000
that occurred during the first load of OOXML .xlsx documents since the
old bad entries were added with commit
89c4a69103
In fact the direction opcode -> string was replaced, which it should had
not. That specific mapping is only used though when loading msoxl
namespace formulas from ODF.
Also, the replacement of parameter separator and array column and row
separator worked merely by chance, depending on in which order the
entries where inserted to the hash map. Fixed along as it popped up with
the new handling.
Change-Id: I88017a8b38ccc30874c3dca7d78f0fa47a77a36f
MULTIRANGE, GOALSEEK, EASTERSUNDAY, CURRENT and STYLE are LibreOffice /
OpenOffice.org only and need a _xlfn.ORG.OPENOFFICE. prefix and namespace when
saved to OOXML.
Change-Id: Ie5d4eb14b1ec958f9ebec5f149d0d1d7b4dd644e
Was wrongly saved as ERRORTYPE without _xlfn. prefix and namespace.
Be able to still read ERRORTYPE.
Change-Id: Ia028fe06d930f60b4260adf589ee3190b90ea099
... and let the interpreter decide about validity. Only if at least two
parameters are given, empty/omitted or not.
Change-Id: I2d7070e56f616b1940ff577c43e257eabb81b412
... as we can't rename RID_STRLIST_FUNCTION_NAMES_ENGLISH names.
Should we need yet another resource block to differentiate between
PODF/API names and actual always available English names? Ugly but
maybe. A much better approach would be if Text[en-US] would be always
available, additionally to the current localized resource.
Change-Id: If8eaf18643f4e24c811149c52efff1097a3c1596
... so they result in an invalid reference again producing a #REF! error
instead of a bad string producing #NAME? error.
This way we can handle the invalid #REF!.A1 and similar references that
were wrongly written to ODFF between 2013 and 2016 until 5.1.4
As a benefit, this is now also the case in UI, e.g. when recompiling
changed names with already invalidated references.
Change-Id: I117d709f594b7c37d899528a51220c1855b7817d
...which (in LIBO_INTERNAL_ONLY) for Clang expands to [[clang::fallthrough]] in
preparation of enabling -Wimplicit-fallthrough. (This is only relevant for
C++11, as neither C nor old C++ has a way to annotate intended fallthroughs.)
Could use BOOST_FALLTHROUGH instead of introducing our own SAL_FALLTHROUGH, but
that would require adding back in dependencies on boost_headers to many
libraries where we carefully removed any remaining Boost dependencies only
recently. (At least make SAL_FALLTHROUGH strictly LIBO_INTERNAL_ONLY, so its
future evolution will not have any impact on the stable URE interface.) C++17
will have a proper [[fallthroug]], eventually removing the need for a macro
altogether.
Change-Id: I342a7610a107db7d7a344ea9cbddfd9714d7e9ca
... if a part of the reference was deleted, instead of [.#REF!A1]
Actually this is a regression that already can be tracked down to
c54616f62b which changed things to use
ValidAddress() only.
Change-Id: I70f68722d7af02f6da3380c2dd9d54704c20b451
... should be FormulaToken(svSep,ocClose) instead. Though it didn't hurt
at the end of a formula where this was generated for auto-correction.
Change-Id: I71bd8270ccc268e645eb60298e84acffe39d3a0d
probably not much performance benefit, but it sure is good at
identifying leftover intermediate variables from previous
refactorings.
Change-Id: I3ce16fe496ac2733c1cb0a35f74c0fc9193cc657
Reviewed-on: https://gerrit.libreoffice.org/24026
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
Put defines into an enum class and use typed_flags template from o3tl
to give them flag operators.
There were some shift operations to apply flags from start references
to end references, these went into a helper in address.hxx to hide
them. A marco with shift operations in address.cxx was rewritten in two
helpers without shifts.
One shift remained in ScRange::Format with a comment.
The other flag untypical operator was a minus 1 in a helper for
ScRefFinder::ToggleRel, which iteratates through all possible
combinations for absolute references. This is used to make referecnces
absolute via SHIFT+F4. A replacement would be too complex.
Change-Id: I4850f1623e01e56c60ac2260b95fc5cad8b6fd71
Signed-off-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Reviewed-on: https://gerrit.libreoffice.org/22840
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Somewhat arbitrarily prefer public over private derivation; ultimately,
derivation from those deprecated (C++11)/removed (C++17) classes should be
removed, anyway.
Change-Id: I5ed24427d37586e72f8c16509cf5002a54af73f1