adequately shell-escape generated sed commands

Change-Id: I39c8c4ab3da69bd21beace56f5cf3070301ac015
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
Oswald Buddenhagen 2013-11-20 13:53:04 +01:00 committed by The Qt Project
parent 56493268f7
commit ef510adea5
2 changed files with 12 additions and 1 deletions

View File

@ -43,6 +43,9 @@
#include "option.h"
#include "cachekeys.h"
#include "meta.h"
#include <ioutils.h>
#include <qdir.h>
#include <qfile.h>
#include <qtextstream.h>
@ -52,6 +55,7 @@
#include <qbuffer.h>
#include <qsettings.h>
#include <qdatetime.h>
#if defined(Q_OS_UNIX)
#include <unistd.h>
#else
@ -3345,11 +3349,17 @@ QString MakefileGenerator::installMetaFile(const ProKey &replace_rule, const QSt
const ProString match = project->first(ProKey(replace_rules.at(r) + ".match")),
replace = project->first(ProKey(replace_rules.at(r) + ".replace"));
if (!match.isEmpty() /*&& match != replace*/)
ret += " -e \"s," + match + "," + replace + ",g\"";
ret += " -e " + shellQuote("s," + match + "," + replace + ",g");
}
ret += " \"" + src + "\" >\"" + dst + "\"";
}
return ret;
}
QString MakefileGenerator::shellQuote(const QString &str)
{
return isWindowsShell() ? QMakeInternal::IoUtils::shellQuoteWin(str)
: QMakeInternal::IoUtils::shellQuoteUnix(str);
}
QT_END_NAMESPACE

View File

@ -271,6 +271,7 @@ public:
virtual bool mergeBuildProject(MakefileGenerator * /*other*/) { return false; }
virtual bool openOutput(QFile &, const QString &build) const;
bool isWindowsShell() const { return Option::dir_sep == QLatin1String("\\"); }
QString shellQuote(const QString &str);
};
inline void MakefileGenerator::setNoIO(bool o)