Commit Graph

23416 Commits

Author SHA1 Message Date
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 74b6860b76 Merge branch 'maint' 2020-09-06 23:36:50 +02:00
Bastien ba2405b12e testing/lisp/test-org-inlinetask.el: Fix test
* testing/lisp/test-org-inlinetask.el
(test-org-inlinetask/folding-directly-consecutive-tasks/1): Fix
test.

This test was broken by ee3c3b55.
2020-09-06 23:35:32 +02: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 3e191242dc Fix tests wrt 2f53429413
* testing/lisp/test-ob.el (test-ob/inline-src_blk-default-results-replace-line-1)
(test-ob/just-one-results-block)
(test-ob/org-babel-remove-result--results-default)
(test-ob/specific-colnames): Fix tests.

* testing/lisp/test-ob-tangle.el (ob-tangle/comment-links-at-left-margin): Ditto.

* testing/lisp/test-ob-shell.el (ob-shell/generic-uses-no-arrays)
(ob-shell/bash-uses-arrays)
(ob-shell/generic-uses-no-assoc-arrays)
(ob-shell/bash-uses-assoc-arrays, ob-shell/simple-list): Ditto.

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

* testing/examples/ob-shell-test.org (Generic shell: no arrays)
(Bash shell: support for arrays)
(Generic shell: no special handing)
(Bash shell: support for associative arrays)
(Generic shell: no special handing)
(Bash shell: support for associative arrays with lists): Ditto.
2020-09-06 22:37:32 +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 d03a52d37b Merge branch 'maint' 2020-09-06 12:02:41 +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
Bastien 9410fbe060 Merge branch 'maint' 2020-09-06 07:52:28 +02:00
Bastien 351a0a0b0c org-manual.org: Add a footnote for the difference between C-. and .
* doc/org-manual.org (The date/time prompt): Add a footnote for
the difference between `C-.' and `.' in the date prompt.

See <https://orgmode.org/list/20200905161804.3inpmz5o3nensyna@gmail.com>
2020-09-06 07:46:47 +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
Kyle Meyer f24c3d11cc ob-core: Test that org-confirm-babel-evaluate does not see coderefs
* testing/lisp/test-ob.el (test-ob/check-eval-noweb-expanded): Add
test.

With df5a83637 (ob-core: Call org-confirm-babel-evaluate with expanded
noweb refs, 2020-08-02), org-confirm-babel-evaluate gets called with
an expanded body and coderefs.  As of the last commit, the coderefs
are stripped.

Cf: https://orgmode.org/list/CA+G3_PPYS2KAaXiBDeujTTpswCTzTuJRQsXwaji1MuRoc8N7vw@mail.gmail.com
2020-09-05 23:38:43 -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
Bastien 7e895baaba Merge branch 'maint' 2020-09-05 17:59:07 +02: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 ed8369aff2 org-manual.org: Two enhancements
* doc/org-manual.org (JavaScript supported display of web pages):
Small rephrasing.
(Exporting to minimal HTML): New section.

Reported-by: Paramjit Singh <paramjitrohits@gmail.com>
2020-09-05 11:44:43 +02:00
Bastien 2af977016f org-manual.org: Document more capture template elements
* doc/org-manual.org (Template elements, Template elements):
Document more template elements.

Reported-by: Ian Garmaise <ian.g@phorixsol.com>
2020-09-05 11:21:58 +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 00a782112a org-manual.org: Grammar fix
* doc/org-manual.org (The clock table): Grammar fix.

Reported-by: Nick Dokos <nick@dokosmarshall.org>
2020-09-05 10:46:17 +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
stardiviner 3b10ffc362 ol-man.el: Add searching support in man page buffer
* contrib/lisp/ol-man.el (org-man-open): Support auto searching man page
buffer with search-forward.
2020-09-05 10:05:01 +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