diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/InterpreterLoop.scala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/InterpreterLoop.scala b/src/compiler/scala/tools/nsc/InterpreterLoop.scala index 04be5e9e6a..e1a2c80e98 100644 --- a/src/compiler/scala/tools/nsc/InterpreterLoop.scala +++ b/src/compiler/scala/tools/nsc/InterpreterLoop.scala @@ -167,6 +167,7 @@ class InterpreterLoop(in0: Option[BufferedReader], out: PrintWriter) { return } val oldIn = in + val oldReplay = replayCommandsRev try { val inFile = new BufferedReader(fileIn) in = new SimpleReader(inFile, out, false) @@ -175,6 +176,7 @@ class InterpreterLoop(in0: Option[BufferedReader], out: PrintWriter) { repl } finally { in = oldIn + replayCommandsRev = oldReplay fileIn.close } } @@ -260,6 +262,20 @@ class InterpreterLoop(in0: Option[BufferedReader], out: PrintWriter) { } } + def loadFiles(settings: Settings) { + settings match { + case settings: GenericRunnerSettings => + for (filename <- settings.loadfiles.value) { + val cmd = ":load " + filename + command(cmd) + replayCommandsRev = cmd :: replayCommandsRev + out.println() + } + case _ => + } + } + + def main(settings: Settings) { this.settings = settings @@ -281,6 +297,8 @@ class InterpreterLoop(in0: Option[BufferedReader], out: PrintWriter) { createInterpreter() + loadFiles(settings) + try { if (interpreter.reporter.hasErrors) { return // it is broken on startup; go ahead and exit |