* lisp/org-clock.el (org-clock-find-position): Make sure clocks, and
possibly drawer containing them, are inserted after planning info
and any property drawer.
* lisp/org.el (org-special-properties): Remove "CLOCK" as a special
keyword.
(org-entry-properties): Rewrite function according to property drawer
syntax. Change signature.
(org-entry-get): Apply signature change.
"CLOCK" removal is motivated by the fact that it isn't listed as
a special keyword in the manual, it is not used throughout the code
base, and there is no meaningful value for this property.
* lisp/org.el (org-entry-put): Refactor code, taking into account
changes to property drawer syntax. Fix errors when handling special
values, which cannot be symbols. Remove CLOCKSUM handling.
(org-entry-get): Refactor code.
(org-entry-delete): Small refactoring, do not rely on
`org-remove-empty-drawer-at' since parser is not necessary here.
(org-buffer-property-keys): Fix infloop. Ignore final "+" in extended
properties. Refactor code.
(org-property-values): Include extended values.
(org-entry-get-with-inheritance, org-insert-property-drawer): Small
refactoring.
(org-insert-drawer): Fix docstring and comments.
(org--update-property-plist): Renamed from org-update-property-plist.
Use side effects. Improve speed.
CLOCKSUM special property in `org-entry-put' is buggy (symbols instead
of strings) and ignores provided value. Since the expected behaviour
is neither clear nor documented, the property is not handled anymore
by the function.
* lisp/org.el (org-at-property-p): Rewrite. Don't use `org-element-at-point'. It
is faster to retrieve the property drawer location instead.
(org-get-property-block): Update function and docstring. Change
signature.
(org-entry-properties, org-entry-put, org-buffer-property-keys): Apply
signature change.
* lisp/org-element.el (org-element--get-node-properties,
org-element--get-time-properties): New functions.
(org-element-headline-parser, org-element-inlinetask-parser): Use new
functions.
(org-element-property-drawer-parser): Change signature. Simplify
parsing.
drawer.
(org-element--current-element, org-element--next-mode): Property
drawers are located right after a headline or a planning element.
* testing/lisp/test-org-element.el (test-org-element/drawer-parser,
test-org-element/node-property,
test-org-element/property-drawer-interpreter): Update tests.
(test-org-element/property-drawer-parser): Add tests.
* testing/lisp/test-org.el (test-org/indent-line,
test-org/indent-region, test-org/forward-paragraph,
test-org/backward-paragraph): Update tests.
* lisp/org.el (org--flyspell-object-check-p): New function.
(org-mode-flyspell-verify): Check that table row or verse block under
point is not empty. Use previous function.
* lisp/ox-latex.el (org-latex-caption-above): Change default value.
`org-latex-table-caption-above' is removed completely since default
value do not match anymore.
See <http://permalink.gmane.org/gmane.emacs.orgmode/91363>.
* lisp/ox-latex.el (org-latex--math-table): Properly create matrix if
"tabular" environment is used. Make sure cells are centered instead
of applying usual alignment rules.
* lisp/ox-latex.el (org-latex-caption-above): New variable.
(org-latex-table-caption-above): Remove variable. Make it an obsolete
alias of the previous one.
(org-latex--caption-above-p): New function.
(org-latex--inline-image, org-latex-src-block,
org-latex-special-block, org-latex table): Handle new variable.
* doc/org.texi (Publishing options):
* etc/ORG-NEWS: Document new option.
* lisp/org-clock.el (org-clock-into-drawer): Fix processing of
properties so that they can override global value.
Previously, if the 'CLOCK_INTO_DRAWER' or 'LOG_INTO_DRAWER' property was
nil, the local property setting would not override the global
variable [1]. These changes make the behavior match the docstring
description ('CLOCK_INTO_DRAWER' and 'LOG_INTO_DRAWER' properties
override `org-clock-into-drawer', with 'CLOCK_INTO_DRAWER' given
precedence).
[1] http://stackoverflow.com/questions/26405415/how-to-locally-unset-org-clock-into-drawer-t
TINYCHANGE
* lisp/org-attach.el (org-attach-archive-delete): New option
controlling what to do with attachments when
archiving.
(org-attach-archive-delete-maybe): New function that runs as a hook on
org-archive-hook. Checks the value of `org-attach-archive-delete',
and behaves accordingly.
lisp/org-capture.el (org-capture-place-item): When starting a new list
use org-indent-line to establish the correct indentation rather than
just using 0.
Creating an entry in org-capture-templates of type item adds entries
into a list, however, currently, if the list is empty then the first
list item will always be indented to depth 0 (so hard on the left),
which looks like this:
* Top Level
** Second Level
- item #1
- item #2
- item #3
This is fine if org-adapt-indentation is nil, however, with the
default value of t lists should be indented more like this:
* Top Level
** Second Level
- item #1
- item #2
- item #3
The patch below changes org-capture-place-item so that, when starting
a new list, the items are indented as above.
Care is taken to preserve two features of the existing behaviour,
first, when adding to an existing list, new items are indented to
match the items already in the list. And secondly, when there is some
introductory text before the list new items are inserted after the
text, like this:
* Top Level
** Second Level
This is some introductory text:
- item #1
- item #2
- item #3
TINYCHANGE
* lisp/org-list.el (org-list-item-body-column): Take into
consideration empty items and bullets followed by two spaces.
* lisp/org.el (org--get-expected-indentation): Fix return value for
items in lists.
(org-indent-region): Fix infloop when indenting some types of plain
lists. Also fix error when region starts with blank lines at the
beginning of the buffer.
* testing/lisp/test-org.el (test-org/indent-region): Add tests.
* lisp/org-agenda.el (org-get-entries-from-diary): Use the suitable
display function. Drop the usage of the obsolete diary-display-hook.
fancy-diary-display has been dropped in Emacs 25. diary-fancy-display
is the long known replacement of fancy-diary-display.
diary-display-hook has been marked obsolete before Emacs 23.2.
* lisp/ox.el (org-export-async-start): Limit first argument to lambda
expressions.
* lisp/ox-publish.el (org-publish, org-publish-all,
org-publish-current-file): Replace `ignore', per limit stated above.
Due to a hack allowing to provide quasi-quoted lambda expressions,
symbols are not allowed as result handler. This limitation is not
much of a problem as `org-export-async-start' is only meant to be used
internally.
* ob-C.el (org-babel-C-expand-C, org-babel-C-expand-D): Let
:includes, :defines, :imports accept several items separated by
blanks without enclosing them in parenthesis.
Thanks to Will Everett for reporting this.
* org.el (org-mode-map): change key-binding from C-c p to C-c " a add
C-c " g key-binding for Gnuplot
(org-tbl-menu): add sub-menu for plotting featuring Gnuplot and ascii
plot
* org-table.el (orgtbl-setup): add sub-menu for plotting featuring
Gnuplot and ascii plot
* org-table.el (org-table-formula-create-columns): New variable.
(org-table-recalculate): Use the new org-table-formula-make-new-cols
customization to control whether org creates new columns when
a formula explicitly targets them.
* lisp/org-agenda.el (org-get-entries-from-diary): Use the suitable
display function. Drop the usage of the obsolete diary-display-hook.
fancy-diary-display has been dropped in Emacs 25. diary-fancy-display
is the long known replacement of fancy-diary-display.
diary-display-hook has been marked obsolete before Emacs 23.2.
* lisp/org-table.el (org-table--to-generic-cell): Use
`org-element-interpret' data when parameter :raw is non-nil so
pseudo elements and objects are not ignored.
* testing/lisp/test-org-table.el (test-org-table/to-latex): Add test.
Thanks to Giuseppe Lipari for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/91559
* lisp/ob-R.el: (ob-R-transfer-variable-table-with-header)
(ob-R-transfer-variable-table-without-header): Add package name to
call of R function `read.table'.
Thus, it now reads `utils::read.table'. This clarifies the call as
well as avoids "could not find function" error in R with the devtools
package. See
<https://github.com/hadley/devtools/issues/336#issuecomment-23517837>.
* ob-clojure.el (org-babel-execute:clojure): Fix compatibility
issue with cider >0.7.0. This breaks compatibility with Cider
<=0.7.0.
Thanks to Daniel Szmulewicz for the suggested fix.