fix digitValue() returned 0 instead of -1 for invalid ucs4 characters
authorKonstantin Ritt <ritt.ks@gmail.com>
Tue, 10 Apr 2012 11:53:42 +0000 (14:53 +0300)
committerQt by Nokia <qt-info@nokia.com>
Tue, 10 Apr 2012 23:42:12 +0000 (01:42 +0200)
Task-number: QTBUG-20318

Change-Id: I96c4c2b042bad478b7c704669e7ea0d574d3b22f
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/corelib/tools/qchar.cpp
tests/auto/corelib/tools/qchar/tst_qchar.cpp

index 6efd9f2..1ce19ec 100644 (file)
@@ -717,7 +717,7 @@ int QChar::digitValue(ushort ucs2)
 int QChar::digitValue(uint ucs4)
 {
     if (ucs4 > UNICODE_LAST_CODEPOINT)
-        return 0;
+        return -1;
     return qGetProp(ucs4)->digitValue;
 }
 
index e72af11..215f4c1 100644 (file)
@@ -523,6 +523,9 @@ void tst_QChar::digitValue()
     QVERIFY(QChar::digitValue((ushort)0x1040) == 0);
     QVERIFY(QChar::digitValue((uint)0x1049) == 9);
     QVERIFY(QChar::digitValue((uint)0x1040) == 0);
+
+    QVERIFY(QChar::digitValue((ushort)0xd800) == -1);
+    QVERIFY(QChar::digitValue((uint)UNICODE_LAST_CODEPOINT + 1) == -1);
 }
 
 void tst_QChar::decomposition()