// This will behave differently on desktop and Android. On the // desktop, it shows the program's output as it runs. On Android, // it does not. static S getProgramOutput(S progID) { if (isAndroid()) { PrintStream oldOut = System.out; PrintStream oldErr = System.err; new ByteArrayOutputStream baos; PrintStream ps = new PrintStream(baos, true); try { System.setOut(ps); System.setErr(ps); callMain(hotwire(progID)); ps.flush(); ret fromUtf8(baos.toByteArray()); // XXX - is this right? } finally { System.setOut(oldOut); System.setErr(oldErr); } } else { Class j = getJavaX(); Appendable oldSystemOut = (Appendable) get(j, "customSystemOut"); final new StringBuffer buf; set(j, "customSystemOut", new Appendable() { // only using this one public Appendable append(CharSequence cs) { buf.append(cs.toString()); return this; } public Appendable append(char c) { return this; } public Appendable append(CharSequence s, int start, int end) { return this; } }); try { callMain(hotwire(progID)); ret buf.toString(); } finally { set(j, "customSystemOut", oldSystemOut); } } }
download show line numbers debug dex old transpilations
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1001571 |
Snippet name: | getProgramOutput |
Eternal ID of this version: | #1001571/1 |
Text MD5: | 10e2d0f2c60ae986af242f5ad1918b1f |
Author: | stefan |
Category: | |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2015-10-25 02:59:13 |
Source code size: | 1308 bytes / 44 lines |
Pitched / IR pitched: | No / Yes |
Views / Downloads: | 613 / 837 |
Referenced in: | #1001573 - uploadProgramOutput #1002427 - Accellerating 629 (SPIKE) #1006654 - Standard functions list 2 (LIVE, continuation of #761) #3000382 - Answer for ferdie (>> t = 1, f = 0) |