Commit Graph

19732 Commits

Author SHA1 Message Date
Stefan Monnier d8e47abb75 Backport commit 54d40577c from Emacs
* lisp/org-table.el (org-table-make-reference): Don't use `eq` to
compare against literal strings.

(org-table-make-reference): Fix compiler warning
54d40577c4bb64d25db030b7d11ab553364e375d
Stefan Monnier
Mon Apr 10 21:33:56 2023 -0400
2024-05-28 22:58:42 -04:00
Kyle Meyer 898b5c4da5 org-macs: Autoload org-element-with-disabled-cache
* lisp/org-macs.el (org-element-with-disabled-cache): Autoload.

Otherwise compiling lisp/org/org-loaddefs.el in the Emacs tree will
warn that org-element-with-disabled-cache is not known to be defined.
2024-05-27 22:55:14 -04:00
Kyle Meyer 464d668ead Clean up spacing to pass Emacs's pre-commit check
Avoid trailing spaces and spaces before tabs.
2024-05-27 21:18:59 -04:00
Ihor Radchenko 6f152d8914
lisp/org.el (org-mode): Fix thingatpt support for Emacs 27 2024-05-26 17:53:57 +02:00
Jim Porter 66cb45658d
Add support for 'thing-at-point' to get URL at point
* lisp/org.el (thingatpt): Require.
(org--link-at-point, org--bounds-of-link-at-point): New functions...
(org-mode): ... add to 'thing-at-point-provider-alist' and friends.

* testing/lisp/test-org.el (test-org/thing-at-point/url): New test.

* etc/ORG-NEWS: Announce this change.
2024-05-26 14:51:31 +02:00
Ihor Radchenko 09f339c9dd
org-element-cache: Fix tracking changes in indirect buffers for overlay folding
* lisp/org-fold-core.el (org-fold-core-decouple-indirect-buffer-folds):
(org-fold-core--property-symbol-get-create): Make
`org-fold-core-cycle-over-indirect-buffers' track indirect buffers
even with `org-fold-core-style' = 'overlays.  This is necessary to
keep org-element-cache working.
* lisp/org-element.el: Add FIXME - we should eventually pull out
`org-fold-core-cycle-over-indirect-buffers' as it is used out of scope
of folding.
2024-05-25 14:22:17 +02:00
Ihor Radchenko 0e5ac43324
lisp/ox-html.el: Convert :alt to :aria-label attribute in svg images
* lisp/ox-html.el (org-html--svg-image): When svg image has :alt
attribute, convert it to :aria-label instead.
(org-html--format-image): Pass default :alt attribute based on the
file name to `org-html--svg-image'.
2024-05-22 11:23:47 +02:00
Ihor Radchenko 302bc6393a
Revert "ox-html: Use <img> tags for svgs, not <object>"
This reverts commit d96e897579.

See https://orgmode.org/list/87r0dy3u91.fsf@localhost
2024-05-22 11:01:05 +02:00
Ihor Radchenko 895a367a67
Revert "lisp/ox-html.el: Restore org-svg class."
This reverts commit 9364b2d894.
2024-05-22 11:00:49 +02:00
Ihor Radchenko b2520ec52f
ob-haskell: Remove FIXME
* lisp/ob-haskell.el (org-babel-haskell-export-to-lhs): The answer to
question asked in FIXME is that -i flag is handled later, in regex
search.  There is nothing to fix.
2024-05-21 15:58:40 +02:00
Ihor Radchenko b26337c255
oc-csl: Use `org-require-package' instead of `org-cite-csl--barf-without-citeproc'
* lisp/oc-csl.el (org-cite-csl--barf-without-citeproc): Remove.
(org-cite-csl-render-citation):
(org-cite-csl-render-bibliography):
(org-cite-csl-finalizer): Use `org-require-package'.
2024-05-21 15:57:15 +02:00
Ihor Radchenko 5fcd1d9def
org-save-markers-in-region: Store log note marker
* lisp/org.el (org-save-markers-in-region): Store
`org-log-note-marker' when storing and reinstalling Org markers.

This change automatically handles note taken after refiling/archiving
without trying to place the note in place of the moved
subtree/heading.

Link: https://orgmode.org/list/m2plyjid8q.fsf@kyon.home
2024-05-21 13:36:39 +02:00
Ihor Radchenko 41c2e7af10
Add missing :package-version keywords to new and changed `defcustom'
* lisp/ob-comint.el (org-babel-comint-fallback-regexp-threshold):
* lisp/ob-exp.el (org-babel-exp-code-template):
(org-babel-exp-inline-code-template):
* lisp/org-agenda.el (org-agenda-skip-scheduled-if-deadline-is-shown):
(org-agenda-sorting-strategy):
* lisp/org-attach.el (org-attach-store-link-p):
* lisp/org-capture.el (org-capture-templates):
* lisp/org-fold-core.el (org-fold-core-style):
* lisp/org-footnote.el (org-footnote-auto-label):
* lisp/org.el (org-latex-to-mathml-convert-command):
(org-latex-to-html-convert-command):
(org-latex-default-packages-alist):
(org-display-remote-inline-images):
* lisp/ox-beamer.el (org-beamer-environments-extra):
* lisp/ox-latex.el (org-latex-known-warnings):
2024-05-21 13:15:12 +02:00
Ihor Radchenko 8d43ab9ca9
orgtbl-setup: Resolve FIXME
* lisp/org-table.el (orgtbl-setup): Move setting up keymap to top
level instead of awkward re-`defun' used previously to ensure that
setup is evaluated once.  Make it possible to honor the value of
`orgtbl-optimized' during runtime, if it is changed.
(orgtbl-mode): Remove re-`defun'.
2024-05-21 12:21:29 +02:00
Ihor Radchenko b34b5baffc
lisp/org-keys.el: Remove support of obsolete `org-speed-commands-user'
* lisp/org-keys.el (org--print-speed-command): Update the docstring.
(org-speed-command-help):
(org-speed-command-activate): Remove code supporting
`org-speed-commands-user'.
2024-05-21 11:50:29 +02:00
Ihor Radchenko 102f0a24c9
Do no assume that todo keywords are full words
* lisp/org-agenda.el (org-agenda):
(org-agenda-list-stuck-projects):
* lisp/org-clock.el (org-clock-in):
(org-clock-out):
* lisp/org.el (org-show-todo-tree): Do not enforce that word boundary
always matches after todo keyword \>.  Instead use a more accurate
match - space or eol.  Also, regexp-quote the todo keywords when
searching them.

Reported-by: Kepa <gnu.cognition199@slmails.com>
Link: https://orgmode.org/list/171620796695.7.14337986338068154257.334928503@slmails.com
2024-05-21 11:40:36 +02:00
Ihor Radchenko bae1b1fe70
Revert "org-table-eval-formula: Fix parsing of mode string when formula has ;"
This reverts commit 5af0625113.

The commit broken handling custom `format' spec for formula results:

Reported-by: Daniel Clemente <n142857@gmail.com>
Link: https://orgmode.org/list/CAJKAhPDFrgZY6sgefxu85qjEXnE2_HkPCHzbDOLsAD4Je57z7w@mail.gmail.com
2024-05-21 11:09:46 +02:00
Ihor Radchenko 4049742044
lisp/ox-html.el (org-html-template): Remove Emacs 22 compatibility
Emacs 22 support is long-dropped.  We no longer need to be backwards
compatible with it.  Also, Org mode no longer works with Emacs 22, so
there is no point keeping this code.
2024-05-20 15:11:11 +02:00
Ihor Radchenko 9a02750501
lisp/org.el (org-display-inline-images): Remove FIXME
Addressing this FIXME would include implementing image cache flushing
feature in Emacs itself.  A bit too much for a FIXME in Org code.
2024-05-20 15:10:31 +02:00
Ihor Radchenko 8bea06ce93
lisp/org-element.el (org-element--cache-active-p): Remove FIXME
It is not 100% clear if inlining `org-element--cache-active-p' will
yield practical improvements.  So, let's not litter the code base with
such FIXMEs.
2024-05-20 15:09:51 +02:00
Ihor Radchenko 7ef578dd4e
lisp/org-element.el (org-element--current-element): Remove FIXME
`org-item-re' is caching its results, so it is ok to use it.
2024-05-20 15:09:23 +02:00
Ihor Radchenko bf71c8c597
lisp/ob-scheme.el: Fix mit-scheme evaluation
* lisp/ob-scheme.el (org-babel-scheme-execute-with-geiser): Do not
sent top comment when evaluating code block.  mit-scheme has problems
processing it for some reason.
2024-05-19 15:38:45 +02:00
Kris Nelson c0b66bf9c1
org-log-beginning: Fix error creating LOGBOOK drawer at end of buffer
* lisp/org.el (org-log-beginning): Fix regression after 288c7069c where
"Error in post-command-hook (org-add-log-note): (end-of-buffer)"
is displayed after creating the LOGBOOK drawer on a heading which is
at the end of the buffer.

Reported-by: Kris Nelson <kris@kristofernelson.com>
Link: https://orgmode.org/list/766237934.317726.1715720181047@office.mailbox.org

TINYCHANGE
2024-05-19 13:43:24 +02:00
Ihor Radchenko 5af0625113
org-table-eval-formula: Fix parsing of mode string when formula has ;
* lisp/org-table.el (org-table-eval-formula): Use more strict regexp
to detect mode string in formulas.
* testing/lisp/test-org-table.el (test-org-table/eval-formula): Add
test.

Reported-by: Nick Dokos <ndokos@gmail.com>
Link: https://orgmode.org/list/87ply5v1gj.fsf@localhost
2024-05-19 13:10:49 +02:00
Ihor Radchenko 6d5fa81984
ox-md, ox-ascii, ox-texinfo: Strip blank lines from paragraphs
* lisp/org-macs.el (org-remove-blank-lines): New helper function to
strip blank lines from string.
* lisp/ox-ascii.el (org-ascii-paragraph):
* lisp/ox-latex.el (org-latex-paragraph):
* lisp/ox-md.el (org-md-paragraph):
* lisp/ox-texinfo.el (org-texinfo-paragraph): Strip blank lines from
paragraphs - these exporters are using blank lines as paragraph
separators.

Reported-by: Max Nikulin <manikulin@gmail.com>
Link: https://orgmode.org/list/v00le7$frp$1@ciao.gmane.io
2024-05-19 12:01:55 +02:00
Ihor Radchenko 14848726a0
org-export-data: Handle trailing spaces when transcoder returns nil
* lisp/ox.el (org-export--keep-spaces): New helper function containing
logic about keeping spaces in place of removed object from
`org-export--prune-tree'.  The logic is modified to keep spaces in the
case when previous plain-string object ends with a whitespace, but not
" " or "\t".  This can happen, for example, when there is a trailing
zero-width space.  We do want to keep spaces in such scenario.
(org-export-data): When transcoder returns nil, handle
trailing spaces after an object the same way `org-export--prune-tree'
does.  Remove special handling of export snippets that unconditionally
keep their trailing spaces.
(org-export--prune-tree): Use the helper function.
* testing/lisp/test-ox.el (test-org-export/export-snippet): Adjust test.

Link: https://orgmode.org/list/87h6fwmgkm.fsf@localhost
2024-05-19 12:01:54 +02:00
Joris Caravati f3e306c737
lisp/org.el: Add `org-after-note-stored-hook'
* lisp/org.el: Add `org-after-note-stored-hook' which is called at the
end of the `org-store-log-note' function.
* etc/ORG-NEWS: Document the new hook.

TINYCHANGE
2024-05-18 13:20:18 +02:00
Anand Deopurkar 0ebb36caea
lisp/org-capture.el: Restore org-store-link-plist
* org-capture.el (org-capture-fill-template): Restore original
`org-store-link-plist' after calling `org-store-link'.

To replace a %K escape (link to currently clocked task),
`org-capture-fill-template' calls `org-store-link'.  This call has the
side-effect of replacing the contents of `org-store-link-plist'.  As a
result, expected template expansions using the original
`org-store-link-plist' do not happen.

For example, suppose `org-capture' is called from a message buffer with the
template "%:subject %:from" while the clock is running.  Then
%:subject and %:from are not substituted because of the behaviour
above.  If the clock is not running, there is no problem.

Current fix restores `org-store-link-plist' to its original value
after `org-capture-fill-template' calls `org-store-link'.

TINYCHANGE
2024-05-18 12:52:04 +02:00
Ihor Radchenko ee58259bc7
org-duration-from-minutes: Accept negative durations
* lisp/org-duration.el (org-duration-from-minutes): Allow MINUTES
argument to be negative.

Reported-by: Raffael Stocker <r.stocker@mnet-mail.de>
Link: https://orgmode.org/list/yplmzfsrqjw6.fsf@mnet-mail.de
2024-05-17 14:43:04 +03:00
Ihor Radchenko 288c7069c4
org-log-beginning: Fix extra blank line created after LOGBOOK drawer
* lisp/org.el (org-log-beginning): Fix regression after f63ff07441
when additional blank is created after newly added LOGBOOK drawer.

Reported-by: Kris Nelson <kris@kristofernelson.com>
Link: https://orgmode.org/list/766237934.317726.1715720181047@office.mailbox.org
2024-05-17 14:19:29 +03:00
Ihor Radchenko f326cd58ba
org-display-inline-image--width: Fix unparable non #+ATTR_ORG widths
* lisp/org.el (org-display-inline-image--width): When there are
multiple #+ATTR_BACKEND :width attributes, skip over all the
attributes that cannot be parser to a number.  This way

 #+attr_html: :alt Image width test
 #+attr_beamer: :width \linewidth
 #+attr_latex: :width +.5\textwidth
 #+attr_md: :width 75%
 [[file:~/Downloads/wallpaper.png]]

will get +.5 relative width even though #+attr_beamer does specify
some :width value (not a number).

Reported-by: Max Nikulin <manikulin@gmail.com>
Link: https://orgmode.org/list/875xvoshex.fsf@localhost
2024-05-13 15:36:13 +03:00
Ihor Radchenko aa71facf6d
Respect `org-auto-align-tags' in all the editing commands
* lisp/org-mobile.el (org-mobile-edit):
* lisp/org.el (org-insert-heading):
(org-edit-headline):
(org-priority):
(org-set-tags):
(org-entry-put):
(org-self-insert-command):
(org-delete-backward-char):
(org-delete-char):
(org-kill-line): Only re-align tags when `org-auto-align-tags' is set
to non-nil.
* etc/ORG-NEWS (~org-auto-align-tags~ is now respected universally):
Announce the breaking change.

Link: https://orgmode.org/list/87msxoc3qp.fsf@localhost
2024-05-13 15:10:35 +03:00
Ihor Radchenko 62356cb44b
lisp/org.el (org-block-map): Fix mapping over nested blocks
* lisp/org.el (org-block-map): Do not bypass the whole block when
mapping.  Look inside the block body for child blocks as well.

Reported-by: mahmood sheikh <mahmod.m2015@gmail.com>
Link: https://orgmode.org/list/CAOj1L_cx9XP5fS3_=x=UJSSt3xjcfcQ68Uef6E4DTi68Kr_ABw@mail.gmail.com
2024-05-13 14:59:45 +03:00
Lee Thompson 1a7d7a5a5b
lisp/ox-md.el: New mixed-style option for `org-md-headline-style'
* lisp/ox-md.el (org-md-headline-style): New setting `mixed' allows
for mixing Setext and ATX-style headlines when exporting to Markdown.
* doc/org-manual.org (Header and sectioning structure): Document
`mixed' headline style.
* etc/ORG-NEWS (New allowed value of ~org-md-headline-style~ to mix
ATX and Setext style headlines): Document the new feature.

When exporting to Markdown, there was previously no obvious way of
mixing Setext-style and ATX-style headlines.  Via the
`org-md-headline-style' custom setting, headlines could be exported as
either all-Setext or all-ATX, but not as a mix.

With this change setting `org-md-headline-style' to `'mixed' will
export the first two headline levels as Setext-style Markdown
headlines and the rest as ATX-style.

TINYCHANGE
2024-05-12 14:53:34 +03:00
Ihor Radchenko bc51dfcb74
org-agenda-kill: Fix deleting wrong entry when Org buffer is narrowed
* lisp/org-agenda.el (org-agenda-kill): Use `org-with-point-at' to
jump to origin Org buffer from agenda.  It automatically widens the
buffer.
(org-remove-subtree-entries-from-agenda): Temporarily lift narrowing
when calculating the list of headings to clean up from the agenda.

Link: https://old.reddit.com/r/emacs/comments/1cog1fb/agenda_kills_wrong_item_in_orgmode_when_buffer_is/
2024-05-11 19:32:50 +03:00
Ihor Radchenko db5478108c
org-agenda-tree-to-indirect-buffer: Obey `org-indirect-buffer-display'
* lisp/org-macs.el (org-display-buffer-in-window): New helper function
to display buffer in specific window (when it is live).
* lisp/org.el (org-tree-to-indirect-buffer): By default, reuse the
window previously used for an existing indirect buffer, if it is in
the same frame.
* lisp/org-agenda.el (org-agenda-do-tree-to-indirect-buffer): Remove.
(org-agenda-tree-to-indirect-buffer): Merge with
`org-agenda-do-tree-to-indirect-buffer' and remove special handling of
the existing indirect buffer window that overrides
`org-indirect-buffer-display'.
(org-agenda-do-context-action): Force `org-indirect-buffer-display' to
be 'other-window when displaying subtree at point in
org-agenda-follow-mode.

This patch reverts 35d6d9f50, implementing an alternative fix for
stabilizing indirect buffer window selection.  Unlike the existing
fix, it utilizes display buffer action and does not cause clashes with
custom `org-indirect-buffer-display'.

Reported-by: JV <misc@jeffvalk.com>
Link: https://orgmode.org/list/1a4c7a04-8536-40c7-899e-ba433a1252fd@jeffvalk.com
2024-05-11 16:19:52 +03:00
Ihor Radchenko e36a4fe20e
org-html-final-function: Suppress mode hooks when indenting
* lisp/ox-html.el (org-html-final-function): When setting indentation,
use defaults, suppressing major mode hook.  If we do not, all kinds of
user code may be executed.

This fix will only work starting from Emacs 30, after bug#70671 is
fixed:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70671

Reported-by: arozbiz@gmail.com
Link: https://orgmode.org/list/87tu21hsuk.fsf@localhost
2024-05-11 13:02:10 +03:00
Ihor Radchenko 4131926984
org: New Org-wide custom option `org-sort-function'
* lisp/org-macs.el (org-sort-function): New customization defining how
Org mode should sort headlines, table lines, agenda lines, etc.
(org-string<):
(org-string<=):
(org-string>=):
(org-string>): Use the new customization.
(org-string<>): Add docstring.
(org-sort-function-fallback): New helper function to help users on
MacOS where `string-collate-lessp' is not reliable.
* lisp/oc-basic.el (org-cite-basic--field-less-p):
* lisp/org-agenda.el (org-cmp-category):
(org-cmp-alpha):
* lisp/org-list.el (org-sort-list):
* lisp/org-mouse.el (org-mouse-list-options-menu):
* lisp/org-table.el (org-table-sort-lines):
* lisp/org.el (org-tags-sort-function):
(org-sort-entries):
* lisp/ox-publish.el (org-publish-sitemap): Honor the new
customization.
* lisp/org-mouse.el (org-mouse-tag-menu):
(org-mouse-popup-global-menu):
* lisp/org-agenda.el (org-cmp-tag): Honor `org-tags-sort-function' and
falling back to `org-string<' if note set.
* etc/ORG-NEWS (New option controlling how Org mode sorts things
~org-sort-function~): Announce the change.

This change aims to standardize the way Org mode performs sorting of
user data.  In particular, it addresses issues with oddities of string
collation rules on MacOS and tricky language environments like
Turkish.

Link: https://orgmode.org/list/87jzleptcs.fsf@localhost
2024-05-11 12:34:30 +03:00
Ihor Radchenko f64c8a5a5b
org-insert-heading: Prevent 0-blanks after heading when there is blank before
* lisp/org.el (org-insert-heading): When creating a new heading with
blank lines before results in the _next_ heading to have no blank
lines, add them.

Reported-by: gusbrs <gusbrs.2016@gmail.com>
Link: https://orgmode.org/list/877cjl67z6.fsf@localhost
2024-05-10 12:15:40 +03:00
Ihor Radchenko 3bf33c0d7b
org-clock-get-table-data: Fix error when :match uses LEVEL
* lisp/org-clock.el (org-clock-get-table-data): Pass headline level to
the clock table matcher.

Link: https://orgmode.org/list/8acdd46f-4137-4957-bb52-827d817eb5e7@uberco.de
2024-05-09 14:33:24 +03:00
Ihor Radchenko c6849a2bc8
org-store-link-functions: Fix the docstring
* lisp/ol.el (org-store-link-functions): Describe the actual sequence
of calling store functions.
2024-05-09 13:41:58 +03:00
Ihor Radchenko 96b3129265
org-create-file-search-functions: Allow to provide link description
* lisp/ol.el (org-create-file-search-functions): Fix the docstring,
replacing old broken way to set link description with
`org-link-store-props'.
(org-store-link): Allow the new behavior; get rid of redundant CPLTXT
internal variable - every time it is used, LINK is also set to it.

Reported-by: Magnus Therning <magnus@therning.org>
Link: https://orgmode.org/list/87wn9pppkl.fsf@localhost
2024-05-09 13:34:58 +03:00
Ihor Radchenko bd5665e017
org-table-make-reference: Address compiler warning
* lisp/org-table.el (org-table-make-reference): Drop branch of `if'
unused during runtime.  This preserves _interactive_ behavior.
* testing/lisp/test-org-table.el (test-org-table/org-table-make-reference/mode-string-none):
(test-org-table/org-table-make-reference/mode-string-N): Fix tests to
check for the existing _interactive_ behavior.  When running make
test (eq "" "") happens to return t and tests were passing previously
by accident despite actual behavior during user session being
different. Fix the tests to avoid breaking changes in the user
experience.

Link: https://list.orgmode.org/orgmode/20230827214320.46754-1-salutis@me.com/
2024-05-09 11:55:29 +03:00
Ihor Radchenko 24c4a40f79
org-fold-core-region: Fix isearch when fold style is overlays
* lisp/org-fold-core.el (org-fold-core--isearch-show): Only delete
overlay, when overlay is supplied.
(org-fold-core-region): Do not use custom "open temporarily" function
for overlay style.

Reported-by: Paul Stansell <paulstansell@gmail.com>
Link: https://orgmode.org/list/CAMJKaZy2Mt1_NeoP3nG3Uv68372H3rHHU1fcmSgO4xLpRQZi5Q@mail.gmail.com
2024-05-09 11:34:23 +03:00
Ihor Radchenko 48169da265
lisp/org.el (org-make-tags-matcher): Suppress compiler warning 2024-05-06 12:57:45 +03:00
Ihor Radchenko c8bd2092b1
org-agenda-mode: Honor hidden link descriptions
* lisp/org-agenda.el (org-agenda-mode): Hide 'org-link invisibility
spec, as in Org mode.

Reported-by: Bastien <bzg@gnu.org>
Link: https://orgmode.org/list/87seyww65g.fsf@gnu.org
2024-05-05 20:27:13 +03:00
Ihor Radchenko 56992b221e
Merge branch 'bugfix' 2024-05-05 20:26:17 +03:00
Ihor Radchenko 24feef95e4
ox-md: Fix exporting numbered items >=100
* lisp/ox-md.el (org-md-item): Always put at least one space after
item number.
* testing/lisp/test-ox-md.el (ox-md/item): New test.

Reported-by: Bastien <bzg@gnu.org>
Link: https://orgmode.org/list/87wmo8qll7.fsf@gnu.org
2024-05-05 20:25:22 +03:00
Andras Simonyi 288e0a11c2 oc-csl: Remove spaces before citations in superscript
* lisp/oc-csl.el (org-cite-csl--create-structure): Remove spaces before citation
if it is in superscript.
(org-cite-csl--style-cite-superscript-p): New function to check whether the used
CSL style produces citations in superscript.
2024-05-05 15:58:01 +02:00
Ihor Radchenko 43ba00b2b1
ob-latex: New custom option `org-babel-latex-process-alist'
* lisp/ob-latex.el (org-babel-latex-process-alist): New variable.
(org-babel-execute:latex): Override `org-preview-latex-process-alist'
when generating png output, making sure that the process yields an
actual png image, even when `org-preview-latex-default-process' is
non-default.
* etc/ORG-NEWS (=ob-latex= now uses a new option
~org-babel-latex-process-alist~ to generate png output): Announce the
change.

Reported-by: Ihor Radchenko <yantar92@posteo.net>
Link: https://orgmode.org/list/87cyretut7.fsf@localhost
2024-05-05 13:39:43 +03:00
Ihor Radchenko e09ad15a71
org-babel-read: Avoid `save-match-data'
* lisp/ob-core.el (org-babel-read): Avoid fiddling with match data -
it is not used.
2024-05-04 22:20:09 +03:00
Ihor Radchenko 0227e12605
org-babel-read: Read quotes strings ignoring leading/trailing newlines
* lisp/ob-core.el (org-babel-read): When reading "string", ignore
leading/trailing newlines in addition to spaces.
* testing/lisp/test-ob.el (test-ob/org-babel-read): Add more tests.

Reported-by: Max Nikulin <manikulin@gmail.com>
Link: https://orgmode.org/list/v15lva$hhl$1@ciao.gmane.io
2024-05-04 22:19:45 +03:00
Ihor Radchenko 105dedd0d9
ox-html: Fix exporting inlinetasks without contents
* lisp/ox-html.el (org-html-format-inlinetask-default-function): Do
not export no-contents as string "nil".  Just use empty string.
2024-05-04 15:26:10 +03:00
Ihor Radchenko edb5eaaac3
org-babel-read: Allow reading multi-line strings
* lisp/ob-core.el (org-babel-read): Fix regexp for detecting
string-like CELLs.  Avoid calling `read' twice.  Recover gracefully if
`read' errs.
* testing/lisp/test-ob.el (test-ob/org-babel-read): Add more tests.

Reported-by: Max Nikulin <manikulin@gmail.com>
Link: https://orgmode.org/list/v155g2$ncm$1@ciao.gmane.io
2024-05-04 14:46:46 +03:00
Ihor Radchenko 1523e21d82
org-babel-expand-noweb-references: Add trialing newline after comments
* lisp/ob-core.el (org-babel-expand-noweb-references): After closing
comment, when using :comments noweb, leave trailing newline after the
closing comment.
* testing/lisp/test-ob-tangle.el (ob-tangle/comment-noweb-relative):
Modify test to check for the newline.

Reported-by: João Pedro <jpedrodeamorim@gmail.com>
Link: https://orgmode.org/list/87fruy2rw6.fsf@ergo
2024-05-04 14:30:25 +03:00
Ihor Radchenko 0d24857ccf
ox-html: Fix exporting inlinetasks without contents
* lisp/ox-html.el (org-html-format-inlinetask-default-function): Do
not export no-contents as string "nil".  Just use empty string.
2024-05-04 13:37:46 +03:00
Ihor Radchenko 2028bb15cd
org-babel-read: Fix reading multiple quoted strings
* lisp/ob-core.el (org-babel-read): Fix naive regexp for matching
escaped quotes.  Instead, check if `read' can read the whole CELL in
one go.
* testing/lisp/test-ob.el (test-ob/org-babel-read): Add tests.

Reported-by: Max Nikulin <manikulin@gmail.com>
Link: https://orgmode.org/list/v10k4s$et9$1@ciao.gmane.io
2024-05-03 15:04:52 +03:00
Ihor Radchenko 5da0eb6ea7
org-element-timestamp-parser: Allow time in diary sexp timestamps
* lisp/org-agenda.el (org-agenda-get-timestamps):
* lisp/org-element.el (org-element--timestamp-regexp): Adjust
timestamp regexp.
(org-element-timestamp-parser): Support the new syntax for diary sexp
timestamps.  The diary sexp is now stored in :diary-sexp property and
the time/time range is stored as usual.
(org-element-timestamp-interpreter): Interpret diary timestamp
according to its building blocks rather than raw value.
* testing/lisp/test-org-agenda.el (test-org-agenda/diary-timestamp):
New test checking for agenda support of times in diary timestamps.
*
testing/lisp/test-org-element.el (test-org-element/timestamp-interpreter):
Add parser tests.
* doc/org-manual.org (Timestamps): Add an example of the new syntax to
the manual.
* etc/ORG-NEWS (Diary type timestamps now support optional
time/timerange): Document the Org syntax addition.

This syntax modification is fixing an omission in org-element.el.  In
the past, org-agenda had explicit support for diary timestamps with
time/timerange, but that support was ad-hoc.  Now, after org-agenda
switched to use parser, we must modify Org syntax to fix the feature
regression.
2024-05-03 13:42:06 +03:00
Ihor Radchenko 3d0deadf41
Update version number for the 9.6.29 release 2024-05-03 10:32:09 +03:00
Ihor Radchenko 1cafe3e8e4
org-indent-line: Do not err in src blocks when there is no language mode
* lisp/org.el (org-indent-line): When attempting to indent as in major
mode, ignore any errors, like errors arising when the major mode is
not available.
2024-05-02 19:47:26 +03:00
Rudolf Adamkovič 7cdf835c71
Auto-complete PRINT_BIBLIOGRAPHY with a trailing colon
* lisp/org.el (org-options-keywords): Add a trailing colon to the
'PRINT_BIBLIOGRAPHY' keyword to avoid unnecessary user confusion.
2024-05-02 19:31:54 +03:00
Ihor Radchenko fede1c9909
org-display-inline-images: Prioritize #+attr_org over other #+attr_...
* lisp/org.el (org-display-inline-image--width): When there is
 #+attr_org defining :width, use it.  Fall back to #+attr_<other>
otherwise.  Update the docstring.
(org-image-actual-width): Improve docstring (credit: Matt Huszagh).
* etc/ORG-NEWS (Inline image width value in =#+attr_org= is preferred
over other =#+attr_...= keywords): Document the change.

Co-authored-by: Matt Huszagh <huszaghmatt@gmail.com>
Link: https://orgmode.org/list/871r2ucuhz.fsf@gmail.com
2024-05-02 19:26:48 +03:00
Ihor Radchenko 55795376b6
org-indent-line: Do not rely upon TAB being bound to indentation
* lisp/org.el (org-indent-line): When indenting natively in src
blocks, call `indent-line-function' instead of relying upon "TAB"
binding doing indentation.
2024-05-02 18:18:49 +03:00
Ihor Radchenko dd12e9c763
ob-calc.el: Fix assigning floating point numbers
* lisp/ob-calc.el (org-babel-execute:calc): Use internal calc format
when assigning variable values that are numbers.
* testing/lisp/test-ob-calc.el (ob-calc/float-var): New test.

Reported-by: Visuwesh <visuweshm@gmail.com>
Link: https://orgmode.org/list/87edbu4kdh.fsf@gmail.com
2024-05-02 15:24:15 +03:00
Ihor Radchenko a2e5685e49
Do not use org-fold to hide link parts
* lisp/ol.el (org-link--link-folding-spec):
(org-link--description-folding-spec):
(org-link-descriptive-ensure): Remove.
(org-toggle-link-display): Rely upon font-lock to update link display.
* lisp/org-agenda.el (org-agenda-mode): Remove no-longer-necessary
org-fold initializer.
* lisp/org-fold.el (org-fold-initialize): Remove link-related fold
types.
(org-fold-show-set-visibility):
* lisp/org-src.el (org-src-font-lock-fontify-block):
* lisp/org.el (org-do-emphasis-faces):
(org-unfontify-region): Remove special handling of link folds.
* lisp/org.el (org-mode): Remove folding setup for links.
(org-activate-links--text-properties): Remove.
(org-activate-links): Honor `org-link-descriptive' dynamically.

This change reflects de-facto situation where we cannot use folding
system to hide links reliably.  Even though we promise in Org 9.6 that
hidden parts of the link can be searched, the way it can be
implemented is not reliable and is working around upstream mechanisms.
Upstream changes are necessary to properly support isearch in text
hidden using text properties; workarounds attempted in org-fold-core
do not cut it because too many built-in Emacs libraries and also
third-party libraries rely upon internal implementation details of
isearch (due to limitations of its API).
2024-05-02 12:29:27 +03:00
Morgan Smith 646f6ec133
Obsolete `org-cached-entry-get' in favor of `org-entry-get'
We have a better performing cache mechanism in `org-entry-get'.

* lisp/org.el (org-make-tags-matcher): Replace uses of
`org-cached-entry-get' with `org-entry-get'.
(org-cached-entry-get): Move to ...
* lisp/org-compat.el (org-cached-entry-get): ... here.  Obsolete in
favor of `org-entry-get'.
2024-05-01 21:41:07 +03:00
Max Nikulin 0f0019e326
org-ctags.el: Protect shell specials in directory name
* lisp/org-ctags.el (org-ctags-create-tags): Escape shell specials.

Directory name (the argument or `default-directory') may contain various
characters interpreted by shell.  Effects may vary from just incorrect
actual path to execution of a command embedded into path.  Neither
double nor single quotes is a safe way to use directory name in shell
commands since the name may contain these characters.

A follow-up to
Martin Marshall. [PATCH] `org-ctags-create-tags` creates empty TAGS file.
Fri, 09 Feb 2024 18:57:48 -0500.
<https://list.orgmode.org/87h6ihgphf.fsf@martinmarshall.com>
2024-04-30 12:58:34 +03:00
Max Nikulin badb09d679
org-ctags.el: Do not activate on load
* etc/ORG-NEWS: Announce the change breaking for `org-ctags' users and
provide init file code to enable the feature.
* lisp/org-ctags.el (org-ctags-enable): Do no invoke this function
during library loading.  Collect all initialization code in its body.

Setting up hooks during library loading leads to various issues.
- Emacs coding conventions insist on incompatible changes if loading
  a library modifies behavior, see
  Info node `(elisp) Coding Conventions'.
- The library may be autoloaded for the sake of help completion
  breaking `org-open-at-point':
  Nick Dokos. org-ctags land grab. Mon, 20 Mar 2023 23:36:09 -0400.
  <https://list.orgmode.org/87o7omg4ie.fsf@alphaville.usersys.redhat.com>
- Unrelated unit tests fail due to user prompt:
  Ihor Radchenko. Re: [PATCH] org-ctags.el: Protect shell specials
  in directory name. Sun, 28 Apr 2024 12:53:38 +0000.
  <https://list.orgmode.org/87a5ldk5rh.fsf@localhost>
2024-04-30 12:49:52 +03:00
Max Nikulin 735334445f
org-ctags.el: Define unload function
* lisp/org-ctags.el (org-ctags-unload-function): New function to cleanup
during `unload-feature' call.
(org-ctags--open-link-functions-list org-ctags-open-link-functions):
Define and use list of options available for `org-open-link-functions'.
(org-ctags--visit-tags-table): Give a name to remove the function from
`org-mode-hook' on library unload.

Prevent the following error after library unloading

    Symbol’s function definition is void: org-ctags-find-tag
2024-04-30 12:49:51 +03:00
Ihor Radchenko 3e11b2eb88
org-make-tags-matcher: Byte-compile the returned function
* lisp/org.el (org-make-tags-matcher): Byte-compiling the constructed
function yields noticeable improvements in at least clocksum
generation.

Link: https://orgmode.org/list/CH3PR84MB3424390023D1A552D57395FAC51B2@CH3PR84MB3424.NAMPRD84.PROD.OUTLOOK.COM
2024-04-29 19:46:31 +03:00
Ihor Radchenko 89c68683f9
org-babel-import-elisp-from-file: Fix detecting delimiter in single-line data
* lisp/org-table.el (org-table-convert-region): When detecting
delimiter in, do not unconditionally fall back to CSV parser.  Only do
it when the line contains commas and use a simple single tab/space
split otherwise.  Add new special delimeter-detection strategy when
SEPARATOR is 'babel-auto - convert to | full line | table instead of
falling back to tab/space split when the region contains a single
line.
* lisp/ob-core.el (org-babel-import-elisp-from-file): Force special
strategy when converting data to lisp.

The commit fixes the problem with first `re-search-forward' in the
`cond' moving point to end of the region, making the third `cond'
branch never match.

A special strategy specific to babel is necessary to preserve the
historic behavior with lines like
: single line with spaces
being converted to a single table cell
: | single line with space |

Reported-by: Matt <matt@excalamus.com>
Link: https://orgmode.org/list/18f24d87b62.d55e94e24743657.3252620114689708448@excalamus.com
2024-04-29 14:42:12 +03:00
Ihor Radchenko a2514c97de
Merge branch 'bugfix' 2024-04-28 15:57:30 +03:00
Ihor Radchenko 36a9f6f185
org-clock: Autoload `org-clock-modify-effort-estimate'
* lisp/org-clock.el (org-clock-modify-effort-estimate): Autoload the
command.  It is used in the agenda menu without loading org-clock, so
we must autoload it.  Also, some users want to use the command before
clockin-in.

Link: https://orgmode.org/list/2fb82950-316e-4ebb-bb8b-a65b45e671eb@Spark
2024-04-28 15:55:45 +03:00
Ihor Radchenko e0f24a3f6d
org-html-footnote-reference: Fix duplicate IDs
* lisp/ox-html.el (org-html-footnote-reference): When multiple
footnote references point to a single footnote, make sure that the
reference ids are not duplicated.  Now, the ids for non-first
reference are constructed as fn.<footnote id>.<footnote reference
number>.  The reference number of counted across all the footnote
references referencing the same footnote.

Reported-by: Protesilaos Stavrou <info@protesilaos.com>
Link: https://orgmode.org/list/87cyqcv9q1.fsf@protesilaos.com
2024-04-28 13:35:31 +03:00
Ihor Radchenko 065af4b42a
ox-html: Use non-number footnote names as link anchors
* lisp/ox-html.el (org-html-footnote-section):
* lisp/ox-html.el (org-html-footnote-reference): When footnote has a
non-number name, build link anchors using this name.
* etc/ORG-NEWS (=ox-html=: When exporting footnotes with custom
non-number names, the names are used as link anchors): Announce the
change.

Link: https://orgmode.org/list/875xwngiwx.fsf@protesilaos.com

Co-authored-by: Protesilaos Stavrou <info@protesilaos.com>
2024-04-28 13:18:59 +03:00
Ihor Radchenko ba747598c6
org-icalendar-export-agenda-files: Report file name when export fails
* lisp/ox-icalendar.el (org-icalendar-export-agenda-files): When
export fails, display warning listing the error and the problematic
file.
2024-04-26 18:09:43 +03:00
Ihor Radchenko 64049aaddc
lisp/ox.el (org-export-data): Improve broken link error message
* lisp/ox.el (org-export-data): Link to `org-export-with-broken' links
in the error message.  Highlight that export is aborted.
2024-04-26 18:09:03 +03:00
Alexander Adolf fbf613ece9
lisp/org-colview.el: Move cleanup code to cleanup function
* lisp/org-colview.el (org-columns--clean-item): Additionally process
the result with `org-quote-vert'.
(org-columns--capture-view): Remove call to `org-quote-vert'.

`org-columns--clean-item' is used when formatting and inserting column
view dynamic blocks.  By moving the call to `org-quote-vert' to this
function, it can be used by all formatting functions, including
user-supplied ones, to format content to be safe for inclusion in a
table.
2024-04-26 15:44:47 +03:00
Alexander Adolf 4e6fa96e26
lisp/org-colview.el: Add link parameter to colview dynamic block
* lisp/org-colview.el (org-columns--capture-view): Add new link
parameter, which when non-nil causes ITEM headlines to be linked to
their origins.
(org-dblock-write:columnview): Pass new link parameter to
`org-columns--capture-view', and explain its use in the docstring.
* testing/lisp/test-org-colview.el (test-org-colview/dblock): Add
new test for link feature.
* doc/org-manual.org (Capturing column view): Describe new :link
parameter.
* etc/ORG-NEWS (=colview= dynamic block can link to headlines):
Describe new link feature.
2024-04-26 15:44:46 +03:00
Alexander Adolf 5a98b4c563
lisp/org-colview.el: Add formatter parameter to colview dynamic block
* lisp/org-colview.el (org-dblock-write:column view): Factor out the
existing formatting code to new function
`org-columns-dblock-write-default', and honour new dblock parameter
:formatter for specifying a different formatting function.
(org-columns-dblock-write-default): New function with current
formatting code.
(org-columns--capture-view): Amend docstring to better explain the
format of the data being passed to the formatting function.
(org-clock-clocktable-formatter): New option to define a global
default formatting function, defaulting to the current behaviour.
* testing/lisp/test-org-colview.el (test-org-colview/dblock): New test
for formatting function.
(test-org-colview/dblock-formatter): New function used in formatting
test.
* doc/org-manual.org (Capturing column view): Describe new :formatter
parameter.
* etc/ORG-NEWS (New option ~org-columns-dblock-formatter~): Announce
new option.
(=colview= dynamic block supports custom formatting function):
Describe new custom formatting function feature.
2024-04-26 15:44:44 +03:00
Pedro A. Aranda f124b616d9
oc-biblatex: Allow native biblatex options in CITE_EXPORT
* lisp/oc-biblatex.el: (org-cite-biblatex--package-options) Add support
for options in the native biblatex package format.
* doc/org-manual.org: Document the added format and add an example.
* etc/ORG-NEWS: Announce new format for #+cite_export biblatex options.
2024-04-26 15:23:29 +03:00
Ihor Radchenko 510e8f9cc8
ox-publish: Do not store :title, :date, and :index in project cache
* lisp/ox-publish.el (org-publish-transient-cache): New transient
cache, used just during current publish process.
(org-publish-initialize-cache):
(org-publish-reset-cache): Initialize the transient cache.
(org-publish-cache-set-file-property): Add new optional argument to
store property in transient cache rather than persistent cache.
(org-publish-cache-get-file-property): Query transient cache first.
(org-publish-collect-index):
(org-publish-find-title):
(org-publish-find-date): Use transient cache.

This commit fixes situation when :title/:date/:index properties are
not updated even when the corresponding project file does get updated.

Link: https://emacs-china.org/t/org-mode-html/26896/2
2024-04-26 13:42:45 +03:00
Ihor Radchenko 68d592bae4
ox-man: Escape backslash characters in verbatim examples
* lisp/ox-man.el (org-man--protect-example): New helper function
protecting special escape characters inside literal examples.
(org-man-example-block):
(org-man-inline-src-block):
(org-man-src-block):
(org-man-table): Protect contents that is intended to be rendered
verbatim.

Reported-by: Greg Minshall <minshall@umich.edu>
Link: https://orgmode.org/list/2924644.1643637646@apollo2.minshall.org
2024-04-26 12:42:58 +03:00
Ihor Radchenko 0e743d0bfc
Update version number for the 9.6.28 release 2024-04-26 10:26:39 +03:00
Rudolf Adamkovič 252cc0be07
ob-lua: Support all types and multiple values in results
* etc/ORG-NEWS
(New and changed options): Describe the new option
'org-babel-lua-multiple-values-separator'.
(New features): Describe the main change, as per the title of this
commit message.
* lisp/ob-lua.el
(org-babel-lua-multiple-values-separator): Enable the user to
customize the string that separates the individual values in
multi-valued returns.
(org-babel-lua-wrapper-method): Support all Lua types and multi-valued
returns.  Further, do not pretty-print tables with one or more
extraneous newline characters.
(org-babel-lua-pp-wrapper-method): Remove in favor of the new, more
general 'org-babel-lua-wrapper-method'.
(org-babel-lua-evaluate-external-process): Adapt for the new
'org-babel-lua-wrapper-method'.
* testing/lisp/test-ob-lua.el
(test-ob-lua/colnames-yes-header-argument-pp):
(test-ob-lua/colnames-nil-header-argument):
(test-ob-lua/colnames-no-header-argument): Stop expecting extraneous
newlines, now that the pretty printer does not output them.
(test-ob-lua/types): Test nil, boolean, number, string, and table
results.
(test-ob-lua/multiple-values): Test multi-valued results.
2024-04-24 16:04:38 +03:00
Ihor Radchenko d6353b283a
ox-ascii: Fix broken link export for broken fuzzy links
* lisp/ox-ascii.el (org-ascii--describe-links): Ignore all kinds of
broken links, not just broken id links.

Reported-by: Pablo Aguado <aguadopd@hotmail.com>
Link: https://orgmode.org/list/SA1P223MB070291E02E95707C31342244C2102@SA1P223MB0702.NAMP223.PROD.OUTLOOK.COM
2024-04-24 15:46:07 +03:00
Ihor Radchenko 80b474db00
ox-ascii: Fix broken link export for broken fuzzy links
* lisp/ox-ascii.el (org-ascii--describe-links): Ignore all kinds of
broken links, not just broken id links.

Reported-by: Pablo Aguado <aguadopd@hotmail.com>
Link: https://orgmode.org/list/SA1P223MB070291E02E95707C31342244C2102@SA1P223MB0702.NAMP223.PROD.OUTLOOK.COM
2024-04-24 15:42:39 +03:00
Ihor Radchenko c6c5474b7e
ob-exp: Preserve header arguments in source block after processing
* lisp/ob-exp.el (org-babel-exp-process-buffer): Fix infinite loop
when the inline src block replacement is the same as the existing src
block.
(org-babel-exp-code): Support new placeholder %header-args for
non-default header arguments.
(org-babel-exp-inline-code-template):
(org-babel-exp-code-template): Change the templates to include header
arguments.
* testing/lisp/test-ob-exp.el (ob-exp/exports-inline-code):
(ob-exp/exports-inline-code-double-eval-exports-both):
(ob-export/export-with-results-before-block): Adjust tests.
* etc/ORG-NEWS (=ox-org= preserves header non-default arguments in src
blocks): Document the breaking change.

This change fixes ox-org export for src blocks.  Previously src blocks
did not preserve their header arguments.  Now, non-default header
arguments are preserved.

Link: https://github.com/emacsorphanage/ox-pandoc/issues/37
2024-04-24 14:48:19 +03:00
Alexander Gogl 46e13c3ebd
ox-latex: New option to customize LaTeX footnote command
* lisp/ox-latex.el (org-export-define-backend): Add option.
(org-latex-default-footnote-command): New custom variable.
(org-latex-footnote-reference): Replace string "\\footnote{%s%s}"
with custom variable.

* etc/ORG-NEWS (New and changed options): Add description to option.

Some LaTeX classes define their own footnote commands. For example,
kaobook (https://github.com/fmarotta/kaobook/blob/master/example_and_documentation.pdf)
has \footnotes and \sidenotes, whereby sidenotes (notes are put into
the outter margin) are the dominant form of putting notes in
kaobook. It would be great if you could make the footnote command in
the footnote function customizable. My proposal is in the attachment.

Modified from a feature request by Alexander Gogl.

Link: https://list.orgmode.org/m2v84fhj9u.fsf@gmail.com/T/#m71809443a3b328ed704712ba53e6bb78282249cc

TINYCHANGE
2024-04-23 13:58:14 +03:00
Ihor Radchenko 1ad03e77b1
org-fold: Fix regression after b03ece433
* lisp/org-fold-core.el (org-fold-core-add-folding-spec): Add new
folding spec property :font-lock.

Reported-by: StrawberryTea <look@strawberrytea.xyz>
Link: https://orgmode.org/list/87frvdtemx.fsf@strawberrytea.xyz
2024-04-22 22:20:49 +03:00
Ihor Radchenko dba92f72d3
Merge branch 'bugfix' 2024-04-22 16:44:27 +03:00
Ihor Radchenko 0db82ee8f8
org-agenda-manipulate-query: Fix repeated canceled calls
* lisp/org-agenda.el (org-agenda-manipulate-query): When called
multiple times, discarding edits, prevent accumulating trailing + + +
- +{} in the query string.

Reported-by: Carlos Pita <carlosjosepita2@gmail.com>
Link: https://orgmode.org/list/87r1be97xd.fsf@localhost
2024-04-22 16:42:08 +03:00
Ihor Radchenko 5b0b7f2924
org-paste-subtree: With single/double prefix, force inserting sibling/child
* lisp/org.el (org-paste-subtree): When called with single or double
universal argument, force inserting sibling heading or child heading
accordingly.
* testing/lisp/test-org.el (test-org/paste-subtree): Add tests for the
new behavior.
* doc/org-manual.org (Structure Editing): Update the command description.
* etc/ORG-NEWS (~org-paste-subtree~ now handles =C-u= and =C-u C-u=
prefix arguments specially): Announce the change.

Link: https://orgmode.org/list/878rhxtszb.fsf@localhost
2024-04-21 14:59:37 +03:00
Ihor Radchenko 36d0928043
Clarify `org-use-sub-superscripts' and related options
* lisp/org.el (org-use-sub-superscripts): Update the docstring
explaining that (...) is understood as sub/superscript, even when
there are spaces inside.  Add a note that the underlying markup is not
altered.
* lisp/ox.el (org-export-with-sub-superscripts): Link to the
`org-use-sub-superscripts' docstring instead of duplicating the
docstring text.
* doc/org-manual.org (Subscripts and Superscripts): Clarify the
differences between `org-export-with-sub-superscripts' and
`org-use-sub-superscripts'.  Add a note that underlying markup does
not change.

Link: https://orgmode.org/list/87plvproor.fsf@localhost
2024-04-21 12:41:05 +03:00
Ihor Radchenko 769018718c
ox-odt: Fix regression when exporting file links after 72b0e9ff0
* lisp/ox-odt.el (org-odt-link--inline-image): Fix file path expansion
code.  Explicitly assert that the passed link must be a file
link (otherwise, the rest of the function logic does not make any
sense).
(org-odt-link): Remove special handling of http, https, ftp, and
mailto links, following the idea behind 72b0e9ff0.  Fix coderef link
handling - they must use raw coderef, not coderef:<ref>.

Reported-by: Fraga, Eric <e.fraga@ucl.ac.uk>
Link: https://orgmode.org/list/87r0f3ndvy.fsf@ucl.ac.uk
2024-04-20 15:19:11 +03:00
Morgan Smith 942a7320d0
org-element-cache-map: Fix edge case when we move to not-yet-cached element
* lisp/org-element.el (org-element-cache-map): Make sure that there is
always a cached element where we move START position.
* testing/lisp/test-org-element.el (test-org-element/cache-map): New
test.

Co-authored-by: Morgan Smith <Morgan.J.Smith@outlook.com>
2024-04-19 16:06:44 +03:00
Ihor Radchenko d73688faa4
org-paste-subtree: Fix pasting when point is on heading but not at bol
* lisp/org.el (org-paste-subtree): When point is on heading, but not
at bol, paste using heading level minimal between current heading
level and next visible heading level.
* testing/lisp/test-org.el (test-org/paste-subtree): Add test cases.

Reported-by: Philipp Kiefer <phil.kiefer@gmail.com>
Link: https://orgmode.org/list/878rhxtszb.fsf@localhost
2024-04-19 14:11:15 +03:00
Ihor Radchenko 037700c411
Update version number for the 9.6.27 release 2024-04-19 10:56:36 +03:00
Ihor Radchenko 1ae978f940
Merge branch 'bugfix' 2024-04-15 14:19:50 +03:00
Ihor Radchenko 4ae5cc0182
org-self-insert-command: Prevent deleting selection for speed commands
* lisp/org.el (org--speed-command-p): New helper function checking
whether current command is a speed command.
(org-self-insert-command): Use the new helper.
* lisp/org.el: In `delete-selection' property of
`org-self-insert-command' symbol, signal that selection must not be
deleted when current command is a speed command.

Reported-by: Joe Gilder <joe@homestudiocorner.com>
Link: https://orgmode.org/list/87il0voeok.fsf@localhost
2024-04-15 14:17:17 +03:00