Implement step 8
[jackhill/mal.git] / js / node_readline.js
index f91bbaf..dc64e3f 100644 (file)
@@ -16,11 +16,14 @@ var rllib = ffi.Library(RL_LIB, {
 var rl_history_loaded = false;
 
 exports.readline = rlwrap.readline = function(prompt) {
-    prompt = prompt || "user> ";
+    prompt = typeof prompt !== 'undefined' ? prompt : "user> ";
 
     if (!rl_history_loaded) {
         rl_history_loaded = true;
-        var lines = fs.readFileSync(HISTORY_FILE).toString().split("\n");
+        var lines = [];
+        if (fs.existsSync(HISTORY_FILE)) {
+            lines = fs.readFileSync(HISTORY_FILE).toString().split("\n");
+        }
         // Max of 2000 lines
         lines = lines.slice(Math.max(lines.length - 2000, 0));
         for (var i=0; i<lines.length; i++) {
@@ -31,7 +34,11 @@ exports.readline = rlwrap.readline = function(prompt) {
     var line = rllib.readline(prompt);
     if (line) {
         rllib.add_history(line);
-        fs.appendFileSync(HISTORY_FILE, line + "\n");
+        try {
+            fs.appendFileSync(HISTORY_FILE, line + "\n");
+        } catch (exc) {
+            // ignored
+        }
     }
 
     return line;