ascii85.js 1.2 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.encoding.ascii85"]){dojo._hasResource["dojox.encoding.ascii85"]=true;dojo.provide("dojox.encoding.ascii85");(function(){var c=function(_1,_2,_3){var i,j,n,b=[0,0,0,0,0];for(i=0;i<_2;i+=4){n=((_1[i]*256+_1[i+1])*256+_1[i+2])*256+_1[i+3];if(!n){_3.push("z");}else{for(j=0;j<5;b[j++]=n%85+33,n=Math.floor(n/85)){}}_3.push(String.fromCharCode(b[4],b[3],b[2],b[1],b[0]));}};dojox.encoding.ascii85.encode=function(_4){var _5=[],_6=_4.length%4,_7=_4.length-_6;c(_4,_7,_5);if(_6){var t=_4.slice(_7);while(t.length<4){t.push(0);}c(t,4,_5);var x=_5.pop();if(x=="z"){x="!!!!!";}_5.push(x.substr(0,_6+1));}return _5.join("");};dojox.encoding.ascii85.decode=function(_8){var n=_8.length,r=[],b=[0,0,0,0,0],i,j,t,x,y,d;for(i=0;i<n;++i){if(_8.charAt(i)=="z"){r.push(0,0,0,0);continue;}for(j=0;j<5;++j){b[j]=_8.charCodeAt(i+j)-33;}d=n-i;if(d<5){for(j=d;j<4;b[++j]=0){}b[d]=85;}t=(((b[0]*85+b[1])*85+b[2])*85+b[3])*85+b[4];x=t&255;t>>>=8;y=t&255;t>>>=8;r.push(t>>>8,t&255,y,x);for(j=d;j<5;++j,r.pop()){}i+=4;}return r;};})();}