sc/source/ui/docshell/impex.cxx |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit 8a45eac81686ccc06b7f028594770ad18ae66057
Author:     Eike Rathke <er...@redhat.com>
AuthorDate: Tue Aug 31 12:15:49 2021 +0200
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Tue Aug 31 15:59:47 2021 +0200

    CSV: use target doc's formatter to determine and set forced text
    
    If text is to be forced check if the string is a number in the
    target doc's locale which then needs to be forced to text format,
    not in the input parsing locale. Also set the text format of the
    document's default locale, not the input locale's text format
    (which may or may not match the document locale).
    
    Question remains if this isn't duplicated work anyway because
    setting text at cells forces text format if necessary if
    ScSetStringParam is setup correctly. To be investigated if all
    paths taken actually do that.
    
    Change-Id: I3db3907cfe81156ccd1b0b523372dd97ee8598a3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121366
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins

diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index c5102cf483b9..577bcd1930c2 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -1042,10 +1042,13 @@ static bool lcl_PutString(
     {
         double fDummy;
         sal_uInt32 nIndex = 0;
-        if (bForceFormulaText || pFormatter->IsNumberFormat(rStr, nIndex, 
fDummy))
+        if (bForceFormulaText || rDoc.GetFormatTable()->IsNumberFormat(rStr, 
nIndex, fDummy))
         {
             // Set the format of this cell to Text.
-            sal_uInt32 nFormat = 
pFormatter->GetStandardFormat(SvNumFormatType::TEXT);
+            /* TODO: is this even necessary as ScSetStringParam should take
+             * care of it and we're doing this twice? Investigate all paths
+             * taken below. */
+            sal_uInt32 nFormat = 
rDoc.GetFormatTable()->GetStandardFormat(SvNumFormatType::TEXT);
             ScPatternAttr aNewAttrs(rDoc.GetPool());
             SfxItemSet& rSet = aNewAttrs.GetItemSet();
             rSet.Put( SfxUInt32Item(ATTR_VALUE_FORMAT, nFormat) );

Reply via email to