]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-lisp.el
Fix quote escaping in ruby-toggle-string-quotes
[gnu-emacs] / lisp / org / ob-lisp.el
index 31656c6e1134b98b754cdc70d34611e32e943e26..fb8eb40856ec0832437913e4929aa20df58616af 100644 (file)
@@ -1,10 +1,10 @@
 ;;; ob-lisp.el --- org-babel functions for common lisp evaluation
 
-;; Copyright (C) 2009-201 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
-;; Author: Joel Boehland
-;;     Eric Schulte
-;;     David T. O'Toole <dto@gnu.org>
+;; Authors: Joel Boehland
+;;      Eric Schulte
+;;      David T. O'Toole <dto@gnu.org>
 ;; Keywords: literate programming, reproducible research
 ;; Homepage: http://orgmode.org
 
@@ -41,7 +41,7 @@
 (add-to-list 'org-babel-tangle-lang-exts '("lisp" . "lisp"))
 
 (defvar org-babel-default-header-args:lisp '())
-(defvar org-babel-header-arg-names:lisp '(package))
+(defvar org-babel-header-args:lisp '((package . :any)))
 
 (defcustom org-babel-lisp-dir-fmt
   "(let ((*default-pathname-defaults* #P%S)) %%s)"
@@ -49,6 +49,7 @@
 For example a value of \"(progn ;; %s\\n   %%s)\" would ignore the
 current directory string."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defun org-babel-expand-body:lisp (body params)
@@ -74,23 +75,24 @@ current directory string."
   "Execute a block of Common Lisp code with Babel."
   (require 'slime)
   (org-babel-reassemble-table
-   ((lambda (result)
-      (if (member "output" (cdr (assoc :result-params params)))
-         (car result)
-       (condition-case nil
-           (read (org-babel-lisp-vector-to-list (cadr result)))
-         (error (cadr result)))))
-    (with-temp-buffer
-      (insert (org-babel-expand-body:lisp body params))
-      (slime-eval `(swank:eval-and-grab-output
-                   ,(let ((dir (if (assoc :dir params)
-                                           (cdr (assoc :dir params))
-                                         default-directory)))
-                      (format
-                       (if dir (format org-babel-lisp-dir-fmt dir) "(progn %s)")
-                       (buffer-substring-no-properties
-                        (point-min) (point-max)))))
-                 (cdr (assoc :package params)))))
+   (let ((result
+          (with-temp-buffer
+            (insert (org-babel-expand-body:lisp body params))
+            (slime-eval `(swank:eval-and-grab-output
+                          ,(let ((dir (if (assoc :dir params)
+                                          (cdr (assoc :dir params))
+                                        default-directory)))
+                             (format
+                              (if dir (format org-babel-lisp-dir-fmt dir)
+                                "(progn %s)")
+                              (buffer-substring-no-properties
+                               (point-min) (point-max)))))
+                        (cdr (assoc :package params))))))
+     (org-babel-result-cond (cdr (assoc :result-params params))
+       (car result)
+       (condition-case nil
+           (read (org-babel-lisp-vector-to-list (cadr result)))
+         (error (cadr result)))))
    (org-babel-pick-name (cdr (assoc :colname-names params))
                        (cdr (assoc :colnames params)))
    (org-babel-pick-name (cdr (assoc :rowname-names params))