emacs-orgmode
[Top][All Lists]
Advanced

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

[O] [PATCH]: Add header-args property to source block info


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

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:

--8<---------------cut here---------------start------------->8---
#+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
--8<---------------cut here---------------end--------------->8---

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]