Michael Brand <michael.ch.br...@gmail.com> writes:

> Hi Levin
> On Tue, Jun 18, 2013 at 9:44 AM, Levin Du <zsle...@gmail.com> wrote:
>> Below is the patch that solves this problem.
> Recently I also noticed a regression of org-babel-load-file that is
> resolved with your patch. Thank you for saving me of one of my TODOs.

This patch doesn't fix the actual cause of this bug.  The problem stems
from commit 693dda67 [1], and I've just pushed up a fix in commit
a79fd4be [2].

Thanks to both of your for raising this issue.

[1]  commit 693dda67e60530c9f7b2510f44f6d14595473e28
     Author: Achim Gratz <strom...@stromeko.de>
     Date:   Fri Jun 7 22:19:38 2013 +0200

         ob-core: allow language specific header arguments in properties

         * lisp/ob-core.el (org-babel-insert-header-arg,
           org-babel-parse-src-block-match): Replace `if' with empty else part
           by `when' for readability.  (org-babel-params-from-properties):
           Inquire for language specific and default header properties.
           Language specific header properties take precedence over default
           header properties and old-style header property specifications.

         This allows for header arguments to be specified as
         properties (including inheritance).

         #+PROPERTY: header-args :cache "no"
         #+PROPERTY: header-args:R :session "*R-property*"

         :header-args:   :cache "yes"
         :header-args:R: :session "*R-drawer*"

[2]  commit a79fd4be2863a300c88218b40b1adca23d9e1eb8
     Author: Eric Schulte <schulte.e...@gmail.com>
     Date:   Thu Jun 20 09:53:56 2013 -0600

         fix babel merge params bug from commit 693dda67

           The `org-babel-params-from-properties' command was calling
           `org-babel-merge-params', the output of which was then being fed back
           to another call to `org-babel-merge-params'.  The merge params
           function is not designed to allow this form of recursive calling, and
           as a result many variables were being set to empty values.

           The first noticed side effect of this bug was the breakage of the
           org-babel-load-file command, which relies on default header
           arguments (namely :tangle), which were overwritten by the bug above.

           The fix involved having the `org-babel-params-from-properties'
           function return a list of alists, which may then all be handed to the
           top-level merge-params call.

         * lisp/ob-core.el (org-babel-params-from-properties): Now returns a 
           of alists and does *not* call `org-babel-merge-params'.
           (org-babel-parse-src-block-match): Handle new list of lists output of
           (org-babel-parse-inline-src-block-match): Handle new list of lists
           output of `org-babel-params-from-properties'.
         * lisp/ob-exp.el (org-babel-exp-src-block): Handle new list of lists
           output of `org-babel-params-from-properties'.
           (org-babel-exp-non-block-elements): Handle new list of lists output 
         * lisp/ob-lob.el (org-babel-lob-execute): Handle new list of lists
           output of `org-babel-params-from-properties'.

Eric Schulte

Reply via email to