summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-06-25 22:54:37 +0200
committerAndras Timar <andras.timar@collabora.com>2015-06-30 18:51:08 +0200
commit7c31ae8f35af4e620080d3d0cb4801c76c418ae3 (patch)
treefe92f8a56059adf5966ada93130124a07f3d3c6e /sc
parentf344397f13d4596fcd6253523268ffdcf4bb7e8e (diff)
tdf#44419 in second reference part stop number parsing at separator
Change-Id: I70218bc41df0d56ab42d652aa7ac51733dc06f4b (cherry picked from commit 71dba79c1c84d693a59c53a8965caef0ddd1c2cc) Reviewed-on: https://gerrit.libreoffice.org/16496 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/compiler.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index f192230f5b33..cef2cf74ae86 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2367,6 +2367,18 @@ Label_MaskStateMachine:
}
else
{
+ // When having parsed a second reference part, ensure that the
+ // i18n parser did not mistakingly parse a number that included
+ // a separator which happened to be meant as a parameter
+ // separator instead.
+ if (mnRangeOpPosInSymbol >= 0 && (aRes.TokenType & KParseType::ASC_NUMBER))
+ {
+ for (sal_Int32 i = nSrcPos; i < aRes.EndPos; ++i)
+ {
+ if (pStart[i] == cSep)
+ aRes.EndPos = i; // also ends for
+ }
+ }
aSymbol.append( pStart + nSrcPos, aRes.EndPos - nSrcPos);
nSrcPos = aRes.EndPos;
c = pStart[nSrcPos];