* lisp/org.el (org-indent-region): Use `save-window-excursion'
to restore point after indenting region in source blocks.
Thanks to Gustavo Barros for reporting this bug.
* lisp/org-agenda.el (org-agenda-get-blocks): When both dates
are of the same value, assume this is a time to display for
each date in the range.
Thanks to David Masterson for reporting this.
* lisp/org-table.el (org-table-eval-formula): Restore window
configuration when debugging table formula is done.
Thanks to Eric Fraga for reporting this.
* lisp/org-tempo.el (org-tempo-add-block): Remove the '>
element of the template to avoid editing the source block
while inserting it through tempo.
Thanks to Ihor and Bram for reporting this and suggesting
the proper fix.
* lisp/org-src.el (org-edit-src-code): Don't throw an error
when trying to find the source language in a non-interactive
call, typically when called for template expansion.
Thanks to Tyler Smith and Jack Kamm for reporting a related bug.
* lisp/org-agenda.el (org-agenda-mode-map): Remap
'move-end-of-line to 'org-agenda-end-of-line.
(org-agenda-end-of-line): New command.
This fixes this bug: when moving to the end of line, if the next
line is hidden, changing the timestamp of the current headline would
not display the new time. This is also safer when archiving subtrees
and when performing actions on agenda headlines in general.
* lisp/org.el (org-cycle-internal-local): When cycling visibility
on a subtree, don't take a list has a child.
These two subtrees should cycle the same way:
* A subtree
A Paragraph.
* A subtree
- A list.
Before the fix, the second subtree would cycle through three steps
instead of two.
Thanks to Samuel Wales for reporting this.
* lisp/org.el (org-open-at-point): Don't forceably try ot open
attachments.
This commit fixes a bug: when trying to open links in a subtree with
no attachments, `org-open-at-point' would create an ID property with
no apparent reason.
* lisp/org-agenda.el (org-agenda-mode): Fix bug: don't prevent the
use of M-x text-scale-mode RET.
Before this fix, M-x text-scale-mode RET was only available after
the agenda buffer was redone once. Now it is available immediately.
This fixes commit 00c1184a0.
* lisp/org-agenda.el (org-agenda-filter-make-matcher): Use `or'
for category filters, `and' for other filters.
For example, when using `org-agenda-category-filter-preset' set to
'("+cat1" "+cat2"), using `and' in the filter matcher results in
displaying 0 headline, since no headline can have two categories.
* lisp/org-element.el (org-element--parse-elements): Only ignore parts
due to folding, not because of fontification.
* lisp/org-macs.el (org-invisible-p): Add an optional argument.
* testing/lisp/test-org-element.el (test-org-element/parse-buffer-visible):
Add tests.
* lisp/ol.el (org-link-make-regexps): Update regexp to forbid any
un-escaped square bracket in the URI.
(org-link-escape):
(org-link-unescape):
* testing/lisp/test-ol.el (test-ol/escape):
(test-ol/unescape):
(test-ol/store-link):
* testing/lisp/test-org.el (test-org/custom-id):
(test-org/fuzzy-links):
* testing/lisp/test-ox.el (test-org-export/resolve-fuzzy-link): Adapt
to new syntax.
* doc/org-manual.org (Link Format): Update documentation.
The new syntax allowed un-escaped opening square brackets in the URI
part of bracket links. Unfortunately, it led to bug as described here:
<https://lists.gnu.org/archive/html/emacs-orgmode/2019-12/msg00312.html>
Now, we require to escape every square bracket in the URI.
* lisp/ox-odt.el (org-odt-template): The file `styles.xml' might be
copied from a location where it is read-only. Since we need to modify
it (and its copied under /tmp, so we can modify it), we need to ensure
we have write persmissions on it. Set mode to 600.
This is especially needed for projects like Guix, where all system
files are stored in a read-only location.
TINYCHANGE
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Enhance regex
for finding the end of blocks (i.e., `beg-of-endline') to detect
headlines (i.e., (rx bol (one-or-more "*") space) so that fontification
matches the behavior of org mode (i.e., that headlines are healines,
even in vertabim).
This change aligns the behavior and the visual appearance of verbatim
blocks that contain headlines. When `font-lock-mode' is enabled this
change makes situations like those in (info "(org) Literal Examples")
literally jump off the page.
Overview of new fontification
Source | fontification before | fontification after |
\#+BEGIN_EXAMPLE | org-block-begin-line | org-block-begin-line |
I look verbatim! | org-block | org-block |
* Org headers in | org-block | org-level-1 |
verbatim blocks | org-block | nil |
** highly accordingly | org-block | org-level-2 |
\#+END_EXAMPLE | org-block-end-line | org-meta-line |
This commit also makes some improvements to the reability of
org-fontify-meta-lines-and-blocks-1.
1. Use the `rx' macro for better readability. Note that the strings
below return with literal tabs when using `rx'. Expansion included for
reference here.
Begin regex.
old: "^\\([ \t]*#\\(\\(\\+[a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ \t]*\\(\\([^ \t\n]*\\)[ \t]*\\(.*\\)\\)\\)"
new: "^\\([[:blank:]]*#\\(\\(\\+[A-Za-z]+:?\\|[[:space:]]\\|$\\)\\(_\\([A-Za-z]+\\)\\)?\\)[[:blank:]]*\\(\\([^ \n ]*\\)[[:blank:]]*\\(.*\\)\\)\\)"
End regex. Note match-string call is stringified for documentation here.
old: (concat "^[ \t]*#\\+end" (match-string 4) "\\>.*")
new: "\\(?:\\(^\\(?:\\*+[[:space:]]\\|[[:blank:]]*#\\+end(match-string 4)\\>.*\\)\\)\\)"
Caption regex:
old: "\\([ \t]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ \t]*"
new: "\\([[:blank:]]*#\\+caption\\(?:\\[.*]\\)?:\\)[[:blank:]]*"
2. Refactor fontification of #+end blocks for readability and to reduce
the number of calls to point-max to one per branch.
TINYCHANGE
* lisp/org.el (org-create-formula-image): Ensure user input ends
with a % character to remove trailing whitespace. Also, add %
characters between macros and newlines purely visual.
TINYCHANGE