* lisp/org-clock.el (org-clock-idle-time): Org-mode assumed that x11idle
was an available command, and returned an idle time of 0 if it was not
(never idle). Added checks so that org-idle-time will come from emacs'
own current-idle-time if x11idle cannot be found or if it cannot
retrieve the idle time from X11
TINYCHANGE
* UTILITIES/x11idle.c (org-clock-idle-time): Added multiple checks to
functions return values to prevent segfault. Also "fixed" return codes
to fail unless the value could be printed, in which case the program
succeeds.
TINYCHANGE
* doc/org.texi (org-clock-in-last and org-clock-cancel): Update the
defkeys.
TINYCHANGE
After commit fea1b82bef the manual has not been updated, let's do it now.
* contrib/lisp/org-export.el (org-export-define-derived-backend):
Add :export-block keyword. Also fix a generated doc-string.
* contrib/lisp/org-e-beamer.el: Use new keyword.
* contrib/lisp/org-export.el (org-export-define-backend): New macro.
* contrib/lisp/org-e-ascii.el: Use new macro.
* contrib/lisp/org-e-html.el: Use new macro.
* contrib/lisp/org-e-latex.el: Use new macro.
* contrib/lisp/org-e-odt.el: Use new macro.
* contrib/lisp/org-element.el (org-element-block-name-alist): Remove
hard-coded export block names from variable, since they are added
automatically by `org-export-define-backend'.
* testing/lisp/test-org-element.el: Update test.
* contrib/lisp/org-e-html.el (org-e-html-export-as-html): Remove
PUB-DIR, which doesn't make sense in that function.
* contrib/lisp/org-export.el: Apply change in function declaration.
* contrib/lisp/org-e-ascii.el (org-e-ascii-export-as-ascii): New
function.
(org-e-ascii-export-to-ascii): Now autoloaded.
* contrib/lisp/org-e-latex.el (org-e-latex-export-as-latex): New
function.
(org-e-latex-export-to-pdf): Now autoloaded.
(org-e-latex--collect-errors): Renamed from
`org-e-latex-collect-errors'.
(org-e-latex-compile): Apply renaming.
* contrib/lisp/org-e-html.el (org-e-html-export-as-html): New
function.
(org-e-html-export-to-html): Fix docstring.
* contrib/lisp/org-export.el (org-export-dispatch): Use new functions.
* lisp/org-compat.el (org-condition-case-unless-debug): Alias
to `condition-case' when both `condition-case-no-debug' and
`condition-case-unless-debug' is unavailable.
* org-odt.el (org-odt-cleanup-xml-buffers): Use the new alias.
* org-compat.el: Alias `org-condition-case-unless-debug' to
`condition-case-unless-debug' or `condition-case-no-debug'.
* contrib/lisp/org-element.el (org-element-current-element): Use a new
special mode symbol to treat section before first headline
differently. In this case, its boundaries must be computed since it
has not been limited by headline container.
(org-element-parse-elements): Use new special mode symbol.
* contrib/lisp/org-e-latex.el (org-e-latex-subscript,
org-e-latex-superscript): Don't use mathrm in sub/superscripts with
a single LaTeX command or entity.
* contrib/lisp/org-element.el (org-element-set-element): Replace
member with memq.
* contrib/lisp/org-export.el (org-export-get-min-level,
org-export--skip-p, org-export-data, org-export-table-cell-width,
org-export-table-cell-alignment): Replace member with memq.
* contrib/lisp/org-e-ascii.el (org-e-ascii-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-e-html.el (org-e-html-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-e-latex.el (org-e-latex-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-e-odt.el (org-e-odt-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-element.el (org-element-planning-parser): Store
parsed timestamps without the bracket markers.
(org-element-timestamp-interpreter): Store parsed timestamps without
the bracket markers. Also provide a new property: `:range-end'.
(org-element-planning-interpreter, org-element-timestamp-interpreter):
Apply changes to parsers.
* testing/lisp/test-org-element.el: Add test.
* contrib/lisp/org-element.el (org-element-line-break-parser)
(org-element-line-break-interpreter): Line-break object ends where the
line ends. It doesn't contain the next newline character.
(org-element-parse-objects): Refactoring.
* contrib/lisp/org-element.el (org-element-normalize-contents):
Normalize contents of elements in place. This is required to be
sure that a normalized element still is `eq' to its equivalent in
the parse tree.
* contrib/lisp/org-export.el (org-export-data,
org-export-footnote-first-reference-p,
org-export-get-footnote-number, org-export-get-ordinal,
org-export-get-loc, org-export-table-row-group,
org-export-table-cell-starts-colgroup-p,
org-export-table-cell-ends-colgroup-p,
org-export-table-cell-address): Use `eq' instead of `equal' when
possible.
* contrib/lisp/org-e-ascii.el (org-e-ascii-table-row):
* contrib/lisp/org-e-beamer.el (org-e-beamer-select-environment):
* contrib/lisp/org-e-html.el (org-e-html-footnote-section,
org-e-html-latex-environment, org-e-html-paragraph): Use `eq'
instead of `equal' when possible.
* contrib/lisp/org-e-latex.el (org-e-latex--get-footnote-counter):
* contrib/lisp/org-e-odt.el (org-e-odt-do-format-code,
org-e-odt-footnote-def, org-e-odt-item, org-e-odt-latex-environment,
org-e-odt-latex-fragment, org-e-odt-plain-list, org-e-odt-table,
org-e-odt-enumerate-element): Use `eq' instead of `equal' when
possible.
In particular, comparing elements shouldn't be done with `equal' since
they are circular lists. On the other hand, using `eq' is fine if
they belong to the same tree.
* lisp/Makefile: Add LISPN (empty by default) which is used to filter
out files from LISPC. This means that install will not fail due to
a corresponding .elc missing. This might become useful if lisp
source files set "no-byte-compile: t" for whatever reason.
* UTILITIES/org-fixup.el (org-make-org-version): Provide feature
'org-version.
* lisp/org-compat.el (org-check-version): New macro. Check if
org-version.el exists and provide autoloads to that. Otherwise check
if org-fixup.el exists and use it to provide definitions. Finally
if nothing worked, complain about a botched installation and provide
fallback definitions.
* lisp/org.el: Use org-check-version.
This should finally provide the correct behaviour in all supported
use-cases as well as a few corner scenarios that were reported on the
mailing list and allow to always build on Git, ELPA and Emacs Bzr
correctly. The file org-version.el must be added to the Emacs sources
and should be re-generated each time orgmode Git is synced to Emacs
Bzr (it would be best to automate this).
Note that the internal functions (org-release) and (org-git-release)
are not autoloaded when org-version is not present and become only
available when org.el is loaded. This should pose no problem since
they are only used by (org-version), which is autoloaded from org.el.