summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLex Spoon <lex@lexspoon.org>2006-07-12 08:38:43 +0000
committerLex Spoon <lex@lexspoon.org>2006-07-12 08:38:43 +0000
commita78b5c7699a82252e0bdcd347497cb58a0a67830 (patch)
treef681eec3b04d7b5cd263ad8c63a1db92d90f9ed4
parent02ab29428304c89211b72c98eb9a02cf698c64b7 (diff)
downloadscala-a78b5c7699a82252e0bdcd347497cb58a0a67830.tar.gz
scala-a78b5c7699a82252e0bdcd347497cb58a0a67830.tar.bz2
scala-a78b5c7699a82252e0bdcd347497cb58a0a67830.zip
tweak the loop over settings,
so that bad settings are not tried twice
-rw-r--r--src/compiler/scala/tools/nsc/CompilerCommand.scala11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/CompilerCommand.scala b/src/compiler/scala/tools/nsc/CompilerCommand.scala
index 4f953ba12b..1678460416 100644
--- a/src/compiler/scala/tools/nsc/CompilerCommand.scala
+++ b/src/compiler/scala/tools/nsc/CompilerCommand.scala
@@ -47,17 +47,20 @@ class CompilerCommand(arguments: List[String], error: String => unit, interactiv
// initialization
var args = arguments
var ok = true
+
while (!args.isEmpty && ok) {
- val args0 = args
if (args.head.startsWith("-")) {
if (interactive) {
error("no options can be given in interactive mode")
ok = false
} else {
- for (val setting <- settings.allSettings)
- args = setting.tryToSet(args);
+ val args0 = args
+ for(val setting <- settings.allSettings)
+ if(args eq args0)
+ args = setting.tryToSet(args)
+
if (args eq args0) {
- error("unknown option: '" + args.head + "'")
+ error("bad option: '" + args.head + "'")
ok = false
}
}