Add functions for facilitating adding UTF-8 and US-ASCII strings

Change-Id: Ief874765cd7b43798de3fffd15a9c0b4dc82a64e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
bb10
Thiago Macieira 2019-06-19 17:30:28 -07:00
parent 84056cdca1
commit 329eef34f4
2 changed files with 13 additions and 3 deletions

View File

@ -236,6 +236,15 @@ public:
elements.append(QtCbor::Element(addByteData(data, len), type,
QtCbor::Element::HasByteData | extraFlags));
}
void appendAsciiString(const QString &s);
void appendAsciiString(const char *str, qsizetype len)
{
appendByteData(str, len, QCborValue::String, QtCbor::Element::StringIsAscii);
}
void appendUtf8String(const char *str, qsizetype len)
{
appendByteData(str, len, QCborValue::String);
}
void append(QLatin1String s)
{
if (!QtPrivate::isAscii(s))

View File

@ -894,9 +894,10 @@ bool Parser::parseString()
// no escape sequences, we are done
if (isUtf8) {
container->appendByteData(start, json - start - 1, QCborValue::String,
isAscii ? QtCbor::Element::StringIsAscii
: QtCbor::Element::ValueFlags {});
if (isAscii)
container->appendAsciiString(start, json - start - 1);
else
container->appendUtf8String(start, json - start - 1);
END;
return true;
}