summaryrefslogtreecommitdiff
path: root/lisp/org/ob-table.el
diff options
context:
space:
mode:
authorCarsten Dominik <carsten.dominik@gmail.com>2010-11-11 22:10:19 -0600
committerCarsten Dominik <carsten.dominik@gmail.com>2010-11-11 22:10:19 -0600
commitafe98dfa700de5cf0493e8bf95b7d894e2734e47 (patch)
tree92a812b353bb09c1286e8a44fb552de9f1af3384 /lisp/org/ob-table.el
parentdf26e1f58a7e484b7ed500ea48d0e1c49345ffbf (diff)
downloademacs-afe98dfa700de5cf0493e8bf95b7d894e2734e47.tar.gz
Install org-mode version 7.3
Diffstat (limited to 'lisp/org/ob-table.el')
-rw-r--r--lisp/org/ob-table.el42
1 files changed, 29 insertions, 13 deletions
diff --git a/lisp/org/ob-table.el b/lisp/org/ob-table.el
index f1506550829..cdc7a6250fe 100644
--- a/lisp/org/ob-table.el
+++ b/lisp/org/ob-table.el
@@ -5,7 +5,7 @@
;; Author: Eric Schulte
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
-;; Version: 7.01
+;; Version: 7.3
;; This file is part of GNU Emacs.
@@ -79,13 +79,24 @@ references to source-code blocks, to force interpretation of a
cell's value as a string, prefix the identifier with two \"$\"s
rather than a single \"$\" (i.e. \"$$2\" instead of \"$2\" in the
example above."
- (let ((variables (mapcar
- (lambda (var)
- (if (and (= 3 (length var)) (eq (nth 1 var) '$))
- (list (car var) (format "\"%s\"" (last var)))
- var))
- variables)))
- (unless (stringp source-block) (setq source-block (symbol-name source-block)))
+ (let* (quote
+ (variables
+ (mapcar
+ (lambda (var)
+ ;; ensure that all cells prefixed with $'s are strings
+ (cons (car var)
+ (delq nil (mapcar
+ (lambda (el)
+ (if (eq '$ el)
+ (setq quote t)
+ (prog1 (if quote
+ (format "\"%s\"" el)
+ (org-babel-clean-text-properties el))
+ (setq quote nil))))
+ (cdr var)))))
+ variables)))
+ (unless (stringp source-block)
+ (setq source-block (symbol-name source-block)))
(org-babel-table-truncate-at-newline ;; org-table cells can't be multi-line
(if (and source-block (> (length source-block) 0))
(let ((params
@@ -93,13 +104,18 @@ example above."
(concat ":var results="
,source-block
"("
- (mapconcat (lambda (var-spec)
- (format "%S=%s" (nth 0 var-spec) (nth 1 var-spec)))
- ',variables ", ")
+ (mapconcat
+ (lambda (var-spec)
+ (if (> (length (cdr var-spec)) 1)
+ (format "%S='%S"
+ (car var-spec)
+ (mapcar #'read (cdr var-spec)))
+ (format "%S=%s"
+ (car var-spec) (cadr var-spec))))
+ ',variables ", ")
")")))))
(org-babel-execute-src-block
- nil (list "emacs-lisp" "results"
- (org-babel-merge-params '((:results . "silent")) params))))
+ nil (list "emacs-lisp" "results" params) '((:results . "silent"))))
""))))
(provide 'ob-table)