[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] ob-shell: using a table variable with bash
From: |
Nicolas Goaziou |
Subject: |
Re: [O] ob-shell: using a table variable with bash |
Date: |
Wed, 08 Mar 2017 09:24:30 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Hello,
"George Kettleborough (EI)" <address@hidden> writes:
> I recently updated my org-mode from version 7 (I think) to the latest.
> The behaviour of using a table as a variable in a shell code source
> block has changed. I use to use it like this:
>
> #+BEGIN_SRC sh :results output :var table=synteny-names :separator ,
> IFS=','
> while read col1 col2; do
> # do stuff
> done <<EOF
> $table
> EOF
> #+END_SRC
>
> This just stopped working with the new version and I could not figure
> out why for a long time. But I looked in the new ob-shell.el code and
> figured out that when the shell is bash it now makes an associative
> array if the variable is a table. I couldn't seem to find this
> documented anywhere.
>
> This new behaviour seems like it would be useful in a lot of cases, but
> in my case, the tables are not key-value pairs, they are merely things I
> want to iterate over. I wonder if simply checking to see if :separator
> is set and using the old behaviour if so would be better? This would
> seem to be a fine fix which maintains backwards compatibility unless
> there is a reason to set :separator but still expect the new
> behaviour.
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.
Also, could you provide a proper commit message?
Thank you.
Regards,
--
Nicolas Goaziou