emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: George Kettleborough <george.kettleborough@earlham.ac.uk>
To: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Cc: emacs-orgmode@gnu.org
Subject: Re: ob-shell: using a table variable with bash
Date: Wed, 8 Mar 2017 11:27:44 +0000	[thread overview]
Message-ID: <7e7ce312-15c3-6340-eb30-1ad046d1eabf@earlham.ac.uk> (raw)
In-Reply-To: <8737eo2n29.fsf@nicolasgoaziou.fr>

[-- Attachment #1: Type: text/plain, Size: 447 bytes --]

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.


[-- Attachment #2: 0001-ob-shell-use-old-table-var-behaviour-when-sep-is-use.patch --]
[-- Type: text/x-patch, Size: 1431 bytes --]

From 97dadaf0ba0f18772d4d8ac968ea63374937b179 Mon Sep 17 00:00:00 2001
From: George Kettleborough <george.kettleborough@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	other threads:[~2017-03-08 20:59 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-03 12:40 ob-shell: using a table variable with bash George Kettleborough (EI)
2017-03-08  8:24 ` Nicolas Goaziou
2017-03-08 11:27   ` George Kettleborough [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7e7ce312-15c3-6340-eb30-1ad046d1eabf@earlham.ac.uk \
    --to=george.kettleborough@earlham.ac.uk \
    --cc=emacs-orgmode@gnu.org \
    --cc=mail@nicolasgoaziou.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).