diff options
Diffstat (limited to 'lisp/org/ob-lisp.el')
-rw-r--r-- | lisp/org/ob-lisp.el | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/lisp/org/ob-lisp.el b/lisp/org/ob-lisp.el index 4ff9718553b..c201e582c7a 100644 --- a/lisp/org/ob-lisp.el +++ b/lisp/org/ob-lisp.el @@ -1,6 +1,6 @@ ;;; ob-lisp.el --- org-babel functions for common lisp evaluation -;; Copyright (C) 2009-2013 Free Software Foundation, Inc. +;; Copyright (C) 2009-2015 Free Software Foundation, Inc. ;; Authors: Joel Boehland ;; Eric Schulte @@ -75,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)) |