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

Eike Rathke (via logerrit) logerrit at kemper.freedesktop.org
Sat Oct 31 10:47:00 UTC 2020


 sc/source/core/tool/address.cxx |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 5f0f3c09230daa40cbe3d0c7f5a1f193c2ccad8c
Author:     Eike Rathke <erack at redhat.com>
AuthorDate: Wed Oct 28 23:31:03 2020 +0100
Commit:     Eike Rathke <erack at redhat.com>
CommitDate: Sat Oct 31 11:46:23 2020 +0100

    Pass ExternalInfo up to caller from lcl_ScAddress_Parse_OOo()
    
    ... if external and sheet name was detected but a reference not
    completely parsed, which may indicate an external sheet-local
    name. This then in ScCompiler::IsSingleReference() is used to
    reset mnCurrentSheetEndPos and mnCurrentSheetTab, which without
    before was not done and may have lead to the external sheet-local
    name being taken as a sheet-local name in the current document if
    there was an identical one. External sheet-local names so far are
    not supported at all.
    
    The ExternalInfo is filled only if pSheetEndPos was passed but
    then could be used by the caller to obtain a name later.
    ExternalInfo::maTabName is filled only if a sheet name separator
    was encountered.
    
    Change-Id: I2414655a90a961af0e8ac2367cde7bdc4dcbb4c6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105089
    Tested-by: Jenkins
    Reviewed-by: Eike Rathke <erack at redhat.com>

diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index a1cae3fa93b4..e595e7003155 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -1430,6 +1430,15 @@ static ScRefFlags lcl_ScAddress_Parse_OOo( const sal_Unicode* p, const ScDocumen
             }
         }
     }
+    else if (bExtDoc && pExtInfo && !bExtDocInherited && !pExtInfo->mbExternal && pSheetEndPos)
+    {
+        // Pass partial info up to caller, there may be an external name
+        // following, and if after *pSheetEndPos it's external sheet-local.
+        // For global names aTab is empty and *pSheetEndPos==0.
+        pExtInfo->mbExternal = true;
+        pExtInfo->maTabName = aTab;
+        pExtInfo->mnFileId = rDoc.GetExternalRefManager()->getExternalFileId(aDocName);
+    }
 
     rRawRes |= nRes;
 


More information about the Libreoffice-commits mailing list