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

Eike Rathke (via logerrit) logerrit at kemper.freedesktop.org
Thu Jul 1 15:10:44 UTC 2021


 sc/source/core/tool/compiler.cxx |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit d703131d063c41b8baca01830c4c9806f99ab7d2
Author:     Eike Rathke <erack at redhat.com>
AuthorDate: Thu Jul 1 15:46:01 2021 +0200
Commit:     Eike Rathke <erack at redhat.com>
CommitDate: Thu Jul 1 17:10:07 2021 +0200

    Resolves: tdf#138432 Use locale's CharClass to parse numeric i18n context
    
    Change-Id: I1828f1b6f93228cd517a6a7bd9ae36584bd801a1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118226
    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 76a60156fd16..0d1dc9d52aa6 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -2746,6 +2746,10 @@ Label_MaskStateMachine:
                 cGroupSep != cArrayColSep && cGroupSep != cArrayRowSep &&
                 cGroupSep != cDecSep && cGroupSep != cDecSepAlt &&
                 cGroupSep != cSheetPrefix && cGroupSep != cSheetSep);
+        // If a numeric context triggered bi18n then use the default locale's
+        // CharClass, this may accept group separator as well.
+        const CharClass* pMyCharClass = (ScGlobal::getCharClassPtr()->isDigit( OUString(pStart[nSrcPos]), 0) ?
+                ScGlobal::getCharClassPtr() : pCharClass);
         OUStringBuffer aSymbol;
         mnRangeOpPosInSymbol = -1;
         FormulaError nErr = FormulaError::NONE;
@@ -2756,7 +2760,7 @@ Label_MaskStateMachine:
             if ( pStart[nSrcPos] == cSheetPrefix && pStart[nSrcPos+1] == '\'' )
                 aSymbol.append(pStart[nSrcPos++]);
 
-            ParseResult aRes = pConv->parseAnyToken( aFormula, nSrcPos, pCharClass, bGroupSeparator);
+            ParseResult aRes = pConv->parseAnyToken( aFormula, nSrcPos, pMyCharClass, bGroupSeparator);
 
             if ( !aRes.TokenType )
             {


More information about the Libreoffice-commits mailing list