diff options
author | Eike Rathke <erack@redhat.com> | 2015-06-25 22:54:37 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-06-30 18:51:08 +0200 |
commit | 7c31ae8f35af4e620080d3d0cb4801c76c418ae3 (patch) | |
tree | fe92f8a56059adf5966ada93130124a07f3d3c6e /sc | |
parent | f344397f13d4596fcd6253523268ffdcf4bb7e8e (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.cxx | 12 |
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]; |