Commit Graph

16219 Commits

Author SHA1 Message Date
Kyle Meyer 824a4a14b0 ol-gnus: Prefer nnselect to nnir if available
* lisp/ol-gnus.el (org-gnus-store-link): Use nnselect when available.

In the master branch of the Emacs repository, f103e89c1d (Add aliases
for recent Gnus nnselect changes, 2020-09-07) switched
org-gnus-store-link over to using nnselect, but that can't be ported
as is because it isn't backward compatible.  Make a similar change
that includes compatibility kludges.
2020-09-07 23:19:15 -04:00
Kyle Meyer 1c5bebdad9 Merge branch 'maint' into master 2020-09-07 21:23:16 -04:00
Nicolas Goaziou 13dfab3fb2 ox-texinfo: Tiny refactoring
* lisp/ox-texinfo.el (org-texinfo-link): Use
`org-texinfo--sanitize-content'.

(cherry picked from commit 8fd24c0a53)
[km]: This fixes a double-escaping regression introduced by 706970efb
      (ox-texinfo.el: Fix escaping special chars in raw-path,
      2020-06-05).
2020-09-07 21:15:40 -04:00
Bastien 19b741583d org-agenda.el (org-find-top-headline): Fix bug
* lisp/org-agenda.el (org-find-top-headline): Fix bug: don't
inclure the statistic cookie in the headline text as this can be
updated during agenda interaction.

Reported-by: William Horne <will.m.horne@gmail.com>
See <https://orgmode.org/list/CA+2+CK-TofaNS1FOyZGhd3jPKb-XNOYM-0ouP9=tW=qepKm7wg@mail.gmail.com>
2020-09-07 20:15:38 +02:00
Bastien 07c6b11258 ob-shell.el: New option `org-babel-shell-results-defaults-to-output'
* lisp/ob-shell.el (org-babel-shell-results-defaults-to-output):
New option.

* testing/lisp/test-ob-exp.el (ob-exp/exports-inline): Fix test.

See <https://orgmode.org/list/CA+A2iZaziAfMeGpBqL6qGrzrWEVvLvC0DUw++T4gCF3NGuW-DQ@mail.gmail.com>
2020-09-07 19:30:04 +02:00
Jack Kamm 6f9929fc3b ob-python: Replace session value format string with function
* lisp/ob-python.el (org-babel-python--eval-ast): Removed.
(org-babel-python-format-session-value): New function that returns
Python code to evaluate for sessions with value results.
(org-babel-python-evaluate-session): Replace
org-babel-python--eval-ast with org-babel-python-format-session-value.

Motivation is that the new function is more flexible than the old
format string.  We can pass in the full result-params, which can be
used to add more formatting options in future.  We could also add more
optional arguments in the future to extend this functionality.

This function will be particularly helpful for a couple patches after
9.4:
- ob-reticulate
  - https://orgmode.org/list/875z98gj4f.fsf@gmail.com/
- Improved formatting
  - https://orgmode.org/list/87eenpfe77.fsf@gmail.com/

However, I add this function in now 9.4, so those future patches can
rely on it in 9.4.  In particular, ob-reticulate will probably be
packaged separately from org-mode, and I want to provide a stable
interface to it so that it can be released after 9.4.
2020-09-07 09:39:21 -07:00
Bastien dab32da708 lisp/org.el: Bump version to 9.3.8
* lisp/org.el: Bump version to 9.3.8.
2020-09-07 17:40:17 +02:00
Bastien 11ef7454ab org.el (org-fixup-indentation): Fix logbook drawers indentation
* lisp/org.el (org-fixup-indentation): Fix logbook drawers
indentation.

Reported-by: Matt Lundin <mdl@imapmail.org>
https://orgmode.org/list/87r1t8sdhd.fsf@fastmail.fm/
2020-09-07 09:17:21 +02:00
Bastien 81d49b5adb ob-emacs-lisp.el: Don't wrap execution within `save-window-excursion'
* lisp/ob-emacs-lisp.el (org-babel-execute:emacs-lisp): Don't wrap
execution within `save-window-excursion'.

Reported-by: Ihor Radchenko <yantar92@gmail.com>
https://orgmode.org/list/87tv5vt545.fsf@gmail.com
2020-09-07 07:37:19 +02:00
Bastien 69a91ba8bc Merge branch 'maint' 2020-09-07 07:32:28 +02:00
Bastien 7769518f3a Use the `org-block' face for every true blocks
* lisp/org-faces.el (org-block): Tiny docstring enhancement.

* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Use the
`org-block' face for every true blocks.

Reported-by: Sébastien Miquel <sebastien.miquel@posteo.eu>
https://orgmode.org/list/42749c98-ddfe-bad4-43a5-1119e24972bd@posteo.eu
2020-09-07 07:31:11 +02:00
Bastien 9f0af69dd2 Skip archived headings when tangling and exporting
* lisp/org.el (org-in-archived-heading-p): New function.

* lisp/ob-exp.el (org-babel-exp-process-buffer):
* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): Use
`org-in-archived-heading-p' to skip archived headings when tangling
and exporting.

* testing/lisp/test-org.el (test-org/in-archived-heading-p): Add
test for `org-in-archived-heading-p'.

Reported-by: flare <gabrielxaviersmith@gmail.com>
See https://orgmode.org/list/877dt9ey2c.fsf@gmail.com/
2020-09-07 06:51:06 +02:00
Jack Kamm 4df12ea391 ob-python: Improve robustness of session evaluation
* lisp/ob-python.el (py-send-string-no-output): Remove external function.
(py-shell-send-string): Add external function.
(org-babel-python--eval-ast): Remove blank lines.
(org-babel-python--send-string): New function to send string to Python
process and return output.
(org-babel-python-evaluate-session): Call
org-babel-python--send-string to evaluate code.

New function to send code to Python session.  It has the following
desirable properties:
- Wait for evaluation to finish before returning.
- Input can have arbitrary spaces/newlines.
- Avoid echoing input to the session.
- Echo all output to the session.
- Output is also captured and returned separately.
- Avoid adding extra prompts to the session.
- Work well with both Python and IPython repls.

The implementation borrows from `python-shell-send-string-no-output'
and `org-babel-comint-with-output'.  This commit is related to
632ceabb1, which tried to implement the same thing, but also
introduced bugs, and had to be partially reverted in b5709ddc9.
2020-09-06 18:15:04 -07:00
Jack Kamm 5d289d2b3e ob-python: fix startup messages leaking into output
* lisp/ob-python.el (org-babel-python-initiate-session-by-key): Remove
workaround for emacs<24.1.  Sleep after starting Python, to prevent
startup messages leaking into output results.
* testing/lisp/test-ob-python.el (test-ob-python/session-multiline):
Remove workaround for startup message leaking into results.
2020-09-06 18:15:04 -07:00
Bastien 15a6836e4f ob-core.el: Fix `org-babel--string-to-number'
* lisp/ob-core.el (org-babel--string-to-number): Exclude strings
not matching "^[0-9-e.+ ]+$" from being interpreted as numbers.

Reported-by: Kaushal Modi <kaushal.modi@gmail.com>
https://orgmode.org/list/CAFyQvY14iek+op12Vm7+jrniGEVU2yha7kuPtNtFQAso6d=PjQ@mail.gmail.com/
2020-09-06 22:41:21 +02:00
Bastien 612f4db090 ob-shell.el: Fix previous commit
* lisp/ob-shell.el (org-babel-execute:shell)
(org-babel-sh-evaluate): Use the value only when value is set or
when no :result is set.
2020-09-06 22:35:28 +02:00
Bastien 2f53429413 ob-shell.el: Use the exit status as the default result
* lisp/ob-shell.el (org-babel-execute:shell)
(org-babel-sh-evaluate): Use the exit code as the value and,
consequently, as the result when no :results header is set.

See this thread:
https://orgmode.org/list/CA+A2iZaziAfMeGpBqL6qGrzrWEVvLvC0DUw++T4gCF3NGuW-DQ@mail.gmail.com/

And Tim's useful summary here:
https://orgmode.org/list/87sgiszqc1.fsf@gmail.com/

This commit resolves the issue by deciding not to make an exception
for ob-shell.el:

- the "value" of executing a shell/bash script is the exit code
- when no :results header is set, use the value as the result
- use :results output to use the stdout
2020-09-06 19:12:22 +02:00
Bastien 73a78c2518 Revert "org.el (org-add-planning-info): Use caller's `org-time-was-given' value"
This reverts commit c7abcd514a.
2020-09-06 12:01:54 +02:00
Bastien ec80dd6c17 Merge branch 'maint' 2020-09-06 11:59:31 +02:00
Bastien 15e2d83313 ob-sqlite.el: Inhibit Lisp evaluation when reading the result
* lisp/ob-sqlite.el (org-babel-sqlite-table-or-scalar): Inhibit
Lisp evaluation when reading the result.

Reported-by: rrandresf@gmail.com
2020-09-06 11:58:53 +02:00
Bastien 9a2e22d87a Merge branch 'maint' 2020-09-06 11:50:36 +02:00
Bastien 989f50a53b ob-java.el: Inhibit Lisp evaluation when reading the result
* lisp/ob-java.el (org-babel-execute:java): Inhibit Lisp
evaluation when reading the result.

Reported-by: Jarmo Hurri <jarmo.hurri@iki.fi>
2020-09-06 11:48:20 +02:00
Bastien f0a9677d90 ob-core.el: Silence byte-compiler 2020-09-06 11:27:11 +02:00
Bastien d50823be14 fixup! Merge branch 'maint' 2020-09-06 10:05:43 +02:00
Bastien 1170e39bea org-crypt.el: Fix encrypt/decrypt in presence of arbitrary drawers
* lisp/org/org-crypt.el (org-encrypt-entry, org-decrypt-entry): Skip
  _all_ meta data before looking for PGP content.

TINYCHANGE
2020-09-06 10:05:31 +02:00
Trevor Murphy c93983613d org-crypt.el: Fix encrypt/decrypt in presence of arbitrary drawers
* lisp/org/org-crypt.el (org-encrypt-entry, org-decrypt-entry): Skip
  _all_ meta data before looking for PGP content.

TINYCHANGE
2020-09-06 10:00:34 +02:00
Bastien 55d1d32f5e org.el: Tiny docstring fixes
* lisp/org.el (org-keyword-regexp, org-ctrl-k-protect-subtree)
(org-priority-default, org-fast-tag-selection-single-key)
(org--check-org-structure-template-alist)
(org-after-todo-statistics-hook, org-log-note-effective-time)
(org-occur, org-days-to-iso-week, org-ctrl-c-ctrl-c-hook)
(org-ctrl-c-ctrl-c-final-hook, org-ctrl-c-ret, org-mode-restart)
(org-install-agenda-files-menu): Tiny docstring fixes.
2020-09-06 08:14:15 +02:00
Kyle Meyer d4f48821c1 Merge branch 'maint' into master 2020-09-05 23:41:50 -04:00
Kyle Meyer 799e5dac92 org.el: Silence byte-compiler
* lisp/org.el (org-optimize-window-after-visibility-change): Drop
unused let-binding added in a8e812e60.
2020-09-05 23:39:56 -04:00
Kyle Meyer e535da6e4f ob-core: Avoid duplicate body expansion logic
* lisp/ob-core.el (org-babel--expand-body): New function.
(org-babel-check-confirm-evaluate):
(org-babel-execute-src-block): Use org-babel--expand-body.

As of 727c6d7fe (lisp/ob-core.el: org-babel-check-confirm-evaluate
strip coderefs, 2020-09-04), org-babel-check-confirm-evaluate and
org-babel-execute-src-block use the same logic to expand the body and
strip coderefs.  Move that code to a helper function.

This patch is functionally equivalent to the patch originally proposed
by Tom Gillespie at
https://orgmode.org/list/CA+G3_PNi3uMvBiWgBdKuC3C6VJt1T1j-RKH43LRqYbr+4NS8ZA@mail.gmail.com
2020-09-05 23:39:08 -04:00
Tom Gillespie 3e1c0b0f44 lisp/ob-core.el: org-babel-check-confirm-evaluate strip coderefs
* lisp/ob-core.el (org-babel-check-confirm-evaluate): strip coderefs
before passing the body of the block to org-confirm-babel-evaluate
using the same let block as is used in org-babel-execute-src-block.
2020-09-05 23:38:35 -04:00
Nicholas Vollmer c7abcd514a org.el (org-add-planning-info): Use caller's `org-time-was-given' value
* lisp/org.el (org-add-planning-info): Fix bug by not ignoring the
caller's `org-time-was-given' value.

See <https://orgmode.org/list/87zh6rfvmi.fsf@gmail.com>

TINYCHANGE
2020-09-05 17:54:46 +02:00
Bastien c09518b5f6 org.el (org-read-date-display-live): Enhance docstring
* lisp/org.el (org-read-date-display-live): Document that live
display is only available when `org-read-date-popup-calendar' is
non-nil.

See <https://orgmod.org/list/20200630180259.zj3krk57x5iqmbsj@orion>

Reported-by: Edmund Christian Herenz <eherenz@eso.org>
2020-09-05 17:33:04 +02:00
Bastien 479e09a8e2 Merge branch 'maint' 2020-09-05 16:41:03 +02:00
Ihor Radchenko f45591630f ob-core.el: Use `buffer-base-buffer' where needed
* lisp/ob-core.el (org-babel-result-to-file): Use
`buffer-base-buffer' so that `buffer-file-name' returns correct
results in indirect buffers too.

See <https://orgmode.org/list/87eeos3w7v.fsf@localhost>

TINYCHANGE
2020-09-05 16:40:45 +02:00
Bastien b2f54f9f8e Merge branch 'maint' 2020-09-05 15:20:06 +02:00
Bastien 114d509829 org-table.el: Prevent an error from occurring
* lisp/org-table.el (org-table-justify-field-maybe): Fix bug.

Reported-by: Lester Longley <lester@ieee.org>
https://orgmode.org/list/CAA3095_oH2sH_a=nNeYEa=agZp7L2K8Vp2s-c7fN4M4Sro=stQ@mail.gmail.com
2020-09-05 15:18:51 +02:00
Bastien 7b59fe0775 Merge branch 'maint' 2020-09-05 11:14:32 +02:00
Leo Vivier 3008fb45dc org-capture: Update plist before finalizing
* lisp/org-capture.el (org-capture-finalize): Update
`org-capture-plist' with local-value before finalizing.

We use the global-variable `org-capture-plist' to populate the
local-variable `org-capture-current-plist' on the init of the
`org-capture' buffer.  However, we do not do the opposite (i.e. update
the global-variable with the local-variable) on
`org-capture-finalize'.

This is fine for the majority of `org-capture-finalize', since we’re
using the LOCAL arg of `org-capture-get' to read
`org-capture-current-plist' instead of `org-capture-list', but this
trick does not work for `org-capture-after-finalize', since the hook
is run after the `org-capture-buffer' has been closed.

This causes problem with `:kill-buffer t', and it limits what can be
done with cleanup functions in `org-capture-after-finalize'.

See <https://orgmode.org/list/87h7tv9pkm.fsf@hidden/> for details.
2020-09-05 11:14:17 +02:00
Bastien 8538654591 Merge branch 'maint' 2020-09-05 11:09:52 +02:00
E.L.K f2d41de3ed Fix bug when building sparse tree: ignore non-buffer tags
* lisp/org.el (org-make-tags-matcher): Add a parameter to make it
optional to include non-buffer tags.
(org-match-sparse-tree): Use the new parameter.

TINYCHANGE
2020-09-05 11:08:32 +02:00
Bastien 9ad3606bf3 Use `org-preview-latex-image-directory' instead of hardcoding
* lisp/ox-odt.el (org-odt--translate-latex-fragments):
* lisp/ox-html.el (org-html--format-image): Use
`org-preview-latex-image-directory' instead of hardcoding the
directory name.

See <https://orgmode.org/list/87a70v9jan.fsf@ucl.ac.uk>

Reported-by: Eric S Fraga <e.fraga@ucl.ac.uk>
2020-09-05 10:41:36 +02:00
Bastien 6d031c4f86 Merge branch 'maint' 2020-09-05 10:35:40 +02:00
nilninull 8ae058ebe6 org-agenda.el: Fix customization type
* lisp/org-agenda.el (org-agenda-category-icon-alist): Fix
customization type.

See <https://orgmode.org/list/CAPAiqPnq_2zZq8XrdzMUEr7HsAsCjxS+VUFFqqdyh_PAwLuuig@mail.gmail.com>

TINYCHANGE
2020-09-05 10:34:30 +02:00
Anthony Carrico 4710541365 ox-html.el: Use classList and put in the public domain
* lisp/ox-html.el (org-html-scripts): Fix a potential bug by using
the classList within the Javascript code, and put this new version
of the code in the public domain.

See <https://orgmode.org/list/20200617002335.l4lg3slfxm74vx3h@silver>

TINYCHANGE
2020-09-05 10:02:10 +02:00
Bastien 3f8fe39695 Merge branch 'maint' 2020-09-05 09:41:42 +02:00
Kyle Meyer 4696aef580 goto: Avoid invoking org-mode for outline navigation
* lisp/org-goto.el (org-goto-location): Call make-indirect-buffer with
a non-nil CLONE to preserve the base buffer's state, avoiding a more
expensive call to org-mode.

Reported-by: Vladimir Nikishkin <lockywolf@gmail.com>
Suggested-by: Ihor Radchenko <yantar92@gmail.com>
2020-09-05 09:41:24 +02:00
Bastien 0e580d169f ob-J.el: Add a maintainer
* lisp/ob-J.el: Add a maintainer.
2020-09-05 08:06:01 +02:00
Bastien 42bd67fdf0 Merge branch 'maint' 2020-09-05 08:03:12 +02:00
Bastien ee3c3b5547 org.el: Allow empty subtrees to be folded back
* lisp/org.el (org-cycle-internal-local): Allow empty subtrees to
fold back.

See <https://orgmode.org/list/CA+Yh0SRPgeMUYAD0ds3TZnwpPKq8_mpact-OeKK-rXoQNb-eEg@mail.gmail.com>

Reported-by: Dmitrii Korobeinikov <dim1212k@gmail.com>
2020-09-05 08:01:58 +02:00