aboutsummaryrefslogtreecommitdiffstats
path: root/src/app
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-10-30 09:51:36 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-10-30 15:24:45 +0000
commit82eda46cc2155368a3110c670bad4c9f1817cef7 (patch)
treef915239a2a43b6171c8a37c2d316567a23d4e2c0 /src/app
parenta4586e52f2e027d9cd3810302569eec152bcfc54 (diff)
CLI: Ensure non-applicable commands refuse to take property assignments
Change-Id: Ib339a2649ecf32670f2f65d0bf159dcc960214df Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src/app')
-rw-r--r--src/app/qbs/parser/parsercommand.cpp16
-rw-r--r--src/app/qbs/parser/parsercommand.h1
2 files changed, 5 insertions, 12 deletions
diff --git a/src/app/qbs/parser/parsercommand.cpp b/src/app/qbs/parser/parsercommand.cpp
index b5aaace38..77ecb4ba8 100644
--- a/src/app/qbs/parser/parsercommand.cpp
+++ b/src/app/qbs/parser/parsercommand.cpp
@@ -89,6 +89,11 @@ void Command::addOneToAdditionalArguments(const QString &argument)
throwError(Tr::tr("Unexpected command line parameter '%1'."));
if (sepPos == 0)
throwError(Tr::tr("Empty key not allowed in assignment '%1'."));
+ if (!canResolve() && argument.contains(QLatin1Char(':'))
+ && !argument.startsWith(QLatin1String("config:"))) {
+ throw ErrorInfo(Tr::tr("The '%1' command does not support property assignments.")
+ .arg(representation()));
+ }
m_additionalArguments << argument;
}
@@ -331,17 +336,6 @@ QList<CommandLineOption::Type> CleanCommand::supportedOptions() const
};
}
-void CleanCommand::parseMore(QStringList &input)
-{
- addAllToAdditionalArguments(input);
- for (const QString &param : additionalArguments()) {
- if (param.contains(QLatin1Char(':')) && !param.startsWith(QLatin1String("config:"))) {
- throw ErrorInfo(Tr::tr("The '%1' command does not support property assignments.")
- .arg(representation()));
- }
- }
-}
-
QString InstallCommand::shortDescription() const
{
return Tr::tr("Install (parts of) a project.");
diff --git a/src/app/qbs/parser/parsercommand.h b/src/app/qbs/parser/parsercommand.h
index 4a9b12133..f5f1d00e9 100644
--- a/src/app/qbs/parser/parsercommand.h
+++ b/src/app/qbs/parser/parsercommand.h
@@ -129,7 +129,6 @@ private:
QString longDescription() const;
QString representation() const;
QList<CommandLineOption::Type> supportedOptions() const;
- void parseMore(QStringList &input);
};
class InstallCommand : public Command