From 3c376df42c4271ae7b44610ced09f535bb685662 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 29 Jan 2017 22:17:57 -0800 Subject: [PATCH 1/2] Added iOS work-around for preventing unintentional page zooms when returning focus from a soft-key control to the normal keyboard control --- docs/pcx86/examples/pcx86-dbg.js | 2 +- docs/pcx86/examples/pcx86.js | 2 +- modules/pc8080/lib/video.js | 9 +++++++++ modules/pcx86/lib/video.js | 9 +++++++++ versions/pc8080/1.32.2/pc8080-dbg.js | 2 +- versions/pc8080/1.32.2/pc8080.js | 2 +- 6 files changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index 7b04db0a2..fef9d9c1a 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -592,7 +592,7 @@ function mo(a,b,c,d,e){if(b.AcMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ca().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Na("aspect"));f&&.3<=f&&3.33>=f&&(Ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");La("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);pb(d,c)}}); +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Na("aspect"));f&&.3<=f&&3.33>=f&&(Ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");La("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);pb(d,c)}}); function po(a){this.V=a.adapter;switch(this.V){case 1:this.X=956;this.C=7;break;case 2:this.X=888;this.C=7;break;case 3:this.X=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.V);return}this.A=this.B=null;db.call(this,"ParallelPort",a,po,4194304);a=a.binding;"console"==a?this.B="":ob(this,a,qo)}gb(po);var qo="buffer";l=po.prototype;l.Pb=function(a,b,c){switch(b){case qo:return this.qa[b]=this.A=c,!0}return!1}; l.Jc=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.N=Gb(a,"ChipSet");nc(b,this,ro,this.X);rc(b,this,so,this.X);ub(this)};l.hc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.gc=function(a){return a?this.save():!0};l.reset=function(){to(this)};l.save=function(){var a=new nf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Df;a.set(0,c);return a.data()};l.restore=function(a){return to(this,a[0])}; function to(a,b){var c=0;b||(b=[0,0,0]);a.L=b[c++];a.Yb=b[c++];a.Df=b[c];return!0}l.jm=function(a,b){var c=this.L;x(this,a,null,b,"DATA",c);return c};l.Hm=function(a,b){var c=this.Yb;x(this,a,null,b,"STAT",c);return c};l.fm=function(a,b){var c=this.Df;x(this,a,null,b,"CTRL",c);return c}; diff --git a/docs/pcx86/examples/pcx86.js b/docs/pcx86/examples/pcx86.js index 8bbd80e10..a39081ecd 100644 --- a/docs/pcx86/examples/pcx86.js +++ b/docs/pcx86/examples/pcx86.js @@ -554,7 +554,7 @@ function Fl(a,b,c){if(b.scMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Aa("aspect"));f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}}); +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Aa("aspect"));f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}}); function Hl(a){this.I=a.adapter;switch(this.I){case 1:this.G=956;this.D=7;break;case 2:this.G=888;this.D=7;break;case 3:this.G=632;this.D=5;break;default:r("Unrecognized parallel adapter #"+this.I);return}this.B=this.C=null;Ma.call(this,"ParallelPort",a,Hl);a=a.binding;"console"==a?this.C="":Xa(this,a,Il)}Pa(Hl);var Il="buffer";l=Hl.prototype;l.zb=function(a,b,c){switch(b){case Il:return this.la[b]=this.B=c,!0}return!1}; l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.S=jb(a,"ChipSet");Pb(b,this,Jl,this.G);Rb(b,this,Kl,this.G);t(this)};l.Ub=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Tb=function(a){return a?this.save():!0};l.reset=function(){Ll(this)};l.save=function(){var a=new ae(this),b=0,c=[];c[b++]=this.H;c[b++]=this.Db;c[b]=this.Me;a.set(0,c);return a.data()};l.restore=function(a){return Ll(this,a[0])}; function Ll(a,b){var c=0;b||(b=[0,0,0]);a.H=b[c++];a.Db=b[c++];a.Me=b[c];return!0}l.Vk=function(){return this.H};l.sl=function(){return this.Db};l.Rk=function(){return this.Me};l.lm=function(a,b){this.H=b;this.Db|=64;a=!1;this.B&&(8==b?this.B.value=this.B.value.slice(0,-1):(this.B.value+=String.fromCharCode(b),this.B.scrollTop=this.B.scrollHeight),a=!0);if(null!=this.C){if(10==b||1024<=this.C.length)this.rc(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));a=!0}a&&(this.Db&=-65);Ml(this)}; diff --git a/modules/pc8080/lib/video.js b/modules/pc8080/lib/video.js index ab40d268c..73684d6dd 100644 --- a/modules/pc8080/lib/video.js +++ b/modules/pc8080/lib/video.js @@ -1487,6 +1487,15 @@ class Video8080 extends Component { if (Web.isUserAgent("iOS")) { eTextArea.setAttribute("autocapitalize", "off"); eTextArea.setAttribute("autocorrect", "off"); + /* + * One of the problems on iOS devices is that after a soft-key control is clicked, we need to give + * focus back to the above textarea, usually by calling cmp.updateFocus(), but in doing so, iOS may + * also "zoom" the page rather jarringly. While it's a simple matter to completely disable zooming, + * by fiddling with the page's viewport, that prevents the user from intentionally zooming. A bit of + * Googling reveals that another way to prevent those jarring unintentional zooms is to simply set the + * font-size of the text control to 16px. So that's what we do. + */ + eTextArea.style.fontSize = "16px"; } eVideo.appendChild(eTextArea); diff --git a/modules/pcx86/lib/video.js b/modules/pcx86/lib/video.js index d7dd540da..707f481c2 100644 --- a/modules/pcx86/lib/video.js +++ b/modules/pcx86/lib/video.js @@ -7368,6 +7368,15 @@ Video.init = function() if (web.isUserAgent("iOS")) { eTextArea.setAttribute("autocapitalize", "off"); eTextArea.setAttribute("autocorrect", "off"); + /* + * One of the problems on iOS devices is that after a soft-key control is clicked, we need to give + * focus back to the above textarea, usually by calling cmp.updateFocus(), but in doing so, iOS may + * also "zoom" the page rather jarringly. While it's a simple matter to completely disable zooming, + * by fiddling with the page's viewport, that prevents the user from intentionally zooming. A bit of + * Googling reveals that another way to prevent those jarring unintentional zooms is to simply set the + * font-size of the text control to 16px. So that's what we do. + */ + eTextArea.style.fontSize = "16px"; } eVideo.appendChild(eTextArea); diff --git a/versions/pc8080/1.32.2/pc8080-dbg.js b/versions/pc8080/1.32.2/pc8080-dbg.js index 802713fc7..dd89d184c 100644 --- a/versions/pc8080/1.32.2/pc8080-dbg.js +++ b/versions/pc8080/1.32.2/pc8080-dbg.js @@ -174,7 +174,7 @@ pf:qf);break}if(p>8|(u&255)<<8);h>B&A,kf(a,a.Ua,h++,l,ya),B+=r;h>p&&(p=h);l=d&&(d=l+1)}e+=2;g++;if(h>=a.C&&(h=0,l++,l>a.N))break}a.W=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ua().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||cb("aspect"));f&&.3<=f&&3.33>=f&&(gb("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");bb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Ue(d,e,g,f,c);oa(d,c)}}); +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||cb("aspect"));f&&.3<=f&&3.33>=f&&(gb("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");bb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Ue(d,e,g,f,c);oa(d,c)}}); function rf(a){n.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:q("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=sf;b&&(void 0===c&&(c="Panel"),(c=la(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.jc,receiveData:this.Lb,receiveStatus:this.ce}} ba(rf,n);k=rf.prototype; k.ca=function(a,b,c,d){var e=this;switch(b){case sf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64>>t.b;t=x!=t.f?t.a[Y].Jb(x,E):t.a[Y++].eb(x,E)|t.a[Y&t.o].eb(0,E+1)<<8;if(a.N&&t===a.g[g])h+=a.La;else{a.g[g]=t;(E=A)&&(t=t>>8|(t&255)<<8);h>E&K,td(a,a.Fa,h++,l,Y),E+=v;h>n&&(n=h);l=d&&(d=l+1)}e+= 2;g++;if(h>=a.j&&(h=0,l++,l>a.B))break}a.N=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ea("aspect"));f&&.3<=f&&3.33>=f&&(Ga("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new dd(d,e,g,f,c);ja(d,c)}}); +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ea("aspect"));f&&.3<=f&&3.33>=f&&(Ga("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new dd(d,e,g,f,c);ja(d,c)}}); function Ad(a){q.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:u("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.L=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Bd;b&&(void 0===c&&(c="Panel"),(c=ia(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Ba=this.s=null;this.exports={connect:this.Fb,receiveData:this.mb,receiveStatus:this.yd}}m(Ad,q); k=Ad.prototype; k.S=function(a,b,c,d){var e=this;switch(b){case Bd:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64 Date: Sun, 29 Jan 2017 22:18:39 -0800 Subject: [PATCH 2/2] Added iOS work-around for preventing unintentional page zooms when returning focus from a soft-key control to the normal keyboard control --- versions/pcx86/1.32.2/pcx86-dbg.js | 2 +- versions/pcx86/1.32.2/pcx86.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/versions/pcx86/1.32.2/pcx86-dbg.js b/versions/pcx86/1.32.2/pcx86-dbg.js index 7b04db0a2..fef9d9c1a 100644 --- a/versions/pcx86/1.32.2/pcx86-dbg.js +++ b/versions/pcx86/1.32.2/pcx86-dbg.js @@ -592,7 +592,7 @@ function mo(a,b,c,d,e){if(b.AcMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ca().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Na("aspect"));f&&.3<=f&&3.33>=f&&(Ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");La("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);pb(d,c)}}); +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Na("aspect"));f&&.3<=f&&3.33>=f&&(Ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");La("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);pb(d,c)}}); function po(a){this.V=a.adapter;switch(this.V){case 1:this.X=956;this.C=7;break;case 2:this.X=888;this.C=7;break;case 3:this.X=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.V);return}this.A=this.B=null;db.call(this,"ParallelPort",a,po,4194304);a=a.binding;"console"==a?this.B="":ob(this,a,qo)}gb(po);var qo="buffer";l=po.prototype;l.Pb=function(a,b,c){switch(b){case qo:return this.qa[b]=this.A=c,!0}return!1}; l.Jc=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.N=Gb(a,"ChipSet");nc(b,this,ro,this.X);rc(b,this,so,this.X);ub(this)};l.hc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.gc=function(a){return a?this.save():!0};l.reset=function(){to(this)};l.save=function(){var a=new nf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Df;a.set(0,c);return a.data()};l.restore=function(a){return to(this,a[0])}; function to(a,b){var c=0;b||(b=[0,0,0]);a.L=b[c++];a.Yb=b[c++];a.Df=b[c];return!0}l.jm=function(a,b){var c=this.L;x(this,a,null,b,"DATA",c);return c};l.Hm=function(a,b){var c=this.Yb;x(this,a,null,b,"STAT",c);return c};l.fm=function(a,b){var c=this.Df;x(this,a,null,b,"CTRL",c);return c}; diff --git a/versions/pcx86/1.32.2/pcx86.js b/versions/pcx86/1.32.2/pcx86.js index 8bbd80e10..a39081ecd 100644 --- a/versions/pcx86/1.32.2/pcx86.js +++ b/versions/pcx86/1.32.2/pcx86.js @@ -554,7 +554,7 @@ function Fl(a,b,c){if(b.scMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Aa("aspect"));f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}}); +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Aa("aspect"));f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new Y(d,e,g,f,c);Ya(d,c)}}); function Hl(a){this.I=a.adapter;switch(this.I){case 1:this.G=956;this.D=7;break;case 2:this.G=888;this.D=7;break;case 3:this.G=632;this.D=5;break;default:r("Unrecognized parallel adapter #"+this.I);return}this.B=this.C=null;Ma.call(this,"ParallelPort",a,Hl);a=a.binding;"console"==a?this.C="":Xa(this,a,Il)}Pa(Hl);var Il="buffer";l=Hl.prototype;l.zb=function(a,b,c){switch(b){case Il:return this.la[b]=this.B=c,!0}return!1}; l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.S=jb(a,"ChipSet");Pb(b,this,Jl,this.G);Rb(b,this,Kl,this.G);t(this)};l.Ub=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Tb=function(a){return a?this.save():!0};l.reset=function(){Ll(this)};l.save=function(){var a=new ae(this),b=0,c=[];c[b++]=this.H;c[b++]=this.Db;c[b]=this.Me;a.set(0,c);return a.data()};l.restore=function(a){return Ll(this,a[0])}; function Ll(a,b){var c=0;b||(b=[0,0,0]);a.H=b[c++];a.Db=b[c++];a.Me=b[c];return!0}l.Vk=function(){return this.H};l.sl=function(){return this.Db};l.Rk=function(){return this.Me};l.lm=function(a,b){this.H=b;this.Db|=64;a=!1;this.B&&(8==b?this.B.value=this.B.value.slice(0,-1):(this.B.value+=String.fromCharCode(b),this.B.scrollTop=this.B.scrollHeight),a=!0);if(null!=this.C){if(10==b||1024<=this.C.length)this.rc(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));a=!0}a&&(this.Db&=-65);Ml(this)};