diff --git a/doc/org.texi b/doc/org.texi index 9d8eb8f27..e92788f47 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -15338,11 +15338,7 @@ per-subtree basis using property drawers (see @ref{Property syntax}). When properties are used to set default header arguments, they are always looked up with inheritance, regardless of the value of @code{org-use-property-inheritance}. Properties are evaluated as seen by the -outermost call or source block.@footnote{The deprecated syntax for default -header argument properties, using the name of the header argument as a -property name directly, evaluates the property as seen by the corresponding -source block definition. This behavior has been kept for backwards -compatibility.} +outermost call or source block. In the following example the value of the @code{:cache} header argument will default to @code{yes} in all code diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index b7c234dab..990991006 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -109,8 +109,34 @@ The modification time will be determined via =vc.el= if the second argument is non-nil. See the manual for details. *** Preparation and completion functions in publishing projects change signature Preparation and completion functions are now called with an argument, -which is the project property list. It used to be dynamically scoped +which is the project property list. It used to be dynamically scoped through the ~project-plist~ variable. +*** Old Babel header properties are no longer supported +Using header arguments as property names is no longer possible. As +such, the following + +#+BEGIN_EXAMPLE +,* Headline +:PROPERTIES: +:exports: code +:var: a=1 b=2 +:var+: c=3 +:END: +#+END_EXAMPLE + +should be written instead + +#+BEGIN_EXAMPLE +,* Headline +:PROPERTIES: +:header-args: :exports code +:header-args: :var a=1 b=2 +:header-args+: :var c=3 +:END: +#+END_EXAMPLE + +Please note that, however, old properties were defined at the source +block definition. Current ones are defined where the block is called. ** New features *** New org-protocol key=value syntax @@ -302,7 +328,7 @@ an :indent parameter, much like the one in the clock table. On the other hand, stars no longer appear in an ITEM field. *** Columns view **** ~org-columns~ accepts a prefix argument -When called with a prefix argument, ~org-columns~ apply to the whole +pWhen called with a prefix argument, ~org-columns~ apply to the whole buffer unconditionally. **** New variable : ~org-agenda-view-columns-initially~ The variable used to be a ~defvar~, it is now a ~defcustom~. diff --git a/lisp/ob-core.el b/lisp/ob-core.el index 88b7acba4..8bc07dd85 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -1412,21 +1412,6 @@ Return a list of association lists of source block params specified in the properties of the current outline entry." (save-match-data (list - ;; DEPRECATED header arguments specified as separate property at - ;; point of definition. - (org-babel-parse-multiple-vars - (delq nil - (mapcar - (lambda (header) - (let* ((arg (symbol-name (car header))) - (val (org-entry-get (point) arg t))) - (and val - (cons (intern (concat ":" arg)) - (org-babel-read val))))) - (org-babel-combine-header-arg-lists - org-babel-common-header-args-w-values - (let ((sym (intern (concat "org-babel-header-args:" lang)))) - (and (boundp sym) (eval sym t))))))) ;; header arguments specified with the header-args property at ;; point of call. (org-babel-parse-header-arguments diff --git a/testing/examples/babel.org b/testing/examples/babel.org index 6f31a2606..556e93ec2 100644 --- a/testing/examples/babel.org +++ b/testing/examples/babel.org @@ -141,7 +141,7 @@ * executing an lob call line :PROPERTIES: - :results: silent + :header-args: :results silent :ID: fab7e291-fde6-45fc-bf6e-a485b8bca2f0 :END: @@ -202,7 +202,7 @@ src_sh{echo 3} Here is one at the beginning of a line. * exported inline source block :PROPERTIES: :ID: cd54fc88-1b6b-45b6-8511-4d8fa7fc8076 -:exports: code +:header-args: :exports code :END: Here is one in the middle src_sh{echo 1} of a line. Here is one at the end of a line. src_sh{echo 2} @@ -230,7 +230,7 @@ Here is one that is also evaluated: src_sh[:exports both]{echo 4} * using the =:noweb-ref= header argument :PROPERTIES: :ID: 54d68d4b-1544-4745-85ab-4f03b3cbd8a0 - :noweb-sep: "" + :header-args: :noweb-sep "" :END: #+begin_src sh :tangle yes :noweb yes :shebang "#!/bin/sh" @@ -259,7 +259,7 @@ Here is one that is also evaluated: src_sh[:exports both]{echo 4} * resolving sub-trees as references :PROPERTIES: :ID: 2409e8ba-7b5f-4678-8888-e48aa02d8cb4 - :results: silent + :header-args: :results silent :END: #+begin_src emacs-lisp :var text=d4faa7b3-072b-4dcf-813c-dd7141c633f3 @@ -315,7 +315,7 @@ and another * in order evaluation on export :PROPERTIES: - :exports: results + :header-args: :exports results :ID: 96cc7073-97ec-4556-87cf-1f9bffafd317 :END: diff --git a/testing/examples/normal.org b/testing/examples/normal.org index c0d95a4f9..800f8c609 100644 --- a/testing/examples/normal.org +++ b/testing/examples/normal.org @@ -7,7 +7,7 @@ This is an example file for use by the Org-mode tests. * top ** code block :PROPERTIES: - :tangle: yes + :header-args: :tangle yes :CUSTOM_ID: code-block-section :END: Here are a couple of code blocks. @@ -18,8 +18,8 @@ Here are a couple of code blocks. #+end_src * accumulating properties in drawers :PROPERTIES: - :var+: bar=2 - :var: foo=1 + :header-args+: :var bar=2 + :header-args: :var foo=1 :ID: 75282ba2-f77a-4309-a970-e87c149fe125 :END: diff --git a/testing/examples/ob-header-arg-defaults.org b/testing/examples/ob-header-arg-defaults.org index 23306c227..789672330 100644 --- a/testing/examples/ob-header-arg-defaults.org +++ b/testing/examples/ob-header-arg-defaults.org @@ -1,7 +1,5 @@ #+TITLE: Tests for default header arguments to Babel source blocks #+OPTIONS: ^:nil -#+PROPERTY: var t1="go1" t3="go3_clobbered" -#+PROPERTY: var+ t2="go2" t3="go3" #+PROPERTY: header-args :var t1="gh1" t2="gh2_clobbered" #+PROPERTY: header-args+ :var t4="gh4" t2="gh2" :var end=9 #+PROPERTY: header-args:emacs-lisp :var t1="ge1" t4="ge4_clobbered" @@ -25,11 +23,10 @@ | Global | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var property | go1 | go2 | go3 | --- | --- | --- | --- | --- | --- | | header-args | gh1 | gh2 | --- | gh4 | --- | --- | --- | --- | --- | | header-args:emacs-lisp | ge1 | --- | --- | ge4 | ge5 | --- | --- | --- | --- | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| Result | ge1 | gh2 | go3 | ge4 | ge5 | --6 | --7 | --8 | --9 | +| Result | ge1 | gh2 | --3 | ge4 | ge5 | --6 | --7 | --8 | --9 | #+CALL: showvar() :results silent #+BEGIN_SRC emacs-lisp :var end=7 @@ -40,7 +37,6 @@ ** Overwrite :PROPERTIES: :ID: a9cdfeda-9f31-4bb5-b694-2cf452f07dfd - :var: t6="to6" :header-args: :var t7="th7" :header-args:emacs-lisp: :var t8="te8" :header-args:emacs-lisp+: :results silent :noweb yes :var end=9 @@ -48,18 +44,16 @@ | Global | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var property | go1 | go2 | go3 | --- | --- | --- | --- | --- | --- | | header-args | gh1 | gh2 | --- | gh4 | --- | --- | --- | --- | --- | | header-args:emacs-lisp | ge1 | --- | --- | ge4 | ge5 | --- | --- | --- | --- | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| | Tree | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var property | --- | --- | --- | --- | --- | to6 | --- | --- | --- | | header-args | --- | --- | --- | --- | --- | --- | th7 | --- | --- | | header-args:emacs-lisp | --- | --- | --- | --- | --- | --- | --- | te8 | --- | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| Result #+CALL | ge1 | gh2 | go3 | ge4 | ge5 | to6 | th7 | te8 | --9 | -| Result noweb | --1 | --2 | --3 | --4 | --5 | to6 | th7 | te8 | --9 | +| Result #+CALL | ge1 | gh2 | --3 | ge4 | ge5 | --6 | th7 | te8 | --9 | +| Result noweb | --1 | --2 | --3 | --4 | --5 | --6 | th7 | te8 | --9 | #+CALL: showvar() :results silent #+BEGIN_SRC emacs-lisp @@ -69,26 +63,22 @@ ** Accumulate :PROPERTIES: :ID: 1d97d258-fd50-4107-a095-e4625bffc57b - :var+: t1="to1" - :var+: t6="to6" :header-args+: :var t2="th2" t3="th3" :header-args:emacs-lisp+: :var t5="te5" end=8 :END: | Global | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |-------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var property | go1 | go2 | go3 | --- | --- | --- | --- | --- | --- | | header-args | gh1 | gh2 | --- | gh4 | --- | --- | --- | --- | --- | | header-args:emacs-lisp | ge1 | --- | --- | ge4 | ge5 | --- | --- | --- | --- | |-------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| | Tree | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |-------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var+ property | to1 | --- | --- | --- | --- | to6 | --- | --- | --- | | header-args+ | --- | th2 | th3 | --- | --- | --- | --- | --- | --- | | header-args:emacs-lisp+ | --- | --- | --- | --- | te5 | --- | --- | --- | --- | |-------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| Result #+CALL | ge1 | th2 | th3 | ge4 | te5 | to6 | --7 | --8 | --9 | -| Result noweb | ge1 | th2 | th3 | ge4 | te5 | to6 | --7 | --8 | --9 | +| Result #+CALL | ge1 | th2 | th3 | ge4 | te5 | --6 | --7 | --8 | --9 | +| Result noweb | ge1 | th2 | th3 | ge4 | te5 | --6 | --7 | --8 | --9 | #+CALL: showvar(end=6) :results silent #+BEGIN_SRC emacs-lisp @@ -98,8 +88,6 @@ ** Complex :PROPERTIES: :ID: fa0e912d-d9b4-47b0-9f9e-1cbb39f7cbc2 - :var: t1="to1" - :var+: t6="to6" :header-args+: :var t2="th2" :header-args:emacs-lisp: :var t5="te5" end=7 :header-args:emacs-lisp+: :results silent :noweb yes :var end=9 @@ -107,18 +95,16 @@ | Global | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var property | go1 | go2 | go3 | --- | --- | --- | --- | --- | --- | | header-args | gh1 | gh2 | --- | gh4 | --- | --- | --- | --- | --- | | header-args:emacs-lisp | ge1 | --- | --- | ge4 | ge5 | --- | --- | --- | --- | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| | Tree | t1 | t2 | t3 | t4 | t5 | t6 | t7 | t8 | t9 | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| var property | to1 | --- | --- | --- | --- | to6 | --- | --- | --- | | header-args+ | --- | th2 | --- | --- | --- | --- | --- | --- | --- | | header-args:emacs-lisp | --- | --- | --- | --- | te5 | --- | --- | --- | --- | |------------------------+-----+-----+-----+-----+-----+-----+-----+-----+-----| -| Result #+CALL | gh1 | th2 | go3 | gh4 | te5 | to6 | --7 | --8 | --9 | -| Result noweb | gh1 | th2 | --3 | gh4 | te5 | to6 | --7 | --8 | --9 | +| Result #+CALL | gh1 | th2 | go3 | gh4 | te5 | --6 | --7 | --8 | --9 | +| Result noweb | gh1 | th2 | --3 | gh4 | te5 | --6 | --7 | --8 | --9 | #+CALL: showvar(end=6) :results silent #+BEGIN_SRC emacs-lisp diff --git a/testing/examples/property-inheritance.org b/testing/examples/property-inheritance.org index de5b53974..6979de595 100644 --- a/testing/examples/property-inheritance.org +++ b/testing/examples/property-inheritance.org @@ -1,36 +1,25 @@ -#+property: var foo=1 -#+property: var+ bar=2 +#+property: header-args :var foo=1 +#+property: header-args+ :var bar=2 #+begin_src emacs-lisp (+ foo bar) #+end_src -#+begin_src emacs-lisp - (org-entry-get (point) "var" t) -#+end_src - * overwriting a file-wide property :PROPERTIES: - :var: foo=7 + :header-args: :var foo=7 :END: #+begin_src emacs-lisp foo #+end_src -#+begin_src emacs-lisp - (org-entry-get (point) "var" t) -#+end_src - * appending to a file-wide property :PROPERTIES: - :var+: baz=3 + :header-args+: :var baz=3 :END: #+begin_src emacs-lisp (+ foo bar baz) #+end_src -#+begin_src emacs-lisp - (org-entry-get (point) "var" t) -#+end_src diff --git a/testing/lisp/test-ob-header-arg-defaults.el b/testing/lisp/test-ob-header-arg-defaults.el index d00c3169e..a78909161 100644 --- a/testing/lisp/test-ob-header-arg-defaults.el +++ b/testing/lisp/test-ob-header-arg-defaults.el @@ -24,53 +24,59 @@ (org-test-at-id "3fdadb69-5d15-411e-aad0-f7860cdd7816" (org-babel-next-src-block 1) (forward-line -1) - (should (equal "ge1/gh2/go3/ge4/ge5/--6/--7/--8/--9" + (should (equal "ge1/gh2/--3/ge4/ge5/--6/--7/--8/--9" (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) (ert-deftest test-ob-header-arg-defaults/global/noweb () (org-test-at-id "3fdadb69-5d15-411e-aad0-f7860cdd7816" (org-babel-next-src-block 1) - (should (equal "ge1/gh2/go3/ge4/ge5/--6/--7" + (should (equal "ge1/gh2/--3/ge4/ge5/--6/--7" (org-babel-execute-src-block))))) (ert-deftest test-ob-header-arg-defaults/tree/overwrite/call () - (org-test-at-id "a9cdfeda-9f31-4bb5-b694-2cf452f07dfd" - (org-babel-next-src-block 1) - (forward-line -1) - (should (equal "ge1/gh2/go3/ge4/ge5/to6/th7/te8/--9" - (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) + (should + (equal "ge1/gh2/--3/ge4/ge5/--6/th7/te8/--9" + (org-test-at-id "a9cdfeda-9f31-4bb5-b694-2cf452f07dfd" + (org-babel-next-src-block 1) + (forward-line -1) + (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) (ert-deftest test-ob-header-arg-defaults/tree/overwrite/noweb () - (org-test-at-id "a9cdfeda-9f31-4bb5-b694-2cf452f07dfd" - (org-babel-next-src-block 1) - (should (equal "--1/--2/--3/--4/--5/to6/th7/te8/--9" - (org-babel-execute-src-block))))) + (should + (equal "--1/--2/--3/--4/--5/--6/th7/te8/--9" + (org-test-at-id "a9cdfeda-9f31-4bb5-b694-2cf452f07dfd" + (org-babel-next-src-block 1) + (org-babel-execute-src-block))))) (ert-deftest test-ob-header-arg-defaults/tree/accumulate/call () - (org-test-at-id "1d97d258-fd50-4107-a095-e4625bffc57b" - (org-babel-next-src-block 1) - (forward-line -1) - (should (equal "ge1/th2/th3/ge4/te5/to6" - (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) + (should + (equal "ge1/th2/th3/ge4/te5/--6" + (org-test-at-id "1d97d258-fd50-4107-a095-e4625bffc57b" + (org-babel-next-src-block 1) + (forward-line -1) + (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) (ert-deftest test-ob-header-arg-defaults/tree/accumulate/noweb () - (org-test-at-id "1d97d258-fd50-4107-a095-e4625bffc57b" - (org-babel-next-src-block 1) - (should (equal "ge1/th2/th3/ge4/te5/to6/--7/--8" - (org-babel-execute-src-block))))) + (should + (equal "ge1/th2/th3/ge4/te5/--6/--7/--8" + (org-test-at-id "1d97d258-fd50-4107-a095-e4625bffc57b" + (org-babel-next-src-block 1) + (org-babel-execute-src-block))))) (ert-deftest test-ob-header-arg-defaults/tree/complex/call () - (org-test-at-id "fa0e912d-d9b4-47b0-9f9e-1cbb39f7cbc2" - (org-babel-next-src-block 1) - (forward-line -1) - (should (equal "gh1/th2/go3/gh4/te5/to6" - (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) + (should + (equal "gh1/th2/--3/gh4/te5/--6" + (org-test-at-id "fa0e912d-d9b4-47b0-9f9e-1cbb39f7cbc2" + (org-babel-next-src-block 1) + (forward-line -1) + (org-babel-execute-src-block nil (org-babel-lob-get-info)))))) (ert-deftest test-ob-header-arg-defaults/tree/complex/noweb () - (org-test-at-id "fa0e912d-d9b4-47b0-9f9e-1cbb39f7cbc2" - (org-babel-next-src-block 1) - (should (equal "gh1/th2/--3/gh4/te5/to6/--7/--8/--9" - (org-babel-execute-src-block))))) + (should + (equal "gh1/th2/--3/gh4/te5/--6/--7/--8/--9" + (org-test-at-id "fa0e912d-d9b4-47b0-9f9e-1cbb39f7cbc2" + (org-babel-next-src-block 1) + (org-babel-execute-src-block))))) (provide 'test-ob-header-arg-defaults) diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el index 58c9ccddf..858a85ff3 100644 --- a/testing/lisp/test-ob.el +++ b/testing/lisp/test-ob.el @@ -136,15 +136,14 @@ should still return the link." * elisp forms in header arguments :PROPERTIES: - :var: prop = (* 7 6) + :header-args: :var prop = (* 7 6) :END: #+begin_src emacs-lisp prop #+end_src" (goto-char (point-min)) (org-babel-next-src-block) - (let ((info (org-babel-get-src-block-info))) - (should (= 42 (org-babel-execute-src-block)))))) + (should (= 42 (org-babel-execute-src-block))))) (ert-deftest test-ob/simple-named-code-block () "Test that simple named code blocks can be evaluated." diff --git a/testing/lisp/test-property-inheritance.el b/testing/lisp/test-property-inheritance.el index a84160fa3..ad8720d9b 100644 --- a/testing/lisp/test-property-inheritance.el +++ b/testing/lisp/test-property-inheritance.el @@ -33,36 +33,18 @@ (org-babel-next-src-block 1) (should (equal 3 (org-babel-execute-src-block))))) -(ert-deftest test-org-property-accumulation-top-val () - (test-org-in-property-buffer - (goto-char (point-min)) - (org-babel-next-src-block 2) - (should (string= "foo=1 bar=2" (org-babel-execute-src-block))))) - (ert-deftest test-org-property-accumulation-overwrite-use () (test-org-in-property-buffer (goto-char (point-min)) - (org-babel-next-src-block 3) + (org-babel-next-src-block 2) (should (= 7 (org-babel-execute-src-block))))) -(ert-deftest test-org-property-accumulation-overwrite-val () - (test-org-in-property-buffer - (goto-char (point-min)) - (org-babel-next-src-block 4) - (should (string= "foo=7" (org-babel-execute-src-block))))) - (ert-deftest test-org-property-accumulation-append-use () (test-org-in-property-buffer (goto-char (point-min)) - (org-babel-next-src-block 5) + (org-babel-next-src-block 3) (should (= 6 (org-babel-execute-src-block))))) -(ert-deftest test-org-property-accumulation-append-val () - (test-org-in-property-buffer - (goto-char (point-min)) - (org-babel-next-src-block 6) - (should (string= "foo=1 bar=2 baz=3" (org-babel-execute-src-block))))) - (provide 'test-ob-R) ;;; test-ob-R.el ends here