diff options
author | Eric Schulte <schulte.eric@gmail.com> | 2011-03-21 11:20:21 -0600 |
---|---|---|
committer | Eric Schulte <schulte.eric@gmail.com> | 2011-03-21 11:20:21 -0600 |
commit | f702991626896d59ebb4cb8056eb3ff3ffbae19f (patch) | |
tree | 0134d4d367e6e0d6dbf47a8e56d3d31e6f20b8a8 | |
parent | 38c6b17822ffb7ca4f9197c57c271ec417fa3a89 (diff) | |
download | org-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.el | 24 |
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. |