[Libreoffice-commits] core.git: sc/source

Eike Rathke (via logerrit) logerrit at kemper.freedesktop.org
Thu Jun 13 21:08:24 UTC 2019


 sc/source/core/tool/compiler.cxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit 69903b5c5f9b9015c88931c0eb8a47b52ea3de12
Author:     Eike Rathke <erack at redhat.com>
AuthorDate: Thu Jun 13 20:25:49 2019 +0200
Commit:     Eike Rathke <erack at redhat.com>
CommitDate: Thu Jun 13 23:07:31 2019 +0200

    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 at redhat.com>
    Tested-by: Jenkins

diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 6e8f9e402a4f..440a229c947d 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;


More information about the Libreoffice-commits mailing list