summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2011-03-21 11:20:21 -0600
committerEric Schulte <schulte.eric@gmail.com>2011-03-21 11:20:21 -0600
commitf702991626896d59ebb4cb8056eb3ff3ffbae19f (patch)
tree0134d4d367e6e0d6dbf47a8e56d3d31e6f20b8a8
parent38c6b17822ffb7ca4f9197c57c271ec417fa3a89 (diff)
downloadorg-mode-f702991626896d59ebb4cb8056eb3ff3ffbae19f.tar.gz
ob-sh: fixed insertion of table data into shell variables
* lisp/ob-sh.el (org-babel-sh-var-to-sh): Fixed insertion of tabular data into shell variables.
-rw-r--r--lisp/ob-sh.el24
1 files changed, 9 insertions, 15 deletions
diff --git a/lisp/ob-sh.el b/lisp/ob-sh.el
index 84ec52d..128924d 100644
--- a/lisp/ob-sh.el
+++ b/lisp/ob-sh.el
@@ -56,7 +56,7 @@ This will be passed to `shell-command-on-region'")
This function is called by `org-babel-execute-src-block'."
(let* ((session (org-babel-sh-initiate-session
(cdr (assoc :session params))))
- (result-params (cdr (assoc :result-params params)))
+ (result-params (cdr (assoc :result-params params)))
(full-body (org-babel-expand-body:generic
body params (org-babel-variable-assignments:sh params))))
(org-babel-reassemble-table
@@ -101,20 +101,14 @@ This function is called by `org-babel-execute-src-block'."
"Convert an elisp value to a shell variable.
Convert an elisp var into a string of shell commands specifying a
var of the same value."
- (if (listp var)
- (flet ((deep-string (el)
- (if (listp el)
- (mapcar #'deep-string el)
- (org-babel-sh-var-to-sh el sep))))
- (format org-babel-sh-var-quote-fmt
- (orgtbl-to-generic
- (deep-string (if (listp (car var)) var (list var)))
- (list :sep (or sep "\t")))))
- (if (stringp var)
- (if (string-match "[ \t\n\r]" var)
- (format org-babel-sh-var-quote-fmt var)
- (format "%s" var))
- (format "%S" var))))
+ (flet ((echo-var (v) (if (stringp v) v (format "%S" v))))
+ ((lambda (var) (format org-babel-sh-var-quote-fmt var))
+ (cond
+ ((and (listp var) (listp (car var)))
+ (orgtbl-to-generic var (list :sep (or sep "\t") :fmt #'echo-var)))
+ ((listp var)
+ (mapconcat #'echo-var var "\n"))
+ (t (echo-var var))))))
(defun org-babel-sh-table-or-results (results)
"Convert RESULTS to an appropriate elisp value.