[Libreoffice-commits] core.git: Branch 'distro/nisz/libreoffice-6-4' - sc/source
Eike Rathke (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jul 28 11:56:00 UTC 2020
sc/source/core/tool/compiler.cxx | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
New commits:
commit acd5f39dfe9262a43a4d8ff898c5b16a52e8c830
Author: Eike Rathke <erack at redhat.com>
AuthorDate: Tue Jun 30 17:28:39 2020 +0200
Commit: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
CommitDate: Tue Jul 28 13:55:26 2020 +0200
Resolves: tdf#131424 separator in TableRef column specifier is valid
Even only a separator or any operator single character.
Change-Id: I102dd7fd49c1a6a7f1d8c39f4a6139a51dbebe51
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97535
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Jenkins
(cherry picked from commit 31951265f541c9f5acf424674e2d1d97c0f3b8c2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97507
Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>
(cherry picked from commit 56641c9717f4fadcc81248c58c7762314270d721)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99591
Tested-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
Reviewed-by: Gabor Kelemen <kelemen.gabor2 at nisz.hu>
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index f0c755fa1b8c..e31ab2731fa3 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2080,6 +2080,8 @@ sal_Int32 ScCompiler::NextSymbol(bool bInArray)
case ssSkipString:
case ssGetReference:
case ssSkipReference:
+ case ssGetTableRefItem:
+ case ssGetTableRefColumn:
break;
default:
if (eState == ssGetChar)
@@ -4234,12 +4236,20 @@ bool ScCompiler::NextNewToken( bool bInArray )
bMayBeFuncName = ScGlobal::pCharClass->isLetter( aTmpStr, 0 );
bAsciiNonAlnum = false;
}
- if (bAsciiNonAlnum && cSymbol[1] == 0)
+
+ // Within a TableRef anything except an unescaped '[' or ']' is an item
+ // or a column specifier, do not attempt to recognize any other single
+ // operator there so even [,] or [+] for a single character column
+ // specifier works. Note that space between two ocTableRefOpen is not
+ // supported (Table[ [ColumnSpec]]), not only here. Note also that Table[]
+ // without any item or column specifier is valid.
+ if (bAsciiNonAlnum && cSymbol[1] == 0 && (eLastOp != ocTableRefOpen || cSymbol[0] == '[' || cSymbol[0] == ']'))
{
// Shortcut for operators and separators that need no further checks or upper.
if (IsOpCode( OUString( cSymbol), bInArray ))
return true;
}
+
if ( bMayBeFuncName )
{
// a function name must be followed by a parenthesis
More information about the Libreoffice-commits
mailing list