tdf#146672 - CDbl: skip spaces and tabs at the end of the scanned string
Change-Id: Ib7a4e8c7145b549a5327de23549d39d11f8590cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129648
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
(cherry picked from commit a79e7dc9e8097c199e91288027861e3883e14d1b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129620
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/basic/qa/basic_coverage/test_cdbl_method.bas b/basic/qa/basic_coverage/test_cdbl_method.bas
index 1c7837f..e44c234 100644
--- a/basic/qa/basic_coverage/test_cdbl_method.bas
+++ b/basic/qa/basic_coverage/test_cdbl_method.bas
@@ -1,18 +1,30 @@
'
' This file is part of the LibreOffice project.
'
' This Source Code Form is subject to the terms of the Mozilla Public
' License, v. 2.0. If a copy of the MPL was not distributed with this
' file, You can obtain one at http://mozilla.org/MPL/2.0/.
'
'
' This file is part of the LibreOffice project.
'
' This Source Code Form is subject to the terms of the Mozilla Public
' License, v. 2.0. If a copy of the MPL was not distributed with this
' file, You can obtain one at http://mozilla.org/MPL/2.0/.
'
Option Explicit
Option Explicit
Function doUnitTest as String
' CDBL
If (CDbl("100") <> 100) Then
doUnitTest = "FAIL"
Else
doUnitTest = "OK"
End If
Function doUnitTest() As String
TestUtil.TestInit
verify_testCdbl
doUnitTest = TestUtil.GetResult()
End Function
Sub verify_testCdbl
On Error GoTo errorHandler
' CDBL
TestUtil.AssertEqual(CDbl("100"), 100, "CDbl(""100"")")
' tdf#146672 - skip spaces and tabs at the end of the scanned string
TestUtil.AssertEqual(CDbl("28.8 "), 28.8, "CDbl(""28.8 "")")
TestUtil.AssertEqual(CDbl("28.8 "), 28.8, "CDbl(""28.8 "")")
Exit Sub
errorHandler:
TestUtil.ReportErrorHandler("verify_testCdbl", Err, Error$, Erl)
End Sub
diff --git a/basic/qa/vba_tests/cdbl.vb b/basic/qa/vba_tests/cdbl.vb
index f29271f..8a7d09c 100644
--- a/basic/qa/vba_tests/cdbl.vb
+++ b/basic/qa/vba_tests/cdbl.vb
@@ -23,6 +23,11 @@ Sub verify_testCdbl()
TestUtil.AssertEqual(CDbl(0.005 * 0.01), 0.00005, "CDbl(0.005 * 0.01)")
TestUtil.AssertEqual(CDbl("20"), 20, "CDbl(""20"")")
' tdf#146672 - skip spaces and tabs at the end of the scanned string
TestUtil.AssertEqual(CDbl("28.8 "), 28.8, "CDbl(""28.8 "")")
TestUtil.AssertEqual(CDbl("28.8 "), 28.8, "CDbl(""28.8 "")")
Exit Sub
errorHandler:
TestUtil.ReportErrorHandler("verify_testCdbl", Err, Error$, Erl)
diff --git a/basic/source/sbx/sbxscan.cxx b/basic/source/sbx/sbxscan.cxx
index a496a51..5fb56ba 100644
--- a/basic/source/sbx/sbxscan.cxx
+++ b/basic/source/sbx/sbxscan.cxx
@@ -268,6 +268,9 @@ ErrCode ImpScan( const OUString& rWSrc, double& nVal, SbxDataType& rType,
return ERRCODE_BASIC_CONVERSION;
}
#endif
// tdf#146672 - skip whitespaces and tabs at the end of the scanned string
while (*p == ' ' || *p == '\t')
p++;
if( pLen )
*pLen = static_cast<sal_uInt16>( p - pStart );
if( !bRes )