From b6de073b00b1d80f479641d96e8edd5c6f9dc253 Mon Sep 17 00:00:00 2001 From: krakjoe Date: Sat, 30 Nov 2013 00:25:05 +0000 Subject: [PATCH] ... --- tutorials/java/dist/phpdbg-ui.jar | Bin 37975 -> 37798 bytes tutorials/java/src/phpdbg/ui/DebugSocket.java | 47 ++++++++---------- .../java/src/phpdbg/ui/JTerminalPane.java | 5 +- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/tutorials/java/dist/phpdbg-ui.jar b/tutorials/java/dist/phpdbg-ui.jar index b98dace3e2381ea5e2c855cccd8e12ac878fc19d..b5b63649144b88149a90cf611a395d27fe8839d0 100644 GIT binary patch delta 3474 zcmZ8k3s_ZE7XH_{_i`?WjS2#yqM&HVOHokMN=?j~l%l3`%%(C86*bCCEYTaVn(K7Xg(U7tjx@5#xirXaT@zxx+&IBTuF-utoEKKJuA&gvS+ z6b|zFJs=1)_f?v7C)T&2XN?fqqmrs9;9Nyim+edm#K!uj<;#rH(W{#S`nHCxtZWn7 zb8+k20CJ_7hrXB`i9UE-!4nFmC@AwV71NXoDR|OFxrazh*TD>xJ*C5^)%+O`&tj&6 z=UmM4@H}RFh`}5Mb5&uU$|^imqDm?2g$U;d@q&j1SQx}24|!PZVF{KhSf-jUs`YXY zE3nc-4qkGx%0mZrnuC`WR4aHz6;>;#iNYGZ8iloZO+l@T*FAK`Iu~zvSdR^=y-}$; z7n{Vp}A(V~3{tcHNoaPO%5PZ8kKzjeRxh_UKu(ck!-^ zU36`uOlEok?lQO@{SERlz~DyQWN-rpy4Y>-A@&#y!a#$;7-;V^@huAQk-=|pv%y|` zY;dO<@55d8d6OPpfX@vM;tPXAd~NV8?qWoPf8#p^-`i`Vle?V2e++)W ze+^FJl)?XSz~D!mc5%kwEY7)j&)~cUxqyp;w)W%LM0+ACB498E4YoEqEgB+59Pt_P zOTZqDj*pJOaf1T<(}>FyjufZbrcGMJ8VTZWu0$HDM;mD(O>NeI#JWCBVtf&S5#vf8 zeXuSVo8j1km~Dk<$0O1gf_`ujs|&-E7OQI$#$1^&<}!sbmx8#zE>akCorwLkFTgEu zaI2jjccT>AJ#m=@w^5RZ0AUZ@j^7e1r4b}dX$&V!sdrzP(s+K{L0WzG;>#r`yw&!P zzm0z9$EW6~UlaC`)97~yIZfd^kB%;WH^9Zvvtjc=ji$%r2hcPtA-Vq*)6}1t#=~hq z8#pfRraicpjShxga=>Jca~@HE)7{QV=q9yxXTqvbWjtfJF%a8%|={XkLyTxw2Kq_@Q55tObLmV*JV8*>t&N-QnO_% z_u&%mEr;Z!{K(Oda!#@G9qy)VmHmpHD0Z`S;&i8T7>namKDVQg@GQ?7xWg{XE{=Pi z%+r+4TFd3x8Hn2u8pLB#$nC#_3x6+$@Z=B0c-)OAFbvP&9(J1F<3-$uS1=sw@BlVq zBzB+(A7Kw<{g|$f1dq8c#;#kmuG(Bg^mp-C;;%VF8`yF@`e!=&(DP3ra?iqT;JUB^ zRqS9=7?ui4k68&D{j=irYkB2T<;}UPbz7g_pvT%?!v6NB937wQP#oru>Qo!X@mV*! z${(J)zH1Y`X`3HTd*es~a3sMdKbRHj>v1t(j$|XLR`5y?s}M_-|I(RLT zRIP{Cu}+7)v6^DN4mY^i7(|_iO?q9`>rJ&q@2D-yzWVw=!EOZ~Mqv*=QfjY@k3FR7Wtxh83jXBb6Z|=dzbM|XI-e@_Sr7*l zf3BQ^N_`Q;A;o_U;&2d0g7}iRLl8%U_+8Jq&3RhB%bdZilu97q(oh03`s;i7-N|r0xMmlSNE|OzQ$F{w`tC4P! z%WRG0NsK`Kc9$Lo&taC4o^mx=m0}CVr@Wk95{Rs1bJI&M)ApE{7OY464SHy8>BKhq8SHIk99_BvGxZydBdYSN zYowMdso5yyLH8pKb1;`>8iQ7thYE7q=_goS>|>6EZl%hdXvrE*W=Bk8b#!4z%wrqr z!v@k9_w&LY&R`F)Z;oKW7EwBi+|ld{W7rRi8F(zpF%D00RKf1JgxzrkCbEZ2;?XSS zchqE_!pHFed+i=3y`RZ`Mys!ARn~)<-op>b!E7m($^nM2!+gBJe2ZzgfRvwZZ*P^EPCDf1WpLP4wrY{*CCFpUdnuQ8Tuga0uD28n?I$OtgM?lB}SUR zM1g}R+jLRFjc MFV+uCo2R4y1E+i7lmGw# delta 3799 zcmZWs30##`7XP379(<3Fi|m_#fZ_^xsP3a z;}C!}3bc`l*?!2t9079$R0{aLjd^ejHDAC23s2hc!&CC|w5&ZNug}W%g*Ki;m4N3h zEVA(e7TXBMivpI2K((yZ*r{Q zC{On`!46Xvy5A-^OUnvM#K=b>F`mL;A2ou{L9HF7&FMi*vsDSL$7W9 zI(*RM_p?Y__%h7kwM^QvL$x3d{E^17X3!1Q54WlYe4;r* ze?Sc}Pe=5kCbKtUy}KTXc|kiF>AfUaXwnC>+dtJnMA6m!_)*&6CDxE)LJ^pU#}J4 zNk1r;k{tP~K*7RS;S5jGcY;;C>ZdXoXQ(VM4p))F=MTl7jT8o&jOZBmgIw4T@rN44 za10*9SQO%6Ohqo{;1N8FM^VGvRTz&=cpTd?0k5L~Z(m3=M5X%yicrr;-( zaPgMoA}Y{~85D|H6ph)GfVtESm6VEkl#cn7g$0y@CuzJJPtjyNLsRiA&B8*Ohbmf% zB~*uMT7_C#ixpIlI@*nu^cGgpajfPfETs>yj80=YeaGuR@cJ)UseG|Yg!tH6zwS$yJQDP->x!SHfCg!^c}8CEP=V1!>7+FT%>P@Wf?AsVhjfFwH`F zGomb1T*1RkTbO&c27I$D%!v9eXKV`+hrwne?34Vl`WtpG!)oD#aB<42 z!b~rmg&!H)9OF8kc0UY^zB%Z5npefNbI4TR+O8EJO}wDwy)miC%TMX@suzEmJk%0? zr?j0t!({q*yqudeG7^v{jt!VyL6Pp;CKTtDm*2PrWZV2bHv4f)su!@ug{^{lpax=_ zg;#BM|228p?#I*)8#}Q}UU{kp!XvM{E$nfj!Ny+fv$0?1=>Z%Rz{7MW4q151LZgMl zV(E`=8*ih@5AWbzKfH${@_JNs9TRX|zzKi6kCQ@uVBtd>9k5xzM*=>!@d-Y4;WNRX zi_8~7opRx{;4g*qC!xM_;m?APLrXIv9|ST6kR!UdNZJTW_rqa~*R z9|67`FIi^s#E#_hcqX1A@-r_?t_tKBIT;q&7WrGGO?Y9cdA{(ui~wpwXyYBJc{3|g zvrCIhr)jRvKutjutSJQf7KLgGlb3Lc&=e^kiUJ9d@;%JNqR@nBO>HU0qF7CF)Xt)K zkxdX;28q<32YZCsQ8e7`uc-qiS=3QeCsbS1SyLD4s;L_#Yf7Q+nr_2Ono_BUMLjk3 z5?g81n{C~^VYCk5tm%ct`33B272U3>5B25PG~GcF1d7p=PW^ZZ&uhAq`ZH^)ureYw z)?%HeOcC>m$xZ9Q`~fu3Q#++6Iqsq?^KNlA#hH_n;~WIWrEwl>>U!F6w8Y2nYi^M; zU^C3e<(=EE=2_E#g#Fx+;mogxlLtxrUA*itR1xRy&l9?m-&$uf-%0t}DSsJQ#N9$> zat2>EXL1EOk&eZ9k$XTeQm_Qo%vs3mx63%ZLyEn|Laha3VX1{>QhGHly#9X+JUDAO zQY`12sps(uBKHVZKN`{8yyLlfcjgY4%Dt^OH}6btNdvf{W%H5F;Wjmzof^w6ESKBY zcy3@t{I8Uo);ttr0XOrfQO1rvfjVyDYcQSL+)Tcv&cYj*jV2xm?_n;Eagd+zj?du6 zw|EkjZuasKzG>%huX~v{_^^2oPtiJ#wTL&bWXj2EAH24j%W=QLGes^A=Wb-|oHtLz zp`68P-k~_4W9-CCE@#P834B{P7MC|qh9tF|EFh{Smt}v&=EO0(1zm13IbGM7gMYZ;!ZP(0UQ%ax z@ce~`&fj?Ge2+EiJl3h7u|ZwLCT_>|d>Py7aAKRoh1VP!I~+mSuVWY&bbL}q!! zpez$y6G5j;S&jUpGb>r>Vxm{*WKC$i2;uOBOT9Qyd157%*Zwvx__4M&SvGaAja9i_ z4An;TYVGhNhLH+$wEkKY6_fTX9>+sT1{0F5?`OPmfnSQ(R%3sEG zAWzgS!lTkyILutC4QVfeza25xWj8Lc3R(w_8Dv7l!LcS*Evu}pY-_4bkZ)?WNd6C7 C8!5*C diff --git a/tutorials/java/src/phpdbg/ui/DebugSocket.java b/tutorials/java/src/phpdbg/ui/DebugSocket.java index bbd7d34a44..4542cbf70d 100644 --- a/tutorials/java/src/phpdbg/ui/DebugSocket.java +++ b/tutorials/java/src/phpdbg/ui/DebugSocket.java @@ -76,37 +76,33 @@ public class DebugSocket implements Runnable { if (reader) { /* The reader thread part will wait() until there is input */ Socket socket = new Socket(this.host, this.port); - try { - do { - String command; - OutputStream output = socket.getOutputStream(); + do { + String command; + OutputStream output = socket.getOutputStream(); - synchronized(this) { - wait(); + synchronized(this) { + wait(); - if (!quit) { - command = main.getInputField().getText(); - /* send command to stdin socket */ - if (command != null) { - if (main.isEchoing()) { - main.getOutputField().appendANSI("remote> "); - main.getOutputField().appendANSI(command); - main.getOutputField().appendANSI("\n"); - } - output.write( - command.getBytes()); - output.write("\n".getBytes()); - output.flush(); + if (!quit) { + command = main.getInputField().getText(); + /* send command to stdin socket */ + if (command != null) { + if (main.isEchoing()) { + main.getOutputField().appendANSI("remote> "); + main.getOutputField().appendANSI(command); + main.getOutputField().appendANSI("\n"); } - main.getInputField().setText(null); + output.write( + command.getBytes()); + output.write("\n".getBytes()); + output.flush(); } + main.getInputField().setText(null); } - } while (!quit); - } catch (IOException ex) { - if (!quit) { - main.messageBox(ex.getMessage(), MessageType.ERROR); } - } + } while (!quit); + + socket.close(); } else { /* * The writer thread will use non-blocking i/o consuming @@ -144,6 +140,7 @@ public class DebugSocket implements Runnable { } } } + channel.close(); } } catch (IOException | InterruptedException ex) { if (!quit) { diff --git a/tutorials/java/src/phpdbg/ui/JTerminalPane.java b/tutorials/java/src/phpdbg/ui/JTerminalPane.java index c616d2a8b8..ae63c22300 100644 --- a/tutorials/java/src/phpdbg/ui/JTerminalPane.java +++ b/tutorials/java/src/phpdbg/ui/JTerminalPane.java @@ -72,11 +72,10 @@ public class JTerminalPane extends JTextPane { SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c); setCharacterAttributes(aset, false); replaceSelection(s); - setCaretPosition( - (getDocument().getLength() > 0) ? (getDocument().getLength() - 1) : 0); + setCaretPosition(getDocument().getLength()); } - public void appendANSI(String s) { + public synchronized void appendANSI(String s) { int aPos = 0; int aIndex; int mIndex; -- 2.50.1