* lisp/ob-core.el (org-babel-where-is-src-block-head): Quote
`match-data'.
(org-babel-insert-result): Ensure two spaces between sentences.
(org-babel-temp-file): Clarify that `temporary-file-directory' refers
to a function.
* lisp/org-compat.el (org-buffer-text-pixel-width): New function using
`buffer-text-pixel-size' in Emacs >=29 and falling back to
`window-text-pixel-size' in older Emacs.
* lisp/org-macs.el (org-string-width): Use the new function.
* lisp/ob-shell.el (org-babel-prompt-command): Remove variable.
(org-babel-sh-initiate-session): Set prompt according to
`shell-file-name' - either the value set in let-binding provided by
`org-babel-shell-initialize' or using the default Emacs value of
`shell-file-name'.
(org-babel-shell-initialize): Do not set `org-babel-prompt-command'.
Only let-bind `shell-file-name' according to shell variant in src
block.
* lisp/org-id.el (org-id--locations-checksum): New internal variable
holding list of files and their modification times for the last known
ID list.
(org-id-update-id-locations): Do nothing when the ID locations
correspond to the same ID file list and modification times. Convert
SEEN-IDS to hash table for faster lookup of the duplicates. Re-enable
element cache. Avoid queries to heading properties that would force
full parsing.
* lisp/org-lint.el (org-lint--generate-reports): Store marker to
reports as text property in the Line field.
(org-lint--current-marker): New function retrieving marker
corresponding to current report.
(org-lint--jump-to-source): Jump using marker, not line number.
This fixes *Org Lint* report jumping to wrong location when the Org
buffer is edited while going through the report.
* lisp/org-element.el (org-element--cache-for-removal): Do not update
heading using object granularity. `org-element-at-point' parses
headings without :title objects and cache updates should not change
this.
* lisp/org.el (org-goto-sibling): Do not try to find inlinetask
siblings. Clarify the docstring.
* testing/lisp/test-org.el (test-org/goto-sibling): New test.
* lisp/org.el (org-insert-drawer): Leave and reveal point inside
drawer even when we insert property drawer or drawer around region, as
advertised by the docstring.
* lisp/org-clock.el (org-clock-find-position): Insert before point
when creating drawers. This makes sure that newly inserted drawer do
not interfere with user typing. See f993ecd67.
* lisp/org-clock.el (org-clock-in): Add commentary.
* lisp/org-element.el (org-element-normalize-contents): Use
`org-element-set-contents' to set contents instead of assuming
(TYPE PROP CONTENTS) structure.
* lisp/ob-C.el (org-babel-execute:cpp):
(org-babel-expand-body:cpp):
(org-babel-execute:C++):
(org-babel-expand-body:C++):
(org-babel-execute:D):
(org-babel-expand-body:D):
(org-babel-execute:C):
(org-babel-expand-body:C):
(org-babel-C-execute):
(org-babel-C-expand-C++):
(org-babel-C-expand-C):
(org-babel-C-expand-D):
(org-babel-C-val-to-base-type):
(org-babel-C-var-to-C): Mention all the arguments.
(org-babel-prep-session:C):
(org-babel-load-session:C): Make first line a proper short description
consisting of a single sentence.
* lisp/org-lint.el (org-lint-timestamp-syntax): Mention the original
timestamp in the link message.
Reported-by: Fraga, Eric <e.fraga@ucl.ac.uk>
Link: https://orgmode.org/list/87y1iuyb3m.fsf@ucl.ac.uk
* lisp/org-lint.el (org-lint-export-option-keywords): Mention which
backends the suspicious properties may belong to. Avoid triggering on
`org-default-properties'.
Reported-by: Fraga, Eric <e.fraga@ucl.ac.uk>
Link: https://orgmode.org/list/87y1iuyb3m.fsf@ucl.ac.uk
* lisp/org-clock.el (org-clock-overlays):
* lisp/org-colview.el (org-columns-overlays):
* lisp/org-num.el (org-num--overlays):
* lisp/org-table.el (org-table-header-overlay):
(org-table-coordinate-overlays):
* lisp/org.el (org-custom-properties-overlays):
(org-occur-highlights):
(org-inline-image-overlays): Mark as permanent-local to not lose track
of the overlays when changing major modes.
Reported-by: Eli Qian <eli.q.qian@gmail.com>
Link: https://orgmode.org/list/871qgmeleu.fsf@gmail.com
* lisp/org-macs.el (org-string-width): Do not handle dedicated
selected window specially. The bug fixed by 946abeb49 is no
longer reproducible using the release version of Emacs 29 and other
Emacs versions. Apparently, it was caused by now-fixed Emacs bug
specific to Emacs 29.
Also, use `buffer-text-pixel-size' as in `string-pixel-width' from
Emacs master. Using `window-text-pixel-size' requires setting buffer
to window, which is tricky when selected window is dedicated (see
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64986).
* lisp/ox.el (org-export-options-alist): New export option toggling
environment variable expansion in link paths.
(org-export-expand-links): New customization.
(org-export--expand-links): New function expanding environment
variables all the link paths in AST.
(org-export-expand-include-keyword):
(org-export--blindly-expand-include): Add new optional arguments to
expand environment variables in INCLUDE file paths. Update
docstrings.
(org-export--annotate-info): Call `org-export--expand-links' during
export and pass :expand-links parameter to
`org-export-expand-include-keyword'.
* doc/org-manual.org (Export Settings): Document the new option.
* etc/ORG-NEWS (New export option ~org-export-expand-links~): Announce
new option.
Link: https://list.orgmode.org/orgmode/87pm6fbnlo.fsf@localhost/
* lisp/org-macs.el (org-replace-escapes): Suppress byte-compiler
warning about modifying constant string.
Unlike, 39786a8dbf, this commit does not
create merge conflicts.
* lisp/ob-core.el (org-babel-execute-src-block): Do not remove
previous result when :cache is yes, but :results requests
appending/prepending the new result.
* lisp/ob-tangle.el (org-babel-tangle-single-block,
org-babel-tangle-collect-blocks): Make target file name attribute,
used internally to group blocks with identical language, to be
absolute.
(org-babel-effective-tangled-filename): Avoid using relative file
names that could cause one block to overwrite the others in
`org-babel-tangle-collect-blocks' if they have the same target file
but in different formats.
* lisp/org.el (org-up-heading-safe): Do not assume that
`org-element-parent' is always a heading. Use `org-element-lineage'
to get parent heading specifically. Move point to current heading
even when no parent heading is available, as expected by some of the
other Org routines. Document moving point when no parent.
* testing/lisp/test-org.el (test-org/up-heading-safe): Add tests.
Reported-by: Daniel Liden <djliden91@gmail.com>
Link: https://orgmode.org/list/CAG=u__pAT9k_AsRG6cpyPPUt0__5S7o=3a8WWkAijuPPuGc7Cg@mail.gmail.com
* lisp/ol-bibtex.el (org-bibtex-headline-format-default): New function
to be used as the default value of
`org-bibtex-headline-format-function'.
(org-bibtex-headline-format-function): Update the default value.
Link: https://orgmode.org/list/87edl71tyu.fsf@localhost
* lisp/org-lint.el (org-lint-confusing-brackets):
(org-lint-brackets-inside-description):
(trailing-bracket-after-link):
(unclosed-brackets-in-link-description): New checkers testing for
trailing extra "]" after links and for unmatched opening "[" inside
link description.
* lisp/ob-lilypond.el: Use `org-src-lang-modes' to inform Org babel
about non-standard mode name instead of using `defalias'.
* testing/lisp/test-ob-lilypond.el (ob-lilypond/check-lilypond-alias):
Remove test.
* lisp/org.el (org-do-emphasis-faces): Mark invisible text property in
emphasis markers non-sticky. This is usually not a problem as we
manage invisible text property via font-lock. However subtle bugs may
exist with non-interactive calls to Elisp primitives that inherit text
properties (like `indent-to').
Reported-by: Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Link: https://orgmode.org/list/8b691a7f-6b62-d573-e5a8-80fac3dc9bc6@vodafonemail.de