Archived
0

Метод overrrideSysOutErr сделан публичным

This commit is contained in:
2015-12-15 15:42:29 +03:00
parent eced54c406
commit 7ce1ea74da
2 changed files with 9 additions and 13 deletions

View File

@@ -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);

View File

@@ -36,7 +36,11 @@ public class ShellPrintStream extends PrintStream {
@Override
public void print(String 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);
}
}