* lisp/ob-core.el (org-babel-params-from-properties): Use
`org-babel-current-src-block-location' for evaluating new-style
header-argument properties. Remove superfluous save-match-data
clauses. Comment which properties get evaluated where.
* lisp/org.el (org-re-property): Re-implement using full regex for
`org-re-property'. Add optional argument LITERAL to flag when
PROPERTY should to be regex-quoted. Move before definition of
`org-re-property'. (org-re-property-keyword): Remove, functionality
is subsumed by `org-re-property'. (org-property-re): Define using
`org-re-property'. (org-entry-get, org-property-values): Adjust
match number for PROPVAL. (org-entry-put): Use `org-re-property'
instead of `org-re-property-keyword'
This completes the refactoring started in 3c933adaf6.
* lisp/ob-gnuplot.el (org-babel-expand-body:gnuplot): Use new header
arguments.
* lisp/ob-core.el (org-babel-common-header-args-w-values): Mention new
header arguments.
(org-babel-expand-body:generic): Use new header arguments.
* doc/org.texi (Specific header arguments): Document new header
arguments.
* lisp/ob-core.el (org-babel-read-result): More robust matching of
examplized ranges.
(org-babel-result-end): More robust matching of examplized ranges.
* lisp/ox-html.el (html): Replace "HTML_HTML5_FANCY",
"HTML_INCLUDE_STYLE" and "HTML_INCLUDE_SCRIPTS" with, respectively,
":html5-fancy", "html-style" and "html-scripts" options.
(org-html-html5-fancy): Reformat docstring.
* doc/org.texi (HTML doctypes): Reflect keyword removal.
(CSS support): Reflect keyword removal.
The reasoning behind this change is that keywords can only store
strings as value. Therefore, they are not suited for toggles ("nil"
vs nil problem).
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 list
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-params-from-properties'.
(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 of
`org-babel-params-from-properties'.
* lisp/ob-lob.el (org-babel-lob-execute): Handle new list of lists
output of `org-babel-params-from-properties'.
* lisp/ox-latex.el (org-latex-item): Allow hyperref and footnotemark
in items description tags. Also remove a unnecessary hack allowing
footnotemark with an optional argument in the tag.
Initial patch from Rick Frankel.
* lisp/org-element.el (org-element-special-block-parser): Fix typo in
regexp matching block type. Also quote the type so it can contain
special characters.
* testing/lisp/test-org-element.el: Add test.
* lisp/ox-latex.el (org-latex-pdf-process): This argument can cause
problem with links with a relative path, since compilation happens
in a different directory.
* lisp/org.el (org-latex-default-packages-alist): Load "ulem" package
by default. Use "[normalem]" option to preserve \emph definition.
* lisp/ox-latex.el (org-latex-text-markup-alist): Use "\uline" and
"\sout" commands from "ulem" package.
* ox-latex.el (org-latex-guess-babel-language): replace AUTO with
language if AUTO is the option of the LaTeX package Babel.
(org-latex-classes): updated documentation with respect
to `org-latex-guess-babel-language'.
TINYCHANGE
* 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*"
:PROPERTIES:
:header-args: :cache "yes"
:header-args:R: :session "*R-drawer*"
:END:
org-compat (define-obsolete-variable-alias,
define-obsolete-function-alias): Re-introduce argument lists as
XEmacs' byte-compiler otherwise stops compilation.
This means that no other advices must modify these functions with a
different argument list.
org-compat (custom-handle-keyword, define-obsolete-variable-alias,
define-obsolete-function-alias): Remove argument lists from defadvice
and use positional arguments instead of named arguments.
* lisp/org-compat.el (define-obsolete-variable-alias,
define-obsolete-function-alias): Actually remove the third (and any
following) argument from the argument list before calling the
advised function.
* lisp/ob-tangle.el (org-babel-tangle): Collect tangle modes, and only
apply them to the file after all tangling has completed, including the
post-tangle-hook.
* lisp/ox-html.el: Remove fancy string replacements for code and
verbatim text when exporting to html.
Exporting =--option= or ~--option~ to html used to replace -- with a
ndash.
TINYCHANGE
* lisp/org.el (org-latex-default-packages-alist): Document need for
"soul" package.
* lisp/ox-latex.el (org-latex-text-markup-alist): Use \ul (from "soul"
package) instead of \underline for underline text.
* lisp/org.el (org-property-re): Improve definition so that this regex
can be used in all situations. Extend docstring with explanation of
matching groups.
(org-at-property-p): Implement using `org-element-at-point'.
(org-entry-properties, org-buffer-property-keys, org-indent-line):
Use `org-property-re' and adjust match group numbers accordingly.
* lisp/org-element.el (org-element-node-property-parser): Use
`org-property-re' and adjust match group numbers accordingly. Move
`looking-at' out of the let clause to not rely on the unspecified
evaluation order inside the let.
* doc/org.texi (Top): Documentation for new tangle-mode header argument.
(Specific header arguments): Documentation for new tangle-mode header
argument.
(rownames): Documentation for new tangle-mode header argument.
(tangle-mode): Documentation for new tangle-mode header argument.
* lisp/ob-core.el (org-babel-common-header-args-w-values): Adding the
new :tangle-mode header argument.
(org-babel-read): Read values starting with a "#" character as emacs
lisp.
* lisp/ob-tangle.el (org-babel-tangle): Use the new :tangle-mode header
argument.
* lisp/org-pcomplete.el (pcomplete/org-mode/block-option/src): Use the
new :tangle-mode header argument.
* lisp/ob-core.el (org-babel-where-is-src-block-head): return
point-marker instead of point.
(org-babel-current-exec-src-block-head): new global variable which is
bound during `org-babel-execute-src-block-maybe'
(org-babel-get-src-block-info): return a list of 7 elements, last
being the header location
Evaluation backends might need to use the exact location of the block in
original org file. For example when inserting the correct source
references for visual debugging. With this patch the information on
current block is available in `org-babel-current-exec-src-block-head'.