From c06106f28db343a090869b7d0f8638aa89f91640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Wed, 19 Sep 2012 15:40:41 +0200 Subject: Fix potential breakage in QString. Negation operator ("!") have precedence over bitwise and ("&"). Change-Id: I39e2d99da6eaa4477bbe35a1259f745e05c9841a Reviewed-by: Thiago Macieira --- src/corelib/tools/qstring.cpp | 6 +++--- tests/auto/corelib/tools/qstring/tst_qstring.cpp | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 570716e9a7..43c5c058f0 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -6999,7 +6999,7 @@ QString QString::arg(qlonglong a, int fieldWidth, int base, QChar fillChar) cons QString locale_arg; if (d.locale_occurrences > 0) { QLocale locale; - if (!locale.numberOptions() & QLocale::OmitGroupSeparator) + if (!(locale.numberOptions() & QLocale::OmitGroupSeparator)) flags |= QLocalePrivate::ThousandsGroup; locale_arg = locale.d->longLongToString(a, -1, base, fieldWidth, flags); } @@ -7043,7 +7043,7 @@ QString QString::arg(qulonglong a, int fieldWidth, int base, QChar fillChar) con QString locale_arg; if (d.locale_occurrences > 0) { QLocale locale; - if (!locale.numberOptions() & QLocale::OmitGroupSeparator) + if (!(locale.numberOptions() & QLocale::OmitGroupSeparator)) flags |= QLocalePrivate::ThousandsGroup; locale_arg = locale.d->unsLongLongToString(a, -1, base, fieldWidth, flags); } @@ -7178,7 +7178,7 @@ QString QString::arg(double a, int fieldWidth, char fmt, int prec, QChar fillCha if (d.locale_occurrences > 0) { QLocale locale; - if (!locale.numberOptions() & QLocale::OmitGroupSeparator) + if (!(locale.numberOptions() & QLocale::OmitGroupSeparator)) flags |= QLocalePrivate::ThousandsGroup; locale_arg = locale.d->doubleToString(a, prec, form, fieldWidth, flags); } diff --git a/tests/auto/corelib/tools/qstring/tst_qstring.cpp b/tests/auto/corelib/tools/qstring/tst_qstring.cpp index ab5d7ab6ac..2b00ec8c20 100644 --- a/tests/auto/corelib/tools/qstring/tst_qstring.cpp +++ b/tests/auto/corelib/tools/qstring/tst_qstring.cpp @@ -5339,11 +5339,15 @@ void tst_QString::compareRef() void tst_QString::arg_locale() { QLocale l(QLocale::English, QLocale::UnitedKingdom); + QString str("*%L1*%L2*"); + + QCOMPARE(str.arg(123456).arg(1234.56), QString::fromLatin1("*123,456*1,234.56*")); + QLocale::setDefault(l); + l.setNumberOptions(QLocale::OmitGroupSeparator); QLocale::setDefault(l); - QString str("*%L1*%L2*"); - str = str.arg(123456).arg(1234.56); - QCOMPARE(str, QString::fromLatin1("*123456*1234.56*")); + QCOMPARE(str.arg(123456).arg(1234.56), QString::fromLatin1("*123456*1234.56*")); + QLocale::setDefault(QLocale::C); } -- cgit v1.2.3