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; ) {