* lisp/org.el: Safe-guard agains the accidental loading of compiled
versions of org-loaddefs (these must be bogus). Make sure that
installations that do not have the source files (only .elc) and/or
compress the files (.el.gz, .elc.gz) are correctly treated when such
files must be loaded. If it is necessary to exclude compiled files
from loading, temporarily bind load-suffixes to only (".el") instead
of forcing a literal ".el" suffix (which doesn't work with
compressed files for some functions). Re-implement org-reload to
reload based on features that are currently loaded rather than files
it finds in whatever directory since it is impossible to know if
they were loaded from there. Indicate whether the reloading was
successful or encountered an error in the message area.
* contrib/lisp/org-export.el: Correct reference to non-existing source
file, org-exp-blocks has been removed and the imported function is
now in ob-exp.
* lisp/org.el: Remove utf-8 codepoints in docstrings, bytecode doesn't
work when loaded from compressed files.
Probably a bug in Emacs, but since this is unlikely to be fixed in old
Emacsen, simply don't do it.
* lisp/org-compat.el: Make sure that file-name-directory is getting a
stringp. This avoids a possible "(wrong-type-argument stringp nil)"
error when the library in question does not exist.
* contrib/lisp/org-export.el (org-export-define-backend,
org-export-define-derived-backend): Make sure a given entry won't be
added to menu more than once.
* contrib/lisp/org-e-publish.el (org-e-publish-org-to-pdf): First
publish in base directory, then move results to publishing
directory. It allows to correctly publish a document with images
generated by some Babel code.
* lisp/Makefile: Arrange for an uncompiled org-install.el. This also
ensures that if there's an old org-install.el in the installation
directory, it will be replaced and not linger.
* lisp/org-install.el: Provide an empty file that prints a warning
about an outdated configuration.
* contrib/lisp/org-export.el (org-export-expand-macro): New function.
(org-export-as): Use new function.
* lisp/org.el (org-macro-expand, org-macro-replace-all): Change
signature. The function now accepts an alist of templates so it
doesn't have to rely only on `org-macro-templates'.
(org-macro-initialize-templates): {{{date}}} is not anymore an alias
for {{{time}}}. During export, it will provide the value stored in
DATE keyword instead.
* testing/lisp/test-org-export.el: Add tests.
* testing/lisp/test-org.el: Update tests.
* contrib/lisp/org-export.el (org-export-expand-include-keyword): Use
new functions to comma escape contents of included files when in an
example or a src block.
* lisp/org-element.el (org-element-context,
org-element--get-next-object-candidates): Fix `org-element-context'.
In particular, the restrictions for an object may be different from
those of its container (i.e. table rows and table cells).
* testing/lisp/test-org-element.el: Add tests.
* org-e-odt.el (org-e-odt-styles-dir): Try more directories.
Don't throw an error, just send a message.
(org-e-odt): Fix a bug about deactivating an advice that was
activated by org-odt.el, not org-e-odt.el.
Thanks to Nick Dokos for reporting this.