fdo#70319 "exponent followed by at least on digit" also for special case 0.0

Change-Id: I07e7917417b8a22cf6d64f2b7a447f9084b9fa2d
This commit is contained in:
Stephan Bergmann 2013-10-17 18:01:47 +02:00
parent 2ed29702ab
commit 7bbd58eafc
2 changed files with 10 additions and 0 deletions

View File

@ -81,6 +81,12 @@ public:
CPPUNIT_ASSERT_EQUAL(rtl_math_ConversionStatus_Ok, status);
CPPUNIT_ASSERT_EQUAL(sal_Int32(RTL_CONSTASCII_LENGTH("1")), end);
CPPUNIT_ASSERT_EQUAL(1.0, res);
res = rtl::math::stringToDouble(
rtl::OUString("0e"),
sal_Unicode('.'), sal_Unicode(','), &status, &end);
CPPUNIT_ASSERT_EQUAL(rtl_math_ConversionStatus_Ok, status);
CPPUNIT_ASSERT_EQUAL(sal_Int32(RTL_CONSTASCII_LENGTH("1")), end);
CPPUNIT_ASSERT_EQUAL(0.0, res);
}
CPPUNIT_TEST_SUITE(Test);

View File

@ -819,6 +819,10 @@ inline double stringToDouble(CharT const * pBegin, CharT const * pEnd,
// offset
while (p != pEnd && rtl::isAsciiDigit(*p))
++p;
if (p == pFirstExpDigit)
{ // no digits in exponent, reset end of scan
p = pExponent;
}
}
else
{