multiple values support in the REPL
authorDavid Vazquez <davazp@gmail.com>
Fri, 25 Jan 2013 14:29:11 +0000 (14:29 +0000)
committerDavid Vazquez <davazp@gmail.com>
Fri, 25 Jan 2013 14:29:11 +0000 (14:29 +0000)
ecmalisp.html

index 56d7c55..5b83b3b 100644 (file)
            return str;
         }
 
+        function mv () {
+           var result = [];
+           result["multiple-values"] = true;
+           for (var i=0; i<arguments.length; i++)
+              result.push(arguments[i]);
+           return result;
+        }
+
         var startPrompt = function () {
           // Start the prompt with history enabled.
           jqconsole.Write(lisp.evalString(pv, '(CL:PACKAGE-NAME CL:*PACKAGE*)') + '> ', 'jqconsole-prompt');
             // Output input with the class jqconsole-return.
             if (input[0] != ','){
                 try {
-                    jqconsole.Write(lisp.print(pv, lisp.evalString(pv, input)) + '\n', 'jqconsole-return');
+                    var values = lisp.evalString(pv, input);
+                    if (values !== 'object' || !('multiple-values' in values))
+                       values = [values];
+                    for (var i in values){
+                       jqconsole.Write(lisp.print(pv, values[i]) + '\n', 'jqconsole-return');
+                    }
                 } catch(error) {
                     jqconsole.Write('ERROR: ' + (error.message || error) + '\n', 'jqconsole-error');
                 }