summaryrefslogtreecommitdiff
path: root/lisp/org/ob-lisp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/org/ob-lisp.el')
-rw-r--r--lisp/org/ob-lisp.el37
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))