* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): Preserver order
of code blocks from the source document.
* testing/lisp/test-ob-tangle.el (ob-tangle/block-order): New test.
Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-10/msg00062.html>
* lisp/ox-texinfo.el (org-texinfo-quote-block): Do not use NAME
keyword as the emphasized tag. Use a dedicated :tag attribute
instead. Also add :author attribute.
* doc/org-manual.org (Quotations in Texinfo export): New section.
* lisp/ob-core.el (org-babel-strip-quotes): Remove function.
* lisp/org-macs.el (org-strip-quotes): New function.
* lisp/org-compat.el (org-babel-strip-quotes): Alias for new function.
* lisp/ob-haskell.el (org-babel-execute:haskell):
* lisp/ob-octave.el (org-babel-octave-evaluate-session): Use new function.
* lisp/ob-core.el (org-babel-execute-src-block): ":results file" must
be specified in order to return a file.
(org-babel-merge-params): :file and :file-ext no longer imply :results
file.
* testing/lisp/test-ob.el (test-ob/indented-cached-org-bracket-link):
(test-ob/result-file-link-type-header-argument):
(test-ob/result-graphics-link-type-header-argument): Update tests.
Deducing the results from some other arguments is not obvious.
Moreover, it prevents users from setting, e.g., :file-ext, in a node
property, as every block would then create a file.
Reported-by: Alex Fenton <alex@pressure.to>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00469.html>
* lisp/org-colview.el (org-columns--capture-view): Add parameter.
(org-dblock-write:columnview): Add new property.
* doc/org-manual.org (Capturing column view): Document feature.
* testing/lisp/test-org-colview.el (test-org-colview/dblock): Add
test.
This addition allows to specify a list of tags to exclude from column
view tables.
TINYCHANGE
* ox-icalendar.el (org-icalendar-entry): Pick the CLASS
property and pass it to `org-icalendar--vevent' and
`org-icalendar--vtodo'.
(org-icalendar--vevent,org-icalendar--vtodo): Add a new parameter
`class' and use it to generate a `CLASS' field in the `VEVENT'
entry.
TINYCHANGE
* lisp/org.el (org-mode): Do not call `org-refresh-effort-properties'.
(org-set-effort): Avoid using `effort' text property.
* lisp/org-timer.el (org-timer-set-timer): Avoid using
`effort-minutes' text property.
Limit use of `effort' and `effort-minutes' properties to "org-agenda".
* lisp/org-colview.el (org-columns--summary-apply-times): Use the same
rule as everywhere else in Org.
* doc/org-manual.org (Column attributes): Document change.
Reported-by: Bernt Hansen <bernt@norang.ca>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00294.html>
* lisp/ox.el (org-export-expand-include-keyword): Add new parameter
`:coding' for specify the file encoding whith the `#+include:'
keyword.
This allow to use something like:
#+include: "./myfile" :coding cp850-dos
when your Org file is encoded in utf-8 for example.
The default limit of 35 was hard-coded, and was especially annoying
when using an alternative way of selecting from history,
e.g. https://github.com/unhammer/org-mru-clock.
* lisp/org-mobile.el (org-mobile-files):
(org-mobile-use-encryption):
(org-mobile-encryption-password):
(org-mobile-capture-file):
(org-mobile-index-file):
(org-mobile-agendas):
(org-mobile-action-alist):
(org-mobile-edit): Remove reference to "MobileOrg" since the protocol
is not tied to a specific implementation.
* lisp/ob-dot.el (org-babel-execute:dot): Add utf-8 support.
When trying to render a dot file with utf-8 encoded characters, Org
Babel complains about the encodings. This patch makes utf-8 dot files
work.
TINYCHANGE
* lisp/org-bbdb.el (org-bbdb-anniv-extract-date): Fix the pattern to
be able to match a pair.
Reported by
From: leandro@disroot.org
Subject: Anniversaries from BBDB
Newsgroups: gmane.emacs.orgmode
To: emacs-orgmode@gnu.org
Date: Thu, 20 Sep 2018 22:08:12
* lisp/ox-latex.el (org-latex-footnote-reference): Delay footnotes in
item's tag.
(org-latex-item): Footnotes in item's tag appear before footnotes in
contents.
* lisp/org-agenda.el (org-agenda-get-progress): Set "type"
text-property according to why the item was matched.
Previously, the "type" text-property was always set to "closed", even
when an item was actually matched because of its "Clock" or "State"
line.
Note: it's possible that some code might expect the value to be
"closed" in all 3 cases, in which case this could cause a minor
regression, so this change should be carefully considered. However,
in the long run, it seems like the correct thing to do and a
worthwhile change to make.
* lisp/org-agenda.el (org-agenda-get-progress): Accept multiple spaces
between the list bullet and "State" in the state-change regexp.
Previously, logbook list entries with more than one space between the
bullet and the beginning of the entry would be ignored. I.e., if
a bullet is defined in org-list-two-spaces-after-bullet-regexp, two
spaces will be inserted after the bullet, and that prevents
state-changed entries from appearing in the Agenda Log Mode view.
* lisp/org-indent.el (org-indent--compute-prefixes): When
`org-indent-boundary-char' doens't have `org-indent' face property in
Org Indent mode, it causes an appearance issue. When you use Org mode
with Whitespace mode, you can't control `org-indent-boundary-char''s
face neither `whitespace-space' face nor `org-indent' face.
TINYCHANGE
* lisp/org.el: (org-get-tags) Create a clearer separation between
local and inherited tags in the function, so that
org-remove-uninherited tags is only run on inherited tags. This is
important to avoid destroying existing tags when adding new tags.
* testing/lisp/test-org.el: (test-org/get-tags) Add regression test
* lisp/org.el (org-kill-line): Preserve tags when `org-special-ctrl-k'
is non-nil.
* testing/lisp/test-org.el (test-org/kill-line): New test.
Reported-by: Matt Lundin <mdl@imapmail.org>
<http://lists.gnu.org/r/emacs-orgmode/2018-07/msg00122.html>
* lisp/org-clock.el (org-clock-in): Use `org-get-heading' so one can
select an empty task. Also check base buffer instead of comparing
current buffer. Small refactoring.
Reported-by: Robert Irelan <rirelan@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-07/msg00116.html>
* lisp/org-macro.el (org-macro-initialize-templates): Do not
initialize the special "results" macro.
(org-macro-replace-all): Do not raise an error if "results" macro has
no associated template yet.
* lisp/ox.el (org-export-as): Update code comments.
* testing/lisp/test-ox.el (test-org-export/expand-macro): Add test.
* lisp/org.el (org-open-at-point): Do not open everything that looks
like a link, in particular in verbatim or code objects. However,
still conveniently open links in comments, node properties and
keywords.
* lisp/ob-core.el (org-babel-open-src-block-result): Fix docstring,
refactor code.
* lisp/org.el (org-open-at-point): Refactor so as to not call
`org-babel-open-src-block-result' unconditionally.
* lisp/org-macs.el (org-parse-time-string): Fix typo in last commit.
* testing/lisp/test-org-element.el (test-org-element/timestamp):
Rename to `test-org-element/timestamp-parser'.
* lisp/org-macs.el (org-parse-time-string): Refactor code.
`org-parse-time-string' does not need to handle non-Org timestamps,
like "<tomorrow>" or "<+2d>" so we remove the cond branch.
* lisp/org-macs.el (org-matcher-time): Fix circular dependency between
`org-parse-time-string', `org-matcher-time' and `org-2ft'. Improve
docstring.
Reported-by: Allen Li <vianchielfaura@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2017-11/msg00023.html>
* lisp/org.el (org-effort-duration): Remove unused variable.
* lisp/org-compat.el (org-effort-durations): Make
`org-effort-duration' an alias for `org-duration-units'.
* lisp/org-clock.el (org-clock-modify-effort-estimate): Fix docstring.
* doc/org-manual.org (Footnotes): Clarify footnote.
The variable is inactive since introduction of "org-duration" library.
* lisp/org-footnote.el (org-footnote-at-reference-p):
(org-footnote-at-definition-p): Rewrite using Elements library.
(org-footnote-get-next-reference): Use `org-footnote-at-reference-p'.
(org-footnote-next-reference-or-definition): Use old definition for
`org-footnote-at-definition-p' and `org-footnote-at-definition-p'.
This patch aims at reducing the calls to the inaccurate
`org-footnote-in-valid-context-p' function. However,
`org-footnote-next-reference-or-definition' still uses it because the
function is for fontification only, so 1. accuracy matters less
2. Elements has a slower worse case scenario.
* lisp/org-footnote.el (org-footnote-goto-previous-reference): Only
add to mark ring on a successful match. Improve error message when
reference is outside visible part of buffer.
(org-footnote-get-next-reference): Avoid using
`org-footnote-at-reference-p', which is inaccurate, due to
`org-footnote-in-valid-context-p'.
* testing/lisp/test-org-footnote.el (test-org-footnote/goto-previous-reference):
New test.
* lisp/org-agenda.el (org-agenda-mode): Factored out a function for a
loop occuring two times.
* testing/lisp/test-org-agenda.el: test the text scale after
agenda-undo.
* lisp/ob-core.el (org-babel-sha1-hash): Add optional argument to
specify context.
(org-babel-execute-src-block): Use new argument.
* lisp/ob-exp.el (org-babel-exp-src-block): Use new argument.
(org-babel-exp-results): Fix context.
Reported-by: Ken Mankoff <mankoff@gmail.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00117.html>
* ob-scheme.el (org-babel-execute:scheme): Process the :result header
argument to conditionally and appropriately format output.
Currently, `org-babel-execute:scheme' ignores the user specified :result header
argument found in the :result-param parameter and process all output as a table.
The fix is to pass the `result' and :result-param to the `org-babel-result-cond'
function to invoke the corresponding formatting.
For example, the following block incorrectly formats its output as a table:
(list 1 2 3)
| 1 | 2 | 3 |
This patch results in the correct behavior:
(list 1 2 3)
: (1 2 3)
Bringing it inline with the result using Emacs lisp:
(list 1 2 3)
: (1 2 3)
* lisp/org-agenda.el (org-agenda-show-and-scroll-up): Properly display
drawers when SPC is pressed. Hide them again with a universal
prefix argument.
Reported-by: Bernt Hansen <bernt@norang.ca>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00254.html>
* lisp/org-capture.el (org-capture-finalize): Possibly update formula
when inserting the captured rows in the table.
* testing/lisp/test-org-capture.el (test-org-capture/table-line): Add
tests.
Reported-by: "Holst Thomas (PS-EC/ESE4)" <Thomas.Holst@de.bosch.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00276.html>
* lisp/org-agenda.el (org-agenda-mode): Save and restore local
variables text-scale-mode-amount, text-scale-mode,
text-scale-mode-lighter, face-remapping-alist. In effect
this keeps the text-scale at agenda rebuild and redo.
This commit is predicated on the newsgroup post of Samuel Wales "point
moves and zoom level reverts when refreshing agenda" at Sun, 27 May
2018.
* lisp/org.el (org--align-tags-here):
(org-set-tags): Modify buffer only when necessary.
* testing/lisp/test-org.el (test-org/set-tags): Add tests.
Reported-by: Allen Li <darkfeline@felesatra.moe>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00242.html>
* lisp/org.el (org-read-property-value):
* lisp/org-capture.el (org-capture-fill-template): Sidestep
`org-set-property'. Use previous function and `org-entry-put'
instead.
Reported-by: Eric Danan <eric.danan@u-cergy.fr>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00061.html>
* lisp/org.el (org-metaup): Do not leave a character behind when
transposing regions.
(org-metadown): Fix "Transposed regions overlap" error.
Reported-by: Adam Porter <adam@alphapapa.net>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00184.html>
* lisp/org-element.el (org-element-headline-parser): Check for space
after todo-kwd.
* testing/lisp/test-org-element.el (test-org-element/headline-todo-keyword):
Respective tests.
* lisp/ob-tangle.el (org-babel-tangle-jump-to-org): Preserve position
in source block only if it doesn't put point outside of the block.
Reported-by: Frederick Giasson <fred@curbside.com>
<http://lists.gnu.org/r/emacs-orgmode/2018-06/msg00008.html>
* org.el (org--check-org-structure-template-alist): New function
yielding user-error if using old org-structure-template-alist
format.
(org--insert-structure-template-mks):
* org-tempo.el (org-tempo-add-templates): Use new function
* lisp/org-footnote.el (org-footnote-auto-label):
(org-footnote-auto-adjust): Use simpler :safe value.
The point of the :safe value is to determine if the variable is safe,
not to check correctness of its value. Besides, lambda functions
appear as the following in *Help* buffer:
This variable is safe as a file local variable if its value
satisfies the predicate which is a byte-compiled expression.
which is not particularly clear. Let's keep :safe values simple.
* lisp/org-capture.el (org-capture-place-table-line): Fix error when
a precise location is given, e.g. with `file+function' target.
* testing/lisp/test-org-capture.el (test-org-capture/table-line): Add
test.
Reported-by: Thomas Holst <thomas_holst@gmx.de>
<http://lists.gnu.org/r/emacs-orgmode/2018-05/msg00359.html>