Skip to content

Commit 9537a17

Browse files
committed
Update All Streams
1 parent a166555 commit 9537a17

File tree

3 files changed

+100
-36
lines changed

3 files changed

+100
-36
lines changed

src/main/java/de/mint/consoleline/event/error/ErrorPrintStream.java

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import de.mint.consoleline.service.JlineUtils;
44
import de.mint.consoleline.write.LogWriter;
5-
import org.jetbrains.annotations.Nullable;
65
import org.jline.reader.LineReader;
76

87
import java.io.PrintStream;
@@ -12,20 +11,52 @@ public record ErrorPrintStream(Charset charset) {
1211

1312
public void stream(final boolean log, final LineReader lineReader, final LogWriter logWriter) {
1413

15-
System.setErr(
16-
new PrintStream(System.err, false, this.charset) {
17-
@Override
18-
public void println(@Nullable final String message) {
19-
assert message != null;
20-
final String temp = message + "\n";
21-
lineReader.printAbove(temp);
14+
PrintStream jlineErr =
15+
new PrintStream(System.err, false, charset) {
16+
17+
private void jlinePrint(String msg) {
18+
lineReader.printAbove(msg);
2219
lineReader.getTerminal().writer().flush();
23-
if (log) {
24-
if (logWriter != null) {
25-
logWriter.insert(JlineUtils.cleanAnsiString(message));
26-
}
20+
21+
if (log && logWriter != null) {
22+
logWriter.insert(JlineUtils.cleanAnsiString(msg));
2723
}
2824
}
29-
});
25+
26+
@Override
27+
public void println(String x) {
28+
jlinePrint(x);
29+
}
30+
31+
@Override
32+
public void println() {
33+
jlinePrint("");
34+
}
35+
36+
@Override
37+
public void print(String s) {
38+
jlinePrint(s);
39+
}
40+
41+
@Override
42+
public PrintStream printf(String format, Object... args) {
43+
jlinePrint(String.format(format, args));
44+
return this;
45+
}
46+
47+
@Override
48+
public PrintStream format(String format, Object... args) {
49+
jlinePrint(String.format(format, args));
50+
return this;
51+
}
52+
53+
@Override
54+
public void write(byte[] buf, int off, int len) {
55+
String s = new String(buf, off, len, charset);
56+
jlinePrint(s);
57+
}
58+
};
59+
60+
System.setErr(jlineErr);
3061
}
3162
}

src/main/java/de/mint/consoleline/event/input/InputRunnable.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ public void run() {
5353
} else {
5454

5555
if (this.commandArgumentNotAvailableFormat() != null) {
56-
String[] formatData = this.commandArgumentNotAvailableFormat();
57-
Object[] args = Arrays.copyOfRange(formatData, 1, formatData.length);
58-
System.out.println(String.format(formatData[0], args));
56+
final String[] formatData = this.commandArgumentNotAvailableFormat();
57+
final Object[] args = Arrays.copyOfRange(formatData, 1, formatData.length);
58+
System.out.printf((formatData[0]) + "%n", args);
5959
} else {
6060
if (this.commandArgumentNotAvailable() != null) {
6161
System.out.println(this.commandArgumentNotAvailable());
@@ -65,9 +65,9 @@ public void run() {
6565
} else {
6666

6767
if (this.commandNotAvailableFormat() != null) {
68-
String[] formatData = this.commandNotAvailableFormat();
69-
Object[] args = Arrays.copyOfRange(formatData, 1, formatData.length);
70-
System.out.println(String.format(formatData[0], args));
68+
final String[] formatData = this.commandNotAvailableFormat();
69+
final Object[] args = Arrays.copyOfRange(formatData, 1, formatData.length);
70+
System.out.printf((formatData[0]) + "%n", args);
7171
} else {
7272
if (this.commandNotAvailable() != null) {
7373
System.out.println(this.commandNotAvailable());

src/main/java/de/mint/consoleline/event/output/OutputPrintStream.java

Lines changed: 50 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,55 @@
99

1010
public record OutputPrintStream(Charset charset) {
1111

12-
// A method that is used to override the standard output stream.
1312
public void stream(final boolean log, final LineReader lineReader, final LogWriter logWriter) {
14-
System.setOut(
15-
new PrintStream(System.out, false, this.charset) {
16-
@Override
17-
public void println(final String message) {
18-
assert message != null;
19-
final String temp = message + "\n";
20-
lineReader.printAbove(temp);
21-
lineReader.getTerminal().writer().flush();
22-
if (log) {
23-
if (logWriter != null) {
24-
logWriter.insert(JlineUtils.cleanAnsiString(message));
25-
}
26-
}
27-
}
28-
});
29-
}
13+
14+
final PrintStream jlineOut =
15+
new PrintStream(System.out, false, charset) {
16+
17+
private void jlinePrint(String msg) {
18+
lineReader.printAbove(msg);
19+
lineReader.getTerminal().writer().flush();
20+
21+
if (log && logWriter != null) {
22+
logWriter.insert(JlineUtils.cleanAnsiString(msg));
23+
}
24+
}
25+
26+
@Override
27+
public void println(String x) {
28+
jlinePrint(x);
29+
}
30+
31+
@Override
32+
public void println() {
33+
jlinePrint("");
34+
}
35+
36+
@Override
37+
public void print(String s) {
38+
jlinePrint(s);
39+
}
40+
41+
@Override
42+
public PrintStream printf(String format, Object... args) {
43+
jlinePrint(String.format(format, args));
44+
return this;
45+
}
46+
47+
@Override
48+
public PrintStream format(String format, Object... args) {
49+
jlinePrint(String.format(format, args));
50+
return this;
51+
}
52+
53+
@Override
54+
public void write(byte[] buf, int off, int len) {
55+
String s = new String(buf, off, len, charset);
56+
jlinePrint(s);
57+
}
58+
};
59+
60+
System.setOut(jlineOut);
61+
System.setErr(jlineOut);
62+
}
3063
}

0 commit comments

Comments
 (0)