* lisp/ox-texinfo.el (org-texinfo-supports-math-p): Two
improvements: (1) Fix the incorrect `.info' extension used for the
temporary `.texi' file. This removes the warning "makeinfo: warning:
input file testXXX.info; did you mean testXXX.texi?" (2) Suppress
output when compiling the "Is math supported?" test file. This is to
avoid user confusion, as the user cares about their Texinfo file, not
implementation details. This removes the message "Processing Texinfo
file /var/.../testXXX.info...".
* lisp/org-id.el (org-id-find-id-file): Only fallback to the
current-buffer filename when it is an org-mode buffer. This avoids
accidental change of the major-mode when querying a non-existent id
from a non-org-mode buffer.
Reported-by: Visuwesh <visuweshm@gmail.com>
Link: https://list.orgmode.org/87ikuuwmz4.fsf@gmail.com/
* lisp/ob-core.el (org-babel-view-src-block-info): Query in-buffer
header arguments (`org-entry-get') from Org buffer. It does nothing
from *Help* buffer.
In the previous version, when the user interactively calls
`org-babel-view-src-block-info' and the point is on a code block, these
two warnings are shown in the buffer *Warnings*:
⛔ Warning (org-element): ‘org-element-at-point’ cannot be used in non-Org buffer #<buffer *Help*> (help-mode)
⛔ Warning (org-element): ‘org-element-at-point’ cannot be used in non-Org buffer #<buffer *Help*> (help-mode)
This happened because `org-babel-view-src-block-info'
calls (org-entry-get (point) "header-args" t) while being in
the *Help* buffer. `org-babel-view-src-block-info' should call
org-entry-get while being in the Org Mode buffer and then switch to
the *Help* buffer once it has all the information that is then
displayed in the *Help* buffer.
In the introduced changes, we execute (org-entry-get (point)
"header-args" t) while being in the Org Mode buffer and we switch
to *Help* when we have the necessary information that is then shown in
the *Help* buffer.
TINYCHANGE
* lisp/ox-icalendar.el (org-icalendar-entry): Include timestamps of
type diary when `:with-timestamps' is `active'.
* lisp/ox.el (org-export--skip-p): Include timestamps of type diary
when `:with-timestamps' is `active'.
*
testing/lisp/test-ox-icalendar.el (test-ox-icalendar/diary-timestamp):
Unit test for exporting timestamps of type diary.
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Add "export" to
list of block types that are fontified if `org-src-fontify-natively'
is non-nil. This brings back the previous undocumented behaviour.
Link: https://list.orgmode.org/87h6aejf17.fsf@localhost/
TINYCHANGE
* lisp/org-persist.el: (org-persist--find-index): Fix regression that
makes the function return nil when container in COLLECTION is not a
list of containers.
TINYCHANGE
* testing/lisp/test-ox-publish.el (org-test-publish): Add optional
arguments `timestamp-flag' and `pubdir' for control over existing
local variables, add optional argument `keep-pubdir-p' for conditional
deletion of publication directory.
(org-test-publish-touch): New function to change modification time of
file.
(test-org-publish/publish-cache): New function with tests.
* testing/examples/pub-cache/source.org:
* testing/examples/pub-cache/config.org: New example files.
* etc/ORG-NEWS (Texinfo exporter now supports links in headings):
Announce the new feature.
* lisp/ox-texinfo.el: (org-texinfo--format-entries,
org-texinfo--get-node, org-texinfo--sanitize-title-reference,
org-texinfo--sanitize-title): A 2-step change: (1) Rename
`--sanitize-title' to `--sanitize-title-reference' and (2) create a
new `--sanitize-title' sanitation function. The new function is less
strict in that does not remove links, which should be allowed in
sectioning commands, such as `@unnumbered'. The old function remains
more strict, which is useful for generating `@node' names, for
example.
* testing/lisp/test-ox-texinfo.el:
(test-ox-texinfo/headings-with-links): Test the new functionality to
avoid regressions in the future.
* lisp/ox-texinfo.el (org-texinfo--@ref): Fix an incorrect assumption
that Texinfo uses node names for automatic link text. It does not.
Instead, it uses the corresponding section title. For example, if a
node is named `a' its section is named `A', the Org link to the node
`a' written as `[[...][xxx]]' ends up being rendered as "A", which
means the link description the Org user provided is ignored.
* doc/org-manual.org (Global and local cycling):
(Initial visibility): Replace `org-set-startup-visibility' with
`org-cycle-set-startup-visibility' as per "This function is obsolete
since 9.6; use ‘org-cycle-set-startup-visibility’ instead."
* lisp/org-colview.el (org-columns-compile-format): Refactor
string-based regexp to `rx' form. Fix regexp: When an empty
parentheses () is in the column format string then the regexp
can't capture the operator which is in curly brackets {}.
(org-columns-new): prevent adding empty parantheses '()' to 'column
format string' when 'column title' is empty.
* testing/lisp.test-org-colview.el (test-org-colview/compile-format):
New test case: check if operator will be captured when there is
empty parantheses '()' in 'column format string'.
Reported-by: Sławomir Grochowski <slawomir.grochowski@gmail.com>
Link: https://list.orgmode.org/orgmode/877ccczt83.fsf@gmail.com/
* lisp/org.el (org-toggle-inline-images-command): New command to
toggle images. Unlike the old `org-toggle-inline-image', it is more
flexible and default to toggling images at point/current entry.
* lisp/org-keys.el (org-mode-map): Bind C-c C-x C-v to the new
command.
* doc/org-manual.org (Images): Update the manual describing the new
command behaviour.
* etc/ORG-NEWS (=C-c C-x C-v= command toggling inline image display
has been reworked): Document the breaking change.
Link: https://list.orgmode.org/6461a84b.a70a0220.b6d36.5d00@mx.google.com/
* lisp/ox-publish.el (org-publish-update-timestamp): Store current
time in publish cache, instead of modification time of source file.
(org-publish-cache-file-needs-publishing): Return t, if source or an
included file was modified more recently.
Previously, a source file including a newer file was published again
and again. Now, publishing only happens if either source or an
included file changed since the last publishing.
* lisp/org.el (org-display-inline-image--width): Ignore non-pixel
specifications like :width 4in (previously treated as 4 pixels). Do
not ignore fractional percent values like :width 30.5%.
* lisp/ob-core.el (org-babel-demarcate-block): Keep case in
#+BEGIN_SRC and #+END_SRC keywords splitting src block.
* testing/lisp/test-ob.el (test-ob/keep-case): New test.
Reported-by: Rudolf Adamkovič <rudolf@adamkovic.org>
Link: https://orgmode.org/list/m2y152f8s3.fsf@adamkovic.org
* lisp/org-compat.el (org-mode-flyspell-verify): Remove LOGBOOK drawer
filter. Not checking inside LOGBOOK drawers has no clear purpose. I
also see no explanation in the git logs and mailing list archives, all
the way back to refactoring this function to use org-element API.
* etc/ORG-NEWS (Org mode no longer prevents =flyspell= from
spell-checking inside =LOGBOOK= drawers): Announce the breaking
change.
Reported-by: Morgan Willcock <morgan@ice9.digital>
Link: https://orgmode.org/list/87jzgpvdbk.fsf@ice9.digital
* lisp/org-persist.el (org-persist-write:index): Disable
pretty-printing when writing index. This is simply too slow once
index reaches ~1000 items. `pp' is slow. See bug#58687.
(org-persist--write-elisp-file): Add FIXME explaining that using PP
argument is probably not a good idea.
Reported-by: Visuwesh <visuweshm@gmail.com>
Link: https://orgmode.org/list/87r0axvu7y.fsf@gmail.com
* lisp/ob-shell.el (org-babel-sh-prompt): Use the old prompt for Emacs
27. CI fails on Debian + Emacs 27 when running tests, even though
Emacs 27 tests do pass on my system. Play it safe and fall back to
the old prompt for Emacs 27, to avoid possible breakage. Emacs 27
support is going to be dropped soon anyway, after Emacs 30 release.
* lisp/ob-R.el (org-babel-R-initiate-session):
* lisp/ob-julia.el (org-babel-julia-initiate-session): Force using
`default-directory' as working directory for ESS sessions.
* etc/ORG-NEWS (~ob-R~ and ~ob-julia~ no longer use ESS settings for
working directory): Announce the breaking change.
Link: https://orgmode.org/list/871q4izpr4.fsf@localhost
* lisp/org.el (org-cancel-repeaters): Rename from
`org-cancel-repeater' (leaving old name as an alias). Cancel all the
repeaters instead of just the repeater in the first active timestamp.
(org-todo): Use the new function name.
* etc/ORG-NEWS (~org-cancel-repeater~ now cancels all the repeaters
under inside entry): Announce the breaking change.
The old version failed to cancel repeaters except the one in the very
first active timestamp. If the first timestsamp did not have a
repeaters, all other repeaters were ignored.
Since the original use case of this is -1 prefix argument in
`org-todo' with the intention to prevent switching back to TODO when
marking done, cancelling all the repeaters makes more sense.
Reported-by: Peter Solodov <solodov@gmail.com>
Link: https://orgmode.org/list/87r0b4duzo.fsf@localhost
* lisp/org-persist.el (org-persist--find-index):
(org-persist--add-to-index):
(org-persist--remove-from-index): Do not assume that every container
is a list of other containers.
* lisp/ob-shell.el (org-babel-sh-prompt): Change the value of unique
prompt from long prompt string to a much shorter, but still unlikely
to appear in output, single-char prompt.
Cuneiform because Sumerian, Babylon, Tower ob Babel :)
* lisp/ob-shell.el (org-babel-sh-initiate-session): Set
`comint-prompt-regexp' early, _before_ evaluating prompt change. This
way, we make sure that comint is not stuck trying to search for the
old prompt if the new prompt no longer matches `comint-prompt-regexp'.
* lisp/ob-shell.el (org-babel-sh--prompt-initialized): New variable
flag that indicates whether ob-shell changed the prompt in current
comint buffer.
(org-babel-sh-initiate-session): Set unique prompt in existing
sessions if it is not yet done.
Link: https://orgmode.org/list/87o782gx7o.fsf@localhost
* lisp/ob-comint.el (org-babel-comint-prompt-regexp-fallback): Rename
to more accurate name. Leave the old name as an alias.
(org-babel-comint--set-fallback-prompt): Use the new name.
(org-babel-comint-with-output):
(org-babel-comint-wait-for-output):
* lisp/ob-clojure.el (ob-clojure-eval-with-inf-clojure):
* lisp/ob-haskell.el (org-babel-interpret-haskell):
* lisp/ob-ruby.el (org-babel-ruby-initiate-session):
* lisp/ob-shell.el (org-babel-sh-initiate-session):