Fix escaping of < and > in QMake's XML generator
Having those characters in QMAKE_EXTRA_COMPILERS broke the generated VS project file. They must be replaced by XML entities. Fixes: QTBUG-1935 Change-Id: Iff1edbeabec4cedef777071682412970b7769f19 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
parent
e66f247ccf
commit
7f4f346e51
@ -113,7 +113,8 @@ QString XmlOutput::doConversion(const QString &text)
|
|||||||
|
|
||||||
// this is a way to escape characters that shouldn't be converted
|
// this is a way to escape characters that shouldn't be converted
|
||||||
for (int i=0; i<text.count(); ++i) {
|
for (int i=0; i<text.count(); ++i) {
|
||||||
if (text.at(i) == QLatin1Char('&')) {
|
const QChar c = text.at(i);
|
||||||
|
if (c == QLatin1Char('&')) {
|
||||||
if ( (i + 7) < text.count() &&
|
if ( (i + 7) < text.count() &&
|
||||||
text.at(i + 1) == QLatin1Char('#') &&
|
text.at(i + 1) == QLatin1Char('#') &&
|
||||||
text.at(i + 2) == QLatin1Char('x') &&
|
text.at(i + 2) == QLatin1Char('x') &&
|
||||||
@ -122,12 +123,15 @@ QString XmlOutput::doConversion(const QString &text)
|
|||||||
} else {
|
} else {
|
||||||
output += QLatin1String("&");
|
output += QLatin1String("&");
|
||||||
}
|
}
|
||||||
|
} else if (c == QLatin1Char('<')) {
|
||||||
|
output += QLatin1String("<");
|
||||||
|
} else if (c == QLatin1Char('>')) {
|
||||||
|
output += QLatin1String(">");
|
||||||
} else {
|
} else {
|
||||||
QChar c = text.at(i);
|
|
||||||
if (c.unicode() < 0x20) {
|
if (c.unicode() < 0x20) {
|
||||||
output += QString("&#x%1;").arg(c.unicode(), 2, 16, QLatin1Char('0'));
|
output += QString("&#x%1;").arg(c.unicode(), 2, 16, QLatin1Char('0'));
|
||||||
} else {
|
} else {
|
||||||
output += text.at(i);
|
output += c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user