On 08/03/17 08:24, Nicolas Goaziou wrote:
I have no objection to this patch, but I think it needs to be
documented, if only as a code comment. IIRC, there is also some
documentation about "ob-shell" on Worg. It would be nice to document
this feature.

I can't actually find any documentation for ob-shell. I had to read the source code. I have documented it as a code comment in my patch (with proper commit message).

Thanks,

George.

>From 97dadaf0ba0f18772d4d8ac968ea63374937b179 Mon Sep 17 00:00:00 2001
From: George Kettleborough <george.kettleboro...@earlham.ac.uk>
Date: Wed, 8 Mar 2017 11:25:37 +0000
Subject: [PATCH] ob-shell: use old table var behaviour when sep is used

When using the bash shell and an org table is used as a variable, the
default behaviour is to declare it as a bash array. The generic
behaviour is to convert the table to a string with columns separated by
a given separator string. This allows a user to choose the generic
behaviour by declaring the separator using a :separator option to the
code block.
---
 lisp/ob-shell.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el
index 9c22af8..8c7b4f1 100644
--- a/lisp/ob-shell.el
+++ b/lisp/ob-shell.el
@@ -140,7 +140,9 @@ This function is called by `org-babel-execute-src-block'."
 
 (defun org-babel--variable-assignments:bash (varname values &optional sep hline)
   "Represents the parameters as useful Bash shell variables."
-  (if (listp values)
+  ;; we declare org tables as bash array types, unless the user has
+  ;; set the :separator option
+  (if (and (listp values) (null sep))
       (if (and (listp (car values)) (= 1 (length (car values))))
 	  (org-babel--variable-assignments:bash_array varname values sep hline)
 	(org-babel--variable-assignments:bash_assoc varname values sep hline))
-- 
2.10.1.502.g6598894

Reply via email to