From 3bc9f357714ab7e59cbdf28d0b449d3069dea401 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 11 May 2020 09:35:08 +0200 Subject: QSettings: port iniUnescapedKey() from int to char16_t The 'ch' never had to be a 32-bit variable. It only ever gets assigned 16-bit unsigned values, so make it a char16_t and thus implicitly convertible to QChar, even when QChar(int) is being deprecated or removed. Change-Id: I8391c393ca860f8f73f1495d7764dacd57275ea7 Reviewed-by: Volker Hilsheimer --- src/corelib/io/qsettings.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index 6840b9686c..c9122e5962 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -566,7 +566,7 @@ bool QSettingsPrivate::iniUnescapedKey(const QByteArray &key, int from, int to, int i = from; result.reserve(result.length() + (to - from)); while (i < to) { - int ch = (uchar)key.at(i); + char16_t ch = (uchar)key.at(i); if (ch == '\\') { result += QLatin1Char('/'); @@ -577,7 +577,7 @@ bool QSettingsPrivate::iniUnescapedKey(const QByteArray &key, int from, int to, if (ch != '%' || i == to - 1) { if (uint(ch - 'A') <= 'Z' - 'A') // only for ASCII lowercaseOnly = false; - result += QLatin1Char(ch); + result += ch; ++i; continue; } @@ -599,7 +599,7 @@ bool QSettingsPrivate::iniUnescapedKey(const QByteArray &key, int from, int to, } bool ok; - ch = key.mid(firstDigitPos, numDigits).toInt(&ok, 16); + ch = key.mid(firstDigitPos, numDigits).toUShort(&ok, 16); if (!ok) { result += QLatin1Char('%'); // ### missing U -- cgit v1.2.3