Mercurial > web-gnusto
diff base64.js @ 73:5c35e18a9d1a
Added a modified version of beret.js from gnusto (originally at src/xpcom/beret/beret.js in the gnusto source tree), because this file contains code to load quetzal save files (gnusto-engine.js contains code to save quetzal files).
Implemented basic save/restore functionality; right now we're just using DOM storage in Firefox 2/3.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Tue, 20 May 2008 23:24:09 -0700 |
parents | 174a19e03273 |
children |
line wrap: on
line diff
--- a/base64.js Sun May 18 23:47:15 2008 -0700 +++ b/base64.js Tue May 20 23:24:09 2008 -0700 @@ -7,6 +7,28 @@ var base64_tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; +function encode_base64(data) { + var out = "", c1, c2, c3, e1, e2, e3, e4; + for (var i = 0; i < data.length; ) { + c1 = data[i++]; + c2 = data[i++]; + c3 = data[i++]; + e1 = c1 >> 2; + e2 = ((c1 & 3) << 4) + (c2 >> 4); + e3 = ((c2 & 15) << 2) + (c3 >> 6); + e4 = c3 & 63; + if (isNaN(c2)) + e3 = e4 = 64; + else if (isNaN(c3)) + e4 = 64; + out += (base64_tab.charAt(e1) + + base64_tab.charAt(e2) + + base64_tab.charAt(e3) + + base64_tab.charAt(e4)); + } + return out; +} + function decode_base64(data) { var out = [], c1, c2, c3, e1, e2, e3, e4; for (var i = 0; i < data.length; ) {