QTBUG-26035: Remove positive sign from start of string
authorTarja Sundqvist <tarja.sundqvist@digia.com>
Fri, 8 Jun 2012 08:33:41 +0000 (11:33 +0300)
committerQt by Nokia <qt-info@nokia.com>
Tue, 26 Jun 2012 06:14:17 +0000 (08:14 +0200)
Updated removeGroupSeparators(QLocalePrivate::CharBuff *num) so that it
removes also positive sign ('+') at the start of the string. Auto test
included.

Task-number: QTBUG-26035

Change-Id: I8e0e071d6c682d9192a8c6bb2f282510e21b3c48
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
src/corelib/tools/qlocale_tools.cpp
tests/auto/corelib/tools/qlocale/tst_qlocale.cpp

index 2d6b804..565144b 100644 (file)
@@ -249,7 +249,7 @@ bool removeGroupSeparators(QLocalePrivate::CharBuff *num)
             // Check that we are not missing a separator
             if (i < decpt_idx
                     && (decpt_idx - i) % 4 == 0
-                    && !(i == 0 && c == '-')) // check for negative sign at start of string
+                    && !(i == 0 && (c == '-' || c == '+'))) // check for negative or positive sign at start of string
                 return false;
             ++i;
         }
index ddfa23e..d5bcf07 100644 (file)
@@ -134,6 +134,7 @@ private slots:
     void listPatterns();
 
     void measurementSystems();
+    void QTBUG_26035_positivesign();
 
 private:
     QString m_decimal, m_thousand, m_sdate, m_ldate, m_time;
@@ -2051,5 +2052,22 @@ void tst_QLocale::measurementSystems()
     QCOMPARE(locale.measurementSystem(), QLocale::MetricSystem);
 }
 
+void tst_QLocale::QTBUG_26035_positivesign()
+{
+    QLocale locale(QLocale::C);
+    bool ok (false);
+    QCOMPARE(locale.toInt(QString("+100,000"), &ok), 100000);
+    QVERIFY(ok);
+    ok = false;
+    QCOMPARE(locale.toInt(QString("+100,000,000"), &ok), 100000000);
+    QVERIFY(ok);
+    ok = false;
+    QCOMPARE(locale.toLongLong(QString("+100,000"), &ok), (qlonglong)100000);
+    QVERIFY(ok);
+    ok = false;
+    QCOMPARE(locale.toLongLong(QString("+100,000,000"), &ok), (qlonglong)100000000);
+    QVERIFY(ok);
+}
+
 QTEST_MAIN(tst_QLocale)
 #include "tst_qlocale.moc"