* lisp/org.el (org-clone-subtree-with-time-shift): Accept a negative
value to shift the timestamp backward in time.
* testing/lisp/test-org.el (test-org/clone-with-time-shift): Add test.
Reported-by: Scott Randby <srandby@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2019-01/msg00151.html>
Signed-off-by: Yasushi SHOJI <yasushi.shoji@gmail.com>
* lisp/ob-exp.el (org-babel-exp-results): Use :eval instead of :export
since the function is used to evaluate a source block before
exporting it.
Reported-by: Alexandre Duret-Lutz <adl@lrde.epita.fr>
<http://lists.gnu.org/r/emacs-orgmode/2019-01/msg00226.html>
* lisp/org-capture.el (org-capture-place-table-line): Remove
unnecessary call to `org-table-align', which could insert a spurious
newline character.
Reported-by: Thomas Holst <Thomas_Holst@gmx.de>
<http://lists.gnu.org/r/emacs-orgmode/2019-01/msg00233.html>
* lisp/org-protocol.el (org-protocol-flatten):
Rewrite as top-level alias, as per Stefan’s suggestion,
to avoid compiler warnings.
Make org-protocol-flatten always an alias
c5e02f2bce28f3b1f2006ce1f208f4a92ca05ed9
Paul Eggert
Mon Dec 17 13:32:52 2018 -0800
* lisp/org-protocol.el (org-protocol-flatten): Make it an alias for
flatten-tree if available.
Some more flatten-tree aliases
ef144113f3473f39d3df3e96e780c832e0d5420e
Paul Eggert
Mon Dec 17 10:26:15 2018 -0800
* lisp/org-compat.el (org-current-time-as-list): New function for
compatibility with Emacsen before 27.1.
This is a follow-up to the backport of Emacs's 93fe42094.
This follows on a suggestion by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-08/msg00991.html
(Bug#32902).
* lisp/org-id.el (org-id-uuid, org-id-time-to-b36):
Don't assume timestamps default to list form.
New (TICKS . HZ) timestamp format
93fe420942c08111a6048af7c4d7807c61d80a09
Paul Eggert
Sat Oct 6 23:31:04 2018 -0700
* lisp/org-compat.el (file-attribute-modification-time,
file-attribute-size): New functions for compatibility with Emacsen
before 26.1.
This is a follow-up to the backport of Emacs's 662bee7d7.
* lisp/org.el:
* lisp/ox-publish.el:
Prefer ash to lsh when either will do.
Audit use of lsh and fix glitches
f18af6cd5cb7dbbf7420ec2d3efed4e202c4f0dd
Paul Eggert
Tue Aug 21 13:44:32 2018 -0700
* lisp/org-compat.el (proper-list-p): New function for compatibility
with Emacsen before 27.1.
This is a follow-up to the backport of Emacs's 2fde6275b.
* lisp/org-colview.el (org-columns-compute-all):
* lisp/org-timer.el (org-timer-start):
(org-timer-pause-or-continue):
(org-timer-seconds):
(org-timer-set-timer):
* lisp/org.el (org-read-date-analyze): Restore use of `current-time`
for testing purposes.
In these spots, we call (current-time) so that it can be overriden in
tests. Add a comment about this in the cases that don't have one.
* lisp/org-agenda.el (org-agenda-to-appt):
* lisp/org-clock.el (org-clock-resolve-clock)
(org-clock-resolve, org-resolve-clocks-if-idle):
* lisp/org-colview.el (org-columns-edit-value, org-columns)
(org-agenda-columns):
* lisp/org-element.el (org-element--cache-interrupt-p)
(org-element--cache-sync):
* lisp/org-habit.el (org-habit-get-faces)
(org-habit-insert-consistency-graphs):
* lisp/org-indent.el (org-indent-add-properties):
* lisp/org-timer.el ((org-timer-show-remaining-time):
* lisp/org.el (org-babel-load-file, org-current-time)
(org-today, org-auto-repeat-maybe)
(org-small-year-to-year, org-goto-calendar):
* lisp/ox.el (org-export-insert-default-template):
Use nil instead of (current-time) where either will do, as nil is
a bit more efficient and should have less timing error.
Prefer nil to (current-time) when either works
c75f505dea6a560b825384cf3d277690f86840bf
Paul Eggert
Fri Oct 20 19:42:23 2017 -0700
Note(km): The changes that will reverted in the next commit have been
dropped from the ChangeLog entries above.
* lisp/org-macs.el (org-parse-time-string): Document matching of
YYYY-MM-DD substring.
org-clock-special-range used to pass in <-50001-11-30 Tue 00:00> with
the expectation that the year would be parsed as -50001, not 0001.
Mention this YYYY-MM-DD format assumption in the docstring to help
avoid such cases.
* lisp/org-clock.el (org-clock-special-range): Use nil to represent
`untilnow'.
* lisp/org-clock.el (org-clocktable-steps): For `untilnow' block, set
set timestamp to 2003.
* doc/org-manual.org (The clock table): Document `untilnow' floor when
used with :step.
For `untilnow', org-clock-special-range sets the start to
"<-50001-11-30 Tue 00:00>", but org-parse-time-string actually assumes
a YYYY-MM-DD format and parses the year as 0001. By chance, this is
still a really old date, so no one noticed. However, with the port of
Emacs's fde99c729c (Port recent org-clock fix to POSIX time_t,
2018-03-28), test-org-clock/clocktable/ranges would fail if the system
supports the oldest date tried, "<-67715-09-22 Tue 17:51>".
But this "encode-time -> format-time-string -> org-parse-time-string"
dance is mostly unnecessary. All the current org-clock-special-range
callers except for org-clocktable-steps (1) explicitly check if the
starting time is nil, (2) don't use the starting time, or (3) pass it
directly to org-clock-sum, which handles nil values. And
org-clock-sum executes the same codepath when nil is passed instead of
"really old date".
Update org-clocktable-steps to use 2003 (the year Org was created) as
the starting point when org-clock-special-range returns nil for the
starting time. This is more efficient because we don't needlessly
calculate steps over a large chunk of time that almost certainly
doesn't have any clocked time. And it won't run into the portability
issues like Emacs's fde99c729c. 2003 _should_ be an appropriate
effective starting date, since we don't expect clocked time before the
existence of Org. If this turns out to be an issue (e.g., someone
converted reports from a pre-Org and still makes clock tables that
include those times), we can make this value configurable.
* lisp/org-clock.el (org-clock-resolve-clock): Store heading location
as marker instead of raw position to ensure that org-clock-in is
called in the correct buffer.
This fixes a regression introduced by 503ede74b (org-clock: Fix
resolving clocks, 2018-12-06).
* lisp/org.el (org-get-tags): Now org-get-tags returns tags list with
tags from #+filetags in the beginning.
* testing/lisp/test-org.el (test-org/get-tags): Add test.
Fixes regression caused by commit
<5e27b2fd32>.
Bug reported in
<https://lists.gnu.org/r/emacs-orgmode/2019-01/msg00052.html>.
* lisp/org.el (org-align-tags): Move point to the beginning of the
visible buffer first before attempting to look for Org headline
tags.
* testing/lisp/test-org.el (test-org/tag-align): Add test.
Fixes a regression in
1615261cdc.
Bug reported in
<https://lists.gnu.org/r/emacs-orgmode/2019-01/msg00051.html>.
* lisp/org.el: add a 'native value to org-highlight-latex-and-related
that allows to use tex native font locking by means of
org-src-font-lock-fontify-block.
* etc/ORG-NEWS: add note about new feature.
* lisp/org.el: remove :use-xcolor option and make dvipng use xcolor
since usage of CLI fg and bg color args is incompatible with docs
that themselves use xcolor (e.g. through tikz).
* etc/ORG-NEWS: add incompatible change note.
* lisp/org.el (org-dynamic-block-insert-dblock,
org-dynamic-block-alist, org-dynamic-block-functions,
org-dynamic-block-types, org-dynamic-block-define,
org-dynamic-block-function): New variables, New functions.
* lisp/org-keys.el (org-dynamic-block-insert-dblock): Add binding for
the function.
(org-clock-report, org-columns-insert-dblock): Remove function
keybindings. Mark them as obsolete.
* doc/org-manual.org (Dynamic Blocks): : Add manual for dispatch
command `org-dynamic-block-insert-dblock'.
* testing/lisp/test-org-clock.el: New test.
* doc/org-manual.org (Headlines): Refer to new section.
(Dynamic Headline Numbering): New section.
* lisp/org-num.el:
* testing/lisp/test-org-num.el: New files.
* lisp/org.el (org-fontify-extend-region): New function.
(org-compute-latex-and-related-regexp):
(org-do-latex-and-related): Revert recent changes.
(org-set-font-lock-defaults): Use new function.
* lisp/ox-html.el (org-html-self-link-headlines): New variable.
(org-html-headline): Create a hyperlink on headlines
when :html-self-link-headlines is set.
* lisp/org-colview.el (org-columns--displayed-value): Add new optional
argument.
(org-columns--collect-values): Use new argument when called from
Agenda mode.
Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://lists.gnu.org/r/emacs-orgmode/2018-12/msg00040.html>
* lisp/org-protocol.el (org-protocol-capture): Do not corrupt
`org-stored-links' when there is no URL to capture.
(org-protocol-do-capture): Remove function.
Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://lists.gnu.org/r/emacs-orgmode/2018-12/msg00131.html>
* lisp/org-capture.el (org-capture-finalize): Do not save the target
capture file if :no-save keyword is non-nil in the capture template.
* doc/org-manual.org (Template elements),
lisp/org-capture.el (org-capture-templates): Document :no-save.
Ref: https://lists.gnu.org/r/emacs-orgmode/2018-09/msg00325.html
* lisp/ox-html.el (org-html-headline): Add new property
HTML_HEADLINE_CLASS to assign class attribute to headline.
* doc/org-manual.org (CSS support): Document new property
HTML_HEADLINE_CLASS.
* lisp/org-capture.el (org-capture-place-entry): Store position at the
beginning of the capture entry, not at its end.
* testing/lisp/test-org-capture.el (test-org-caputre/entry): Add test.
* lisp/org-clock.el (org-clock-resolve-clock): Fix resolving clocks
when the entry is empty barring the clock itself and possibly the
clock drawer, and `org-clock-out-remove-zero-time-clocks' is
non-nil.
* lisp/org.el (org-insert-heading): Make C-RET more predictable. In
particular, it should not eat all the blank lines at the end of the
tree.
Reported-by: David Masterson <dsmasterson@outlook.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-11/msg00275.html>
* lisp/org-element.el (org-element--current-element): Increase number
of checks to avoid more false positive.
In particular "+-+" is not recognized anymore as a table.el table.
* lisp/org-pcomplete.el (org-thing-at-point): Only complete where tags
could be located.
(pcomplete/org-mode/tag): Add paring argument to avoid looking at
other arguments on the same line.
* testing/lisp/test-org-pcomplete.el (test-org-pcomplete/tag): New test.
Reported-by: Alain.Cochard@unistra.fr
<http://lists.gnu.org/r/emacs-orgmode/2018-11/msg00154.html>
* lisp/org.el (org-auto-repeat-maybe): Fix speed regression introduced
in "Also obey to repeaters in inactive time stamps".
Reported-by: Marco Wahl <marcowahlsoft@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-11/msg00078.html>
* lisp/org.el (org-repeat-re): Accept inactive time stamps.
(org-auto-repeat-maybe): Small refactoring. Find additional repeaters
also in inactive time stamps.
* testing/lisp/test-org.el (test-org/auto-repeat-maybe): Add test.
Reported-by: Leo Gaspard <orgmode@leo.gaspard.io>
<http://lists.gnu.org/r/emacs-orgmode/2018-11/msg00078.html>
* lisp/ox-texinfo.el (org-texinfo-template): Allow quotes around value
in TEXINFO_FILENAME keyword.
This is consistent with usual Org behavior: file names can optionally
be enclosed within quotes.
* lisp/org.el (org--tags-expand-group): New function.
(org-tags-expand): Refactor code. Fix expansion of identical tag
groups in the same match string. Fix docstring. Remove unused
argument.
* testing/lisp/test-org.el (test-org/tags-expand): New test.
Reported-by: Omari Norman <omari@smileystation.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-10/msg00360.html>
* lisp/org-src.el (org-src-source-file-name): New variable.
(org-src--edit-element): Set new variable.
* lisp/org.el (org-store-link): Store the source file along with the
coderef so as to insert link in other documents than the one
where the code block is located.
Reported-by: stardiviner <numbchild@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-10/msg00293.html>
* lisp/org-src.el (org-src--source-buffer): Rename to `org-src-source-buffer'.
(org-src-source-type): New function.
(org-edit-src-save): Apply renaming.
* lisp/org.el (org-store-link): When in an edit buffer not editing
a source block, there is no point in inserting a coderef.
* lisp/org-clock.el (org-clocktable-steps): new fn
org-clocktable-increment-day to add/subtract days that are not
exactly 24 hours
* testing/lisp/test-org-clock.el (test-org-clock/clocktable/step): Add
test for DST.
* lisp/ox-ascii.el (org-ascii-convert-region-to-ascii):
(org-ascii-convert-region-to-utf8): New functions.
* doc/org-manual.org (Export in Foreign Buffers): Document new
functions.
Reported-by: Alexander Adolf <alexander.adolf@condition-alpha.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-10/msg00294.html>
* ob-clojure.el (org-babel-clojure-initiate-session): Improve ob-clojure
initialize session way to support CIDER new API.
* etc/ORG-NEWS: Add declare for new :session support feature.
* lisp/org-capture.el (org-capture-place-plain-text): Fix plain
capture at the end of the buffer.
* testing/lisp/test-org-capture.el (test-org-capture/plain): New test.