summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2019-06-13 20:25:49 +0200
committerEike Rathke <erack@redhat.com>2019-06-14 02:49:21 +0200
commit6e68110a916500a92a15357b6bf90e62dc631a01 (patch)
tree830ec7935984e8cb923b390136235ea104c84c1c /sc/source
parent845743131b733b52eb913048f55f5efdd013b24f (diff)
Resolves: tdf#113541 handle external reference in Excel syntax
... not only OOXML. This wasn't only a problem when creating a reference by clicking or travelling to a cell in the external document, but also when editing an external reference in Excel_A1 or Excel_R1C1 reference syntax. Change-Id: Iee3d529ff9834e5013a61c2056238277f33356fe Reviewed-on: https://gerrit.libreoffice.org/73979 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 69903b5c5f9b9015c88931c0eb8a47b52ea3de12) Reviewed-on: https://gerrit.libreoffice.org/73987
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/core/tool/compiler.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 320198151ef3..23788b707d3a 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2134,11 +2134,14 @@ Label_MaskStateMachine:
}
else if( nMask & ScCharFlags::Char )
{
- // '[' is a special case in OOXML, it can start an external
- // reference ID like [1]Sheet1!A1 that needs to be scanned
+ // '[' is a special case in Excel syntax, it can start an
+ // external reference, ID in OOXML like [1]Sheet1!A1 or
+ // Excel_A1 [filename]Sheet!A1 or Excel_R1C1
+ // [filename]Sheet!R1C1 that needs to be scanned
// entirely, or can be ocTableRefOpen, of which the first
// transforms an ocDBArea into an ocTableRef.
- if (c == '[' && FormulaGrammar::isOOXML( meGrammar) && eLastOp != ocDBArea && maTableRefs.empty())
+ if (c == '[' && FormulaGrammar::isExcelSyntax( meGrammar)
+ && eLastOp != ocDBArea && maTableRefs.empty())
{
nMask &= ~ScCharFlags::Char;
goto Label_MaskStateMachine;