diff --git a/app/src/processing/app/EditorConsole.java b/app/src/processing/app/EditorConsole.java index e8dc578f1..002fb3edd 100644 --- a/app/src/processing/app/EditorConsole.java +++ b/app/src/processing/app/EditorConsole.java @@ -305,16 +305,17 @@ public class EditorConsole extends JScrollPane { public void flush() { } public void write(byte b[]) { // appears never to be used -// if (currentConsole.isDisplayable()) { - currentConsole.write(b, 0, b.length, err); -// } else { -// systemOut.println("not displayable"); -// if (err) { -// systemErr.write(b, 0, b.length); -// } else { -// systemOut.write(b, 0, b.length); -// } -// } + if (currentConsole != null) { + currentConsole.write(b, 0, b.length, err); + } else { + try { + if (err) { + systemErr.write(b); + } else { + systemOut.write(b); + } + } catch (IOException e) { } // just ignore, where would we write? + } OutputStream echo = err ? stderrFile : stdoutFile; if (echo != null) { @@ -329,18 +330,17 @@ public class EditorConsole extends JScrollPane { } public void write(byte b[], int offset, int length) { - currentConsole.write(b, offset, length, err); -// if (currentConsole.isDisplayable()) { -// systemOut.println("is displayable"); -// currentConsole.write(b, offset, length, err); -// } else { -// systemOut.println("not displayable"); -// if (err) { -// systemErr.write(b, offset, length); -// } else { -// systemOut.write(b, offset, length); -// } -// } + if (currentConsole != null) { + currentConsole.write(b, offset, length, err); + } else { + try { + if (err) { + systemErr.write(b); + } else { + systemOut.write(b); + } + } catch (IOException e) { } // just ignore, where would we write? + } OutputStream echo = err ? stderrFile : stdoutFile; if (echo != null) { @@ -356,7 +356,12 @@ public class EditorConsole extends JScrollPane { public void write(int b) { single[0] = (byte)b; - currentConsole.write(single, 0, 1, err); + if (currentConsole != null) { + currentConsole.write(single, 0, 1, err); + } else { + // redirect for all the extra handling above + write(new byte[] { (byte) b }, 0, 1); + } OutputStream echo = err ? stderrFile : stdoutFile; if (echo != null) {