summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Keller <rainer.keller@digia.com>2013-07-29 11:24:53 +0200
committerRainer Keller <rainer.keller@digia.com>2013-07-29 14:39:36 +0300
commit19e63a00346133dcb4d5522a193616746327c19c (patch)
tree12e4fea0fda19f85206c268ec2b261b37df2ba26
parentbb952d2f605108ffb5a86bacc43f6498cd4d3cda (diff)
Remove argument from list in advance
Change-Id: I0ab91bce1f290f3a04f27e776eb88a2a385e87e8 Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
-rw-r--r--main.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/main.cpp b/main.cpp
index 4574542..e8deb74 100644
--- a/main.cpp
+++ b/main.cpp
@@ -168,35 +168,36 @@ int main(int argc, char **argv)
Config config = parseConfigFile();
while (!args.isEmpty()) {
- if (args[0] == "--port-range") {
- if (args.size() < 2) {
- qWarning("--port-range requires a range specification");
+ const QString arg(args.takeFirst());
+
+ if (arg == "--port-range") {
+ if (args.isEmpty()) {
+ fprintf(stderr, "--port-range requires a range specification\n");
return 1;
}
- range = Utils::PortList::fromString(args[1]);
- args.removeFirst();
+ range = Utils::PortList::fromString(args.takeFirst());
if (!range.hasMore()) {
qWarning("Invalid port range");
return 1;
}
- } else if (args[0] == "--debug-gdb") {
+ } else if (arg == "--debug-gdb") {
useGDB = true;
setpgid(0,0); // must be called before setsid()
setsid();
- } else if (args[0] == "--debug-qml") {
+ } else if (arg == "--debug-qml") {
useQML = true;
- } else if (args[0] == "--stop") {
+ } else if (arg == "--stop") {
stop();
return 0;
- } else if (args[0] == "--show-platform") {
+ } else if (arg == "--show-platform") {
printf("base:%s\nplatform:%s\n",
config.base.toLocal8Bit().constData(),
config.platform.toLocal8Bit().constData());
return 0;
} else {
+ args.prepend(arg);
break;
}
- args.removeFirst();
}
if (args.isEmpty()) {