emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [PATCH]: BUG fix and Add header-args property to source block in


From: Rainer M Krug
Subject: Re: [O] [PATCH]: BUG fix and Add header-args property to source block info
Date: Tue, 10 Feb 2015 14:39:34 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (darwin)

Please find attached the below described patch including the fix for the
error reported - function raises error when property value is numeric.

Cheers,

Rainer

diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index ceda1aa..aa39c11 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -409,12 +409,16 @@ a window into the `org-babel-get-src-block-info' 
function."
              (header-args (nth 2 info)))
          (when name            (funcall printf "Name: %s\n"     name))
          (when lang            (funcall printf "Lang: %s\n"     lang))
+         (funcall printf "Properties:\n")
+         (funcall printf "\t:header-args \t%s\n" (org-entry-get (point) 
"header-args" t))
+         (funcall printf "\t:header-args:%s \t%s\n" lang (org-entry-get 
(point) (concat "header-args:" lang) t))
+
          (when (funcall full switches) (funcall printf "Switches: %s\n" 
switches))
          (funcall printf "Header Arguments:\n")
          (dolist (pair (sort header-args
                              (lambda (a b) (string< (symbol-name (car a))
                                                     (symbol-name (car b))))))
-           (when (funcall full (cdr pair))
+           (when (funcall full (format "%s" (cdr pair)))
              (funcall printf "\t%S%s\t%s\n"
                       (car pair)
                       (if (> (length (format "%S" (car pair))) 7) "" "\t")

Rainer M Krug <address@hidden> writes:

> Hi
>
> Following a recent discussion (based on me forgetting a ":" when setting
> the property :header-args), I added the output of the property
> header-args to the output of org-babel-get-src-block-info to make
> debugging easier. Before the function resulted in the following output
> (using my faulty code block):
>
> ,----
> | Lang: R
> | Header Arguments:
> |     :cache          no
> |     :exports        both
> |     :hlines         no
> |     :noweb          no
> |     :results        code exports output replace
> |     :session        somename
> |     :tangle         no
> | 
> `----
>
> One only saw that the property :results was not correct but not where it
> came from.
>
> Using the patched version, one gets the following:
>
> ,----
> | Lang: R
> | Properties:
> |     :header-args    :exports both :results output exports code
> |     :header-args:R  :session somename
> | Header Arguments:
> |     :cache          no
> |     :exports        both
> |     :hlines         no
> |     :noweb          no
> |     :results        code exports output replace
> |     :session        somename
> |     :tangle         no
> `----
>
> Here one can clearly see that the property :header-args is not set
> correctly and can easily trace it down in the original org file.
>
> Also, actually seeing the property :header-args makes it easier to
> understand the whole inheritance of header arguments and how header-args
> and header-args+ interact. 
>
> The same applir=es to the property :header-args:R (or any language
> specific header-args:language property)
>
> Cheers,
>
> Rainer
>
>
> Here is again the faulty org file which lead to the patch:
>
> #+PROPERTY: header-args:R :session somename
> #+PROPERTY: header-args :exports both
> #+PROPERTY: header-args+ :results output
> * The bug
> This file create an (possibly endless?) loop during export
> * here exports both
> #+begin_src R 
> cat(13+14)
> #+end_src
>
> * and here only code
> :PROPERTIES:
> :header-args+: exports code
> :END:
> #+begin_src R 
> paste(13+14)
> #+end_src
> diff --git a/lisp/ob-core.el b/lisp/ob-core.el
> index ceda1aa..94a07f6 100644
> --- a/lisp/ob-core.el
> +++ b/lisp/ob-core.el
> @@ -409,6 +409,10 @@ a window into the `org-babel-get-src-block-info' 
> function."
>             (header-args (nth 2 info)))
>         (when name            (funcall printf "Name: %s\n"     name))
>         (when lang            (funcall printf "Lang: %s\n"     lang))
> +       (funcall printf "Properties:\n")
> +       (funcall printf "\t:header-args \t%s\n" (org-entry-get (point) 
> "header-args" t))
> +       (funcall printf "\t:header-args:%s \t%s\n" lang (org-entry-get 
> (point) (concat "header-args:" lang) t))
> +
>         (when (funcall full switches) (funcall printf "Switches: %s\n" 
> switches))
>         (funcall printf "Header Arguments:\n")
>         (dolist (pair (sort header-args

-- 
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]