summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorAndreas Heinisch <andreas.heinisch@yahoo.de>2022-02-07 22:02:30 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2022-02-09 12:49:01 +0100
commitc3d14dcbd83c96610f1c9acd1bfb95c8dbd05be1 (patch)
tree697c7fde9857e2561321d77ccfa07018358873d5 /basic
parent236d62d359c7ab22de01bf13d0b08759badfcc89 (diff)
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>
Diffstat (limited to 'basic')
-rw-r--r--basic/qa/basic_coverage/test_cdbl_method.bas42
-rw-r--r--basic/qa/vba_tests/cdbl.vb5
-rw-r--r--basic/source/sbx/sbxscan.cxx3
3 files changed, 35 insertions, 15 deletions
diff --git a/basic/qa/basic_coverage/test_cdbl_method.bas b/basic/qa/basic_coverage/test_cdbl_method.bas
index 1c7837fcaa4b..e44c23456ff1 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
+ TestUtil.TestInit
+ verify_testCdbl
+ doUnitTest = TestUtil.GetResult()
+End Function
+
+Sub verify_testCdbl
+ On Error GoTo errorHandler
-Function doUnitTest as String
' CDBL
- If (CDbl("100") <> 100) Then
- doUnitTest = "FAIL"
- Else
- doUnitTest = "OK"
- End If
-End Function
+ 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 f29271f082d6..8a7d09cd5a2e 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 a496a51d6ccb..5fb56ba1d8fd 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 )