changeset 36715 | ae6fa9280e0b |
parent 36501 | 93915076a341 |
child 36990 | ec0b843a7af5 |
--- a/langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java Wed Mar 23 13:44:53 2016 +0100 +++ b/langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java Wed Mar 23 13:40:42 2016 +0100 @@ -48,7 +48,7 @@ import jdk.internal.jline.NoInterruptUnixTerminal; import jdk.internal.jline.Terminal; import jdk.internal.jline.TerminalFactory; -import jdk.internal.jline.UnsupportedTerminal; +import jdk.internal.jline.TerminalSupport; import jdk.internal.jline.WindowsTerminal; import jdk.internal.jline.console.ConsoleReader; import jdk.internal.jline.console.KeyMap; @@ -70,7 +70,7 @@ this.input = new StopDetectingInputStream(() -> repl.state.stop(), ex -> repl.hard("Error on input: %s", ex)); Terminal term; if (System.getProperty("test.jdk") != null) { - term = new UnsupportedTerminal(); + term = new TestTerminal(input); } else if (System.getProperty("os.name").toLowerCase(Locale.US).contains(TerminalFactory.WINDOWS)) { term = new JShellWindowsTerminal(input); } else { @@ -80,7 +80,7 @@ in = new ConsoleReader(cmdin, cmdout, term); in.setExpandEvents(false); in.setHandleUserInterrupt(true); - in.setHistory(history = new EditingHistory(JShellTool.PREFS) { + in.setHistory(history = new EditingHistory(repl.prefs) { @Override protected CompletionInfo analyzeCompletion(String input) { return repl.analysis.analyzeCompletion(input); } @@ -538,4 +538,22 @@ } } + + private static final class TestTerminal extends TerminalSupport { + + private final StopDetectingInputStream input; + + public TestTerminal(StopDetectingInputStream input) throws Exception { + super(true); + setAnsiSupported(false); + setEchoEnabled(true); + this.input = input; + } + + @Override + public InputStream wrapInIfNeeded(InputStream in) throws IOException { + return input.setInputStream(super.wrapInIfNeeded(in)); + } + + } }