properly C-quote the manifest file name in the rc file

Change-Id: I8c8eb85d412becc8c4029c2aa393abf6f8e949b6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
bb10
Oswald Buddenhagen 2012-09-14 17:29:13 +02:00 committed by Qt by Nokia
parent d113faefb8
commit 53ab67cdfe
1 changed files with 11 additions and 1 deletions

View File

@ -355,6 +355,16 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t)
}
static QString cQuoted(const QString &str)
{
QString ret = str;
ret.replace(QLatin1Char('"'), QStringLiteral("\\\""));
ret.replace(QLatin1Char('\\'), QStringLiteral("\\\\"));
ret.prepend(QLatin1Char('"'));
ret.append(QLatin1Char('"'));
return ret;
}
void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
{
const ProString templateName = project->first("TEMPLATE");
@ -396,7 +406,7 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
project->values("QMAKE_CLEAN") << manifest_rc << manifest_res;
t << "\n\techo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "
<< '"' << QFileInfo(unescapeFilePath(manifest)).fileName() << "\">" << manifest_rc;
<< cQuoted(QFileInfo(unescapeFilePath(manifest)).fileName()) << ">" << manifest_rc;
if (generateManifest) {
t << "\n\tif not exist $(DESTDIR_TARGET) del " << manifest << ">NUL 2>&1";