summaryrefslogtreecommitdiffstats
path: root/basic
diff options
context:
space:
mode:
authorarpit1912 <arpitbandejiya@gmail.com>2021-03-19 16:10:16 +0530
committerAndreas Heinisch <andreas.heinisch@yahoo.de>2021-03-20 11:57:48 +0100
commit54b3ada2e5ef9dcbc452509a7bbe39f0920572e2 (patch)
treeb28e5f7a1ff4d53267cd527f02a1c4cd3701ba75 /basic
parentcrashtesting: crash on reexport of tdf118346-1.odg to odg (diff)
downloadcore-54b3ada2e5ef9dcbc452509a7bbe39f0920572e2.tar.gz
core-54b3ada2e5ef9dcbc452509a7bbe39f0920572e2.zip
tdf#141050 Accept CCur with negative strings
the ImpStringToCurrency now increment the pointer on finding a '+' or '-' in sbxcurr.cxx file Change-Id: I4a1093ae0b4e52b6a61dc412bd5e7b95b1309e7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112734 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Diffstat (limited to 'basic')
-rw-r--r--basic/qa/basic_coverage/test_ccur_method.vb16
-rw-r--r--basic/source/sbx/sbxcurr.cxx2
2 files changed, 12 insertions, 6 deletions
diff --git a/basic/qa/basic_coverage/test_ccur_method.vb b/basic/qa/basic_coverage/test_ccur_method.vb
index b84ddafd5713..e4eef652441f 100644
--- a/basic/qa/basic_coverage/test_ccur_method.vb
+++ b/basic/qa/basic_coverage/test_ccur_method.vb
@@ -7,10 +7,16 @@
'
Function doUnitTest as Integer
+
+ doUnitTest = 0
+
' CCUR
- If (CCur("100") <> 100) Then
- doUnitTest = 0
- Else
- doUnitTest = 1
- End If
+ if (CCur("100") <> 100) Then Exit Function
+ ' tdf#141050 - passing a number with + sign
+ if (CCur("+100") <> 100) Then Exit Function
+ ' tdf#141050 - passing a number with - sign
+ if (CCur("-100") <> -100) Then Exit Function
+
+ doUnitTest = 1
+
End Function
diff --git a/basic/source/sbx/sbxcurr.cxx b/basic/source/sbx/sbxcurr.cxx
index 50b530cda193..416229afbc95 100644
--- a/basic/source/sbx/sbxcurr.cxx
+++ b/basic/source/sbx/sbxcurr.cxx
@@ -106,7 +106,7 @@ static sal_Int64 ImpStringToCurrency( const OUString &rStr )
OUStringBuffer sNormalisedNumString( sTmp.getLength() + nFractDigit );
if ( *p == '-' || *p == '+' )
- sNormalisedNumString.append( *p );
+ sNormalisedNumString.append( *p++ );
while ( *p >= '0' && *p <= '9' )
{