Rainer M Krug <rai...@krugs.de> writes: > This means *a specific property* - or *any property*? In other words: > can property A inherit from one level lower if property B is set in the > current level?
It can. > Then I think there is a bug. Look at the following example: > > #+PROPERTY: header-args :tangle-mode (identity #o444) > #+PROPERTY: header-args+ :eval no-export > > #+PROPERTY: header-args:R :session *R.EnergyBalance* > > > * Make sure org-use-property-inheritance is nil > > #+begin_src emacs-lisp > (setq org-use-property-inheritance nil) > #+end_src > > #+RESULTS: > > Therefore from now on, we will only look at the current level and > ignore properties set at lower levels - correct? > > * Without properties > #+begin_src > 13 > #+end_src > > ,---- > | Properties: > | :header-args :tangle-mode (identity #o444) :eval no-export > | :header-args:nil nil > | Switches: > | Header Arguments: > | :cache no > | :eval no-export > | :exports code > | :hlines no > | :noweb no > | :results replace > | :session none > | :tangle no > | :tangle-mode 292 > `---- > > * With Properties at level one > :PROPERTIES: > :header-args+: :tangle SetAtFirstLevel > :header-args+: :output-dir ./output > :END: > > #+begin_src R > 13 > #+end_src > > ,---- > | Lang: R > | Properties: > | :header-args :tangle-mode (identity #o444) :eval no-export :tangle > SetAtFirstLevel :output-dir ./output > | :header-args:R :session *R.EnergyBalance* > | Header Arguments: > | :cache no > | :eval no-export > | :exports code > | :hlines no > | :noweb no > | :output-dir ./output > | :results replace > | :session *R.EnergyBalance* > | :tangle ./output/scripts/analysisCode.do.not.source.R > | :tangle-mode 292 > `---- > > ** Second level without properties > These should now be the same as [[Without properties]] as > org-use-property-inheritance is nil. > #+begin_src R > cat(13) > #+end_src > > But it is the same as [[With Properties at level one]]. > ,---- > | Lang: R > | Properties: > | :header-args :tangle-mode (identity #o444) :eval no-export :tangle > SetAtFirstLevel :output-dir ./output > | :header-args:R :session *R.EnergyBalance* > | Header Arguments: > | :cache no > | :eval no-export > | :exports code > | :hlines no > | :noweb no > | :output-dir ./output > | :results replace > | :session *R.EnergyBalance* > | :tangle ./output/scripts/analysisCode.do.not.source.R > | :tangle-mode 292 > `---- There's no bug. Babel activates inheritance on purpose, no matter what `org-use-property-inheritance' says. See the last line of its docstring: "ob-core.el" (in particular `org-babel-view-src-block-info') calls `org-entry-get' with `t', not `selective'. Really, `org-use-property-inheritance' is for your own properties. Org ignores it to handle its own internal properties. > Concerning property accumulation: I assume you mean the header-args+ - > correct? Because I could not find the term "accumu" in the org manual. Correct. I don't think they have a name, but they should, because they are a different beast than regular properties. > Are these properties treated as a normal properties, and the same rules > apply, or are there specific rules? They follow specific rules. For example there can only be one property A in a given property drawer, but there can be as many A+ as you want. Also, (org-entry-get (point) "A+") will not return something meaningful. Regards,