include/svl/zformat.hxx        |    3 ++-
 sc/source/ui/view/output2.cxx  |    6 ++++--
 svl/source/numbers/zformat.cxx |   17 +++++++++--------
 3 files changed, 15 insertions(+), 11 deletions(-)

New commits:
commit 8f9bfea59df1060ef8a1a3ab6510c8e9c1e5c52d
Author:     Caolán McNamara <[email protected]>
AuthorDate: Tue Feb 17 10:32:02 2026 +0000
Commit:     Caolán McNamara <[email protected]>
CommitDate: Sat Feb 21 20:02:59 2026 +0100

    pass an explicit SvNFLanguageData to this GetOutputString
    
    Change-Id: I6502cff8dd07fac081012c5c486bcb7ab5cc5805
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199838
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/include/svl/zformat.hxx b/include/svl/zformat.hxx
index 5aaa99d37033..05f2c53dee8b 100644
--- a/include/svl/zformat.hxx
+++ b/include/svl/zformat.hxx
@@ -247,7 +247,8 @@ public:
      * Get output string from a numeric value that fits the number of
      * characters specified.
      */
-    bool GetOutputString( double fNumber, sal_uInt16 nCharCount, OUString& 
rOutString, const NativeNumberWrapper& rNatNum ) const;
+    bool GetOutputString( double fNumber, sal_uInt16 nCharCount, OUString& 
rOutString,
+                          const NativeNumberWrapper& rNatNum, const 
SvNFLanguageData& rCurrentLang ) const;
 
     // bStarFlag: Take *n format as ESC n
     bool GetOutputString( double fNumber, OUString& OutString, const Color** 
ppColor, const NativeNumberWrapper& rNatNum, const SvNFLanguageData& 
rCurrentLang, bool bStarFlag = false) const;
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index 942672d2a27e..0d083c21217e 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -653,7 +653,8 @@ bool ScDrawStringsVars::SetTextToWidthOrHash( 
ScRefCellValue& rCell, tools::Long
     sal_uInt16 nNumDigits = static_cast<sal_uInt16>(nWidth / nMaxDigit);
     {
         OUString sTempOut(aString);
-        if (!pNumFormat->GetOutputString(fVal, nNumDigits, sTempOut, 
pOutput->mpDoc->GetFormatTable()->GetNatNum()))
+        if (!pNumFormat->GetOutputString(fVal, nNumDigits, sTempOut, 
pOutput->mpDoc->GetFormatTable()->GetNatNum(),
+                                         
pOutput->mpDoc->GetFormatTable()->GetROLanguageData()))
         {
             aString = sTempOut;
             // Failed to get output string.  Bail out.
@@ -692,7 +693,8 @@ bool ScDrawStringsVars::SetTextToWidthOrHash( 
ScRefCellValue& rCell, tools::Long
         // Re-calculate.
         nNumDigits = static_cast<sal_uInt16>(nWidth / nMaxDigit);
         OUString sTempOut(aString);
-        if (!pNumFormat->GetOutputString(fVal, nNumDigits, sTempOut, 
pOutput->mpDoc->GetFormatTable()->GetNatNum()))
+        if (!pNumFormat->GetOutputString(fVal, nNumDigits, sTempOut, 
pOutput->mpDoc->GetFormatTable()->GetNatNum(),
+                                         
pOutput->mpDoc->GetFormatTable()->GetROLanguageData()))
         {
             aString = sTempOut;
             // Failed to get output string.  Bail out.
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 1a0858c450d6..4a983fc0c7b4 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2426,13 +2426,13 @@ OUString 
SvNumberformat::GetIntegerFractionDelimiterString( sal_uInt16 nNumFor )
     return lcl_GetIntegerFractionDelimiterString( rInfo, nCnt );
 }
 
-bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, 
OUString& rOutString, const NativeNumberWrapper& rNatNum) const
+bool SvNumberformat::GetOutputString(double fNumber, sal_uInt16 nCharCount, 
OUString& rOutString,
+                                     const NativeNumberWrapper& rNatNum, const 
SvNFLanguageData& rCurrentLang) const
 {
     if (eType != SvNumFormatType::NUMBER)
     {
         return false;
     }
-    const auto& rLangData = GetCurrentLanguageData();
     double fTestNum = fNumber;
     bool bSign = std::signbit(fTestNum);
     if (bSign)
@@ -2441,7 +2441,7 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
     }
     if (fTestNum < EXP_LOWER_BOUND)
     {
-        lcl_GetOutputStringScientific(fNumber, nCharCount, rLangData, 
rOutString);
+        lcl_GetOutputStringScientific(fNumber, nCharCount, rCurrentLang, 
rOutString);
         return true;
     }
 
@@ -2451,7 +2451,7 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
 
     if (nDigitPre > 15)
     {
-        lcl_GetOutputStringScientific(fNumber, nCharCount, rLangData, 
rOutString);
+        lcl_GetOutputStringScientific(fNumber, nCharCount, rCurrentLang, 
rOutString);
         return true;
     }
 
@@ -2466,11 +2466,11 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
         // Subtract the decimal point.
         --nPrec;
     }
-    ImpGetOutputStdToPrecision(fNumber, rOutString, nPrec, rNatNum, rLangData);
+    ImpGetOutputStdToPrecision(fNumber, rOutString, nPrec, rNatNum, 
rCurrentLang);
     if (rOutString.getLength() > nCharCount)
     {
         // String still wider than desired.  Switch to scientific notation.
-        lcl_GetOutputStringScientific(fNumber, nCharCount, rLangData, 
rOutString);
+        lcl_GetOutputStringScientific(fNumber, nCharCount, rCurrentLang, 
rOutString);
     }
     return true;
 }
commit 3e96c2865b91eeb324aea91e8f4ee0acd94dba2b
Author:     Caolán McNamara <[email protected]>
AuthorDate: Tue Feb 17 10:22:08 2026 +0000
Commit:     Caolán McNamara <[email protected]>
CommitDate: Sat Feb 21 20:02:51 2026 +0100

    interim change, call GetCurrentLanguageData just once here
    
    Change-Id: Idc21e3346bae4947efa76d212a6a419d8b571104
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199837
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins

diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index 84da3b98c50e..1a0858c450d6 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2432,6 +2432,7 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
     {
         return false;
     }
+    const auto& rLangData = GetCurrentLanguageData();
     double fTestNum = fNumber;
     bool bSign = std::signbit(fTestNum);
     if (bSign)
@@ -2440,7 +2441,7 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
     }
     if (fTestNum < EXP_LOWER_BOUND)
     {
-        lcl_GetOutputStringScientific(fNumber, nCharCount, 
GetCurrentLanguageData(), rOutString);
+        lcl_GetOutputStringScientific(fNumber, nCharCount, rLangData, 
rOutString);
         return true;
     }
 
@@ -2450,7 +2451,7 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
 
     if (nDigitPre > 15)
     {
-        lcl_GetOutputStringScientific(fNumber, nCharCount, 
GetCurrentLanguageData(), rOutString);
+        lcl_GetOutputStringScientific(fNumber, nCharCount, rLangData, 
rOutString);
         return true;
     }
 
@@ -2465,11 +2466,11 @@ bool SvNumberformat::GetOutputString(double fNumber, 
sal_uInt16 nCharCount, OUSt
         // Subtract the decimal point.
         --nPrec;
     }
-    ImpGetOutputStdToPrecision(fNumber, rOutString, nPrec, rNatNum, 
GetCurrentLanguageData());
+    ImpGetOutputStdToPrecision(fNumber, rOutString, nPrec, rNatNum, rLangData);
     if (rOutString.getLength() > nCharCount)
     {
         // String still wider than desired.  Switch to scientific notation.
-        lcl_GetOutputStringScientific(fNumber, nCharCount, 
GetCurrentLanguageData(), rOutString);
+        lcl_GetOutputStringScientific(fNumber, nCharCount, rLangData, 
rOutString);
     }
     return true;
 }
@@ -2509,15 +2510,15 @@ bool SvNumberformat::GetOutputString(double fNumber,
     bool bRes = false;
     OutString.clear();
     *ppColor = nullptr; // No color change
-    if (eType & SvNumFormatType::LOGICAL && sFormatstring == 
rScan.GetKeywords()[NF_KEY_BOOLEAN])
+    if (eType & SvNumFormatType::LOGICAL && sFormatstring == 
rCurrentLang.GetKeywords()[NF_KEY_BOOLEAN])
     {
         if (fNumber)
         {
-            OutString = rScan.GetTrueString();
+            OutString = rCurrentLang.GetTrueString();
         }
         else
         {
-            OutString = rScan.GetFalseString();
+            OutString = rCurrentLang.GetFalseString();
         }
         return false;
     }

Reply via email to