From 7ce1ea74dadcaa98fac1429d4c778eec53bce22a Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Tue, 15 Dec 2015 15:42:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20overrrideSysOu?= =?UTF-8?q?tErr=20=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=20=D0=BF=D1=83?= =?UTF-8?q?=D0=B1=D0=BB=D0=B8=D1=87=D0=BD=D1=8B=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/dmitriymx/shell/Shell.java | 9 +++------ .../java/ru/dmitriymx/shell/ShellPrintStream.java | 13 ++++++------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/main/java/ru/dmitriymx/shell/Shell.java b/src/main/java/ru/dmitriymx/shell/Shell.java index a55401a..de971e1 100644 --- a/src/main/java/ru/dmitriymx/shell/Shell.java +++ b/src/main/java/ru/dmitriymx/shell/Shell.java @@ -15,7 +15,7 @@ import java.io.PrintStream; public class Shell { public static final ArgumentCompleter.ArgumentDelimiter DELIMITER = new ArgumentCompleter.WhitespaceArgumentDelimiter(); - private PrintStream sysOut, sysErr; + private PrintStream sysErr; private ShellPrintStream newErr; private String promt; protected ConsoleReader console; @@ -24,7 +24,7 @@ public class Shell { protected boolean run = false; public void start() throws IOException, InterruptedException { - overrideSysErr(); + if (sysErr == null) overrideSysOutErr(); console = new ConsoleReader(System.in, sysErr); if (promt == null) promt = ":"; @@ -48,8 +48,6 @@ public class Shell { newErr.setConsoleReader(null); console.shutdown(); - System.setOut(sysOut); - System.setErr(sysErr); } public void setPromt(String promt) { //FIXME коостыли!! @@ -78,8 +76,7 @@ public class Shell { /** * Подмена стандартных SysErr и SysOut */ - private void overrideSysErr() { - sysOut = System.out; + public void overrideSysOutErr() { sysErr = System.err; newErr = new ShellPrintStream(sysErr); System.setErr(newErr); diff --git a/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java b/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java index fbc12f6..baf6919 100644 --- a/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java +++ b/src/main/java/ru/dmitriymx/shell/ShellPrintStream.java @@ -36,7 +36,11 @@ public class ShellPrintStream extends PrintStream { @Override public void print(String s) { - println(s); + if (consoleReader != null) { + println(s); + } else { + super.print(s); + } } @Override @@ -57,12 +61,7 @@ public class ShellPrintStream extends PrintStream { } writer.flush(); } else { - super.print(ConsoleReader.RESET_LINE); - if (formatter != null) { - super.print(formatter.format(s)); - } else { - super.print(s); - } + super.println(s); } }