From 7abf8ae477bf051624041bc851db4e90e8392c8d Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 10 Dec 2024 11:30:49 +0100 Subject: [PATCH] Fix compile with Qt 6.9 The QString::arg overload that accepts a base is explicitly disabled for everything that can be cast to a QAnyStringView, so for example T==char32_t or T==char16_t will is not usable in that overload. And the overload that accepts those types does not allow to set the base. Fix this by using T==int32_t or T==int16_t. Change-Id: Ib23a2ced7e03dab6de50458d36bc27689c6f8da9 Reviewed-by: hjk --- src/libs/utils/stringutils.cpp | 2 +- src/plugins/debugger/watchutils.cpp | 4 ++-- src/plugins/fakevim/fakevimhandler.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp index e70a7fbb592..470c9961cdf 100644 --- a/src/libs/utils/stringutils.cpp +++ b/src/libs/utils/stringutils.cpp @@ -268,7 +268,7 @@ QString asciify(const QString &input) if (c.isPrint() && c.unicode() < 128) result.append(c); else - result.append(QString::fromLatin1("u%1").arg(c.unicode(), 4, 16, QChar('0'))); + result.append(QString::fromLatin1("u%1").arg(int16_t(c.unicode()), 4, 16, QChar('0'))); } return result; } diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp index 2e68578cf56..61406beebcc 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -254,8 +254,8 @@ QString escapeUnprintable(const QString &str, int unprintableBase) QString encoded; while (arrayView.size() >= 4) { - char32_t c; - memcpy(&c, arrayView.constData(), sizeof(char32_t)); + int32_t c; + memcpy(&c, arrayView.constData(), sizeof(int32_t)); if (QChar::isPrint(c)) encoded += toQString(arrayView.sliced(0, 4)); diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 29257505f21..2311e357b44 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -975,7 +975,7 @@ QString quoteUnprintable(const QString &ba) else if (cc == '\n') res += ""; else - res += QString("\\x%1").arg(c.unicode(), 2, 16, QLatin1Char('0')); + res += QString("\\x%1").arg(int16_t(c.unicode()), 2, 16, QLatin1Char('0')); } return res; }