From f702991626896d59ebb4cb8056eb3ff3ffbae19f Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Mon, 21 Mar 2011 11:20:21 -0600 Subject: [PATCH] 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. --- lisp/ob-sh.el | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/lisp/ob-sh.el b/lisp/ob-sh.el index 84ec52d57..128924d2f 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.