diff options
| author | Thiago Macieira <thiago.macieira@intel.com> | 2025-01-10 15:13:50 -0300 |
|---|---|---|
| committer | Thiago Macieira <thiago.macieira@intel.com> | 2025-01-13 16:14:03 -0300 |
| commit | 3bc8ebc12f7d7e5578d40b1c00a4fe77d044f871 (patch) | |
| tree | 99a77e1929a6952e49649acc27367a0463646e2e | |
| parent | ff484b3111c8982012ae91a1eb6f17746800235a (diff) | |
QString: put quotes around the test string in arg() qWarning
So it's less ambiguous in case there's a comma in either the pattern
string or the replacement one. It will still be ambiguous for strings
with quotes themselves, but escaping requires content not present in the
bootstrap library.
Drive-by test that unsigned and floating point also complain.
Pick-to: 6.9
Change-Id: Ia8ca184a7d54b240d653fffd631dbcb7f9e1c97d
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
| -rw-r--r-- | src/corelib/text/qstring.cpp | 4 | ||||
| -rw-r--r-- | tests/auto/corelib/text/qstring/tst_qstring.cpp | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index 14accbb7041..935b7363cf4 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -8765,7 +8765,7 @@ QString QString::arg_impl(QAnyStringView a, int fieldWidth, QChar fillChar) cons ArgEscapeData d = findArgEscapes(*this); if (Q_UNLIKELY(d.occurrences == 0)) { - qWarning("QString::arg: Argument missing: %ls, %ls", qUtf16Printable(*this), + qWarning("QString::arg: Argument missing: \"%ls\", \"%ls\"", qUtf16Printable(*this), qUtf16Printable(a.toString())); return *this; } @@ -8905,7 +8905,7 @@ QString QString::arg_impl(double a, int fieldWidth, char format, int precision, ArgEscapeData d = findArgEscapes(*this); if (d.occurrences == 0) { - qWarning("QString::arg: Argument missing: %s, %g", toLocal8Bit().data(), a); + qWarning("QString::arg: Argument missing: \"%ls\", %g", qUtf16Printable(*this), a); return *this; } diff --git a/tests/auto/corelib/text/qstring/tst_qstring.cpp b/tests/auto/corelib/text/qstring/tst_qstring.cpp index cefe9648b04..acb88f01776 100644 --- a/tests/auto/corelib/text/qstring/tst_qstring.cpp +++ b/tests/auto/corelib/text/qstring/tst_qstring.cpp @@ -6671,7 +6671,7 @@ void tst_QString::arg() QTest::ignoreMessage(QtWarningMsg, nonAsciiArgWarning); QCOMPARE( QString("%2²%1").arg("a").arg("b"), QString("ba") ); #else - QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: %¹, foo"); + QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \"%¹\", \"foo\""); QCOMPARE(u"%¹"_s.arg(foo), u"%¹"); QCOMPARE(u"%¹%1"_s.arg(foo), u"%¹foo"); QCOMPARE(u"%1²"_s.arg(u"E=mc"_s), u"E=mc²"); @@ -6725,11 +6725,15 @@ void tst_QString::arg() #endif QCOMPARE(s4.arg(u8'a'), QLatin1String("[a]")); - QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: , foo"); + QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \"\", \"foo\""); QCOMPARE(QString().arg(foo), QString()); QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \"\", 0"); QCOMPARE( QString().arg(0), QString() ); QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \"\", 0"); + QCOMPARE( QString().arg(0U), QString() ); + QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \"\", 0"); + QCOMPARE( QString().arg(0.0), QString() ); + QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \"\", 0"); QCOMPARE(QString(u""_s).arg(0), u""_s); QTest::ignoreMessage(QtWarningMsg, "QString::arg: Argument missing: \" \", 0"); QCOMPARE(QString(u" "_s).arg(0), " "_L1); |
