Commit Graph

26986 Commits

Author SHA1 Message Date
Ihor Radchenko 73485aa063
org-element-parse-secondary-string: Fix Emacs 27 compatibility
* lisp/org-compat.el (org-get-buffer-create): Add compatibility
function.
* lisp/org-element.el (org-element-parse-secondary-string):
* lisp/org-id.el (org-id-find-id-in-file): Use it.

Reported-by: Yasushi SHOJI <yasushi.shoji@gmail.com>
Link: https://orgmode.org/list/CAELBRWJUQ=kupUbYev_W9dqEmYKnN3400t+W4_Q69EHNp-KMgA@mail.gmail.com
2023-10-16 11:24:29 +03:00
Ihor Radchenko fa7542d74c
* lisp/org-agenda.el (org-agenda-get-progress): Fix clock log entries
Do not alter match data when calling `org-get-category'.  The
subsequent code assumes that match data is not altered.
2023-10-16 10:34:14 +03:00
bzg 0becd1d6f7 Merge branch 'bugfix' 2023-10-16 07:43:04 +02:00
bzg 1ee85e957e doc/org-manual.org: Fix outdated link
* doc/org-manual.org (Packages that Org cooperates with): Fix
outdated link.

Suggested-by: https://list.orgmode.org/orgmode/87y1hd86n0.fsf@localhost
2023-10-16 07:41:42 +02:00
Jack Kamm 1eb5987589 ob-python: Check for end of output in org-babel-python-send-string
This is an attempt to mitigate occasional leaky prompts in CI. My
current hypothesis is that this could happen if the comint-output ends
between `org-babel-python-eoe-indicator' and the new prompt. Then the
new prompt could be injected into the output of the next unit test. To
avoid this, check we are at an ending prompt before exiting
`org-babel-python-send-string'.

https://list.orgmode.org/873506j7ky.fsf@localhost/

* lisp/ob-python.el (org-babel-python-send-string): Add check for
`python-shell-comint-end-of-output-p' to stop while loop accepting
process output.
2023-10-15 16:25:14 -07:00
Ihor Radchenko 061988c024
* lisp/org-tempo.el: Fix checkdoc warnings
(org-tempo-add-block):
(org-tempo-add-keyword): Fix arglist format in the docstring.
2023-10-15 11:53:05 +03:00
Ihor Radchenko 1a1f45d236
Merge branch 'bugfix' 2023-10-15 11:32:55 +03:00
Elias Kueny c42cdcda47
lisp/ob-shell.el: Adapt the `:var' header parameter to fish
* ob-shell.el (org-babel-variable-assignments:shell): allow the `:var'
keyword on fish code blocks to work with fish variables.

The fish shell uses the syntax `set variable value' instead of
`value=value' to set a shell variable.  This caused org-babel to
return an syntax error when attempting to execute a fish code block
with a `:var' parameter.  This change adds a helper function to use
the correct format.

TINYCHANGE
2023-10-15 11:27:58 +03:00
Ihor Radchenko 7d90507420
Merge branch 'bugfix' 2023-10-15 11:12:34 +03:00
Ihor Radchenko 51937d4b13
* lisp/ox.el (org-export-to-file): Ensure final newline
The newline were added by default in the past, before d7a55bbd5.
Continue to add it to avoid changed behavior.

Reported-by: YE <yet@ego.team>
Link: https://orgmode.org/list/87wmvwklnq.fsf@localhost
2023-10-15 11:10:58 +03:00
Ihor Radchenko 9fcbd19b3b
* lisp/org-protocol.el (org--protocol-detect-protocol-server): Fix docstring 2023-10-14 12:09:34 +03:00
Ihor Radchenko ec23993301
lisp/ox.el: Ignore case when matching headings and targets
* lisp/ox.el (org-export-search-cells):
(org-export-string-to-search-cell): Ignore case in headline titles and
radio targets.
* testing/lisp/test-ox.el (test-org-export/fuzzy-link): Add new test.

ox.el implements an independent link resolution mechanism that is not
fully consistent with ol.el.  In particular, radio links, when
resolved via `org-export-resolve-link' (unlike
`org-export-resolve-radio-link'), were previously case-sensitive, in
contrast with ol.el, which is case-insensitive.  Similarly, headline
matching by fuzzy links had inconsistency between `org-link-search'
and what ox.el does.

Link: https://orgmode.org/list/m2cyxl3qd0.fsf@me.com
2023-10-14 11:45:57 +03:00
Ihor Radchenko ed42dc34a8
* lisp/ol.el (org-link-search): Ignore case when matching headings
As per the docstring.
2023-10-14 11:44:10 +03:00
Ihor Radchenko abf5156096
* lisp/org-attach.el (org-attach-attach): Do not end error message with period 2023-10-13 15:34:39 +03:00
Ihor Radchenko 0d214ef008
org-element--current-element: Fix edge case with affiliated keywords
* lisp/org-element.el (org-element--collect-affiliated-keywords): Fix
edge case when a keyword matching affiliated keyword is preceding an
element that is not allowed to have such.  We need to handle this case
specially here rather than in `org-element--current-element' to avoid
the default paragraph fallback.
(org-element--current-element): Add a comment describing the pitfall.
*
testing/lisp/test-org-element.el (test-org-element/affiliated-keywords-parser):
Add more tests.

Reported-by: Tom Alexander <tom@fizz.buzz>
Link: https://orgmode.org/list/e2be976d-1bcf-4136-9968-33212dcd1f83@app.fastmail.com
2023-10-13 15:14:57 +03:00
Ihor Radchenko f3de4c3e04
org-babel-tangle-collect-blocks: Ignore src blocks without language
* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): Skip src blocks
that do not specify lang rather than erring.

Reported-by: Andrea <andrea-dev@hotmail.com>
Link: https://orgmode.org/list/AS8P193MB241369D9F0701F57E293429288D3A@AS8P193MB2413.EURP193.PROD.OUTLOOK.COM
2023-10-12 17:34:54 +03:00
Ihor Radchenko a2dd30d3a1
* lisp/ol-doi.el (org-link-doi-open): Document all the function arguments 2023-10-12 14:44:02 +03:00
Ihor Radchenko 0e3d0e3d19
org-element--collect-affiliated-keywords: Fix keywords before comment
* lisp/org-element.el (org-element--collect-affiliated-keywords):
Disallow affiliated keywords before a comment.
*
testing/lisp/test-org-element.el (test-org-element/affiliated-keywords-parser):
Add new test.
*
testing/lisp/test-org-element.el (test-org-element/cache-affiliated):
Fix test.

Reported-by: Tom Alexander <tom@fizz.buzz>
Link: https://orgmode.org/list/87c20267-d12e-4641-a1eb-3a7ac8181069@app.fastmail.com
2023-10-12 14:24:35 +03:00
Ihor Radchenko 07ae6ba58d
* lisp/org-element.el (org-element--current-element): Add a comment 2023-10-12 14:24:24 +03:00
Ihor Radchenko 9ba1fc778a
* lisp/org-element.el (org-element--cache-sync): Do not reset cache warning
Do not reset `org-element--cache-change-warning' at the end of
synchronization.  It is an error to do so if synchronization is
called while submitting a new request.

Add the comment in the code.

The test logs used to narrow down the error are not public.

Reported-by: Paul Stansell <paulstansell@gmail.com>
Link: https://list.orgmode.org/orgmode/CAMJKaZz12j-qm5tzjZyg1sLfhN-Z1Cqzy65sbARxty_xHeMfmg@mail.gmail.com/
2023-10-12 14:01:52 +03:00
Ihor Radchenko fba3fd56c4
org-element-org-data-parser: Allow leading blank lines before property drawer
* lisp/org-element.el (org-element--get-global-node-properties):
(org-element-org-data-parser):
(org-element--current-element): Allow blank lines at the beginning of
Org document.  Blank lines where allowed in the past (:contents-begin
started after the blank lines), but it was previously not possible to
have top-level property drawer in an Org document starting from blank
lines.  Now, it is possible.

* testing/lisp/test-org-element.el (test-org-element/org-data-parser):
Add new tests.

Reported-by: Tom Alexander <tom@fizz.buzz>
Link: https://orgmode.org/list/0ec8c4ae-4f5b-4e37-8c5c-f92ef497a461@app.fastmail.com
2023-10-12 13:34:08 +03:00
Ihor Radchenko a52c74e962
org-element-org-data-parser: Fix deferred property parsing
* lisp/org-element.el (org-element--get-node-properties): Pass parent
element as a new optional argument to derive relative offset from.
Calculate deferred property values according to the :begin of the
parent element.
(org-element--headline-deferred):
(org-element--get-global-node-properties): Explicitly pass the parent
headline/org-data to calculate deferred offsets correctly.

Reported-by: Tom Alexander <tom@fizz.buzz>
Link: https://orgmode.org/list/0ec8c4ae-4f5b-4e37-8c5c-f92ef497a461@app.fastmail.com
2023-10-12 13:31:49 +03:00
Ihor Radchenko f660afc506
fixup! org-element-parse-secondary-string: Prevent altering current buffer cache
Get rid of `org-export..' function call.
2023-10-12 11:16:59 +03:00
Ihor Radchenko e1569918cc
org-agenda: Handle inactive ranges when displaying inactive timestamps
* lisp/org-agenda.el (org-agenda-get-timestamps): Skip inactive
ranges.  Previously, inactive ranges were treated as two individual
timestamps.
(org-agenda-get-blocks): Handle inactive ranges when
`org-agenda-include-inactive-timestamps' is non-nil.  Append
`org-agenda-inactive-leader' when formatting inactive ranges.

Reported-by: Cletip Cletip <clement020302@gmail.com>
Link: https://orgmode.org/list/87jzru8mjt.fsf@localhost
2023-10-11 12:02:18 +03:00
Ihor Radchenko f32f5982a7
* lisp/ol-info.el (org-info-map-html-url): Prioritize custom URLs
When deriving info page URL, prioritizeable
`org-info-other-documents'.
2023-10-10 19:27:09 +03:00
Ihor Radchenko 7e7ce81136
* lisp/ol-info.el (org-info-other-documents): Convert to `defcustom'
* etc/ORG-NEWS (~org-info-other-documents~ is now a custom option):
Announce the change.

Link: https://orgmode.org/list/871qe44cec.fsf@breatheoutbreathe.in
2023-10-10 19:23:37 +03:00
Ihor Radchenko ce47fdf382
Merge branch 'bugfix' 2023-10-10 19:09:00 +03:00
Ihor Radchenko 902975ca44
* lisp/ol-info.el (org-info-emacs-documents): Update the manual list
Update the manuals from
https://www.gnu.org/software/emacs/manual/html_mono/.

Reported-by: Joseph Turner <joseph@ushin.org>
Link: https://orgmode.org/list/871qe44cec.fsf@breatheoutbreathe.in
2023-10-10 19:07:48 +03:00
Ihor Radchenko ad7406fc14
Merge branch 'bugfix' 2023-10-10 18:45:33 +03:00
Ihor Radchenko 558db89e40
Backport 7cc208af9 fix from main 2023-10-10 18:42:11 +03:00
Ihor Radchenko c952ff10fb
* lisp/ob-ruby.el: Document all the function arguments
(org-babel-execute:ruby):
(org-babel-variable-assignments:ruby):
(org-babel-ruby-initiate-session):
2023-10-10 15:30:35 +03:00
Ihor Radchenko fe23bec607
* lisp/org-element.el (org-element-subscript-parser): Fix edge case
Fix when both subscript and underline object match in
`org-element--object-lex'.
*
testing/lisp/test-org-element.el (test-org-element/underline-parser):
Add new test.

Reported-by: Tom Alexander <tom@fizz.buzz>
Link: https://orgmode.org/list/dad964f5-c764-4dd5-9829-ca38e3fbeb0d@app.fastmail.com
2023-10-10 15:05:38 +03:00
Ihor Radchenko ad07b2982f
fixup! org-element-parse-secondary-string: Prevent altering current buffer cache 2023-10-10 15:05:25 +03:00
Ihor Radchenko 37d6bde27f
org-element-parse-secondary-string: Prevent altering current buffer cache
* lisp/org-element.el (org-element-ignored-local-variables):
* lisp/ox.el (org-export-ignored-local-variables):
* lisp/org-compat.el (org-export-ignored-local-variables): Rename and
move to org-element.el.  Declare the old name obsolete.
* lisp/org-element.el (org-element--generate-copy-script):
* lisp/ox.el (org-export--generate-copy-script): Rename and move to
org-element.el.
* lisp/org-element.el (org-element-copy-buffer):
(org-element-with-buffer-copy): New function and macro like
`org-export-copy-buffer' and `org-element-with-buffer-copy', but not
processing #+bind keywords.
(org-element-parse-secondary-string): Use
`org-element-with-buffer-copy' that takes care about not copying
element cache object by reference and thus not modifying that cache if
the buffer happens to be modified.
* lisp/ox.el (org-export--set-variables): New helper function that
sets an alist of variable/value pairs in current buffer.
(org-export-copy-buffer): Make use of `org-element-copy-buffer'.
(org-export-with-buffer-copy): Make use of
`org-element-with-buffer-copy'.

Reported-by: Edgar Lux <edgarlux@mailfence.com>
2023-10-10 13:53:07 +03:00
Ihor Radchenko ac108a3ac1
* lisp/ol-docview.el (org-docview-export): Update docstring and arglist
Document all the arguments. Add fourth argument as require by the
latest :export link property spec.  Rename FORMAT to BACKEND for more
clarity.
2023-10-09 16:33:28 +03:00
Ihor Radchenko 681f3fc8f9
* lisp/ol-docview.el (org-docview-open): Add docstring 2023-10-09 16:33:18 +03:00
Ihor Radchenko 54b9c845a7
* lisp/org-crypt.el: Fix outdated declare forms
(org-end-of-subtree):
(org-make-tags-matcher): Update the arglists.
2023-10-08 13:01:12 +03:00
Ihor Radchenko fe19ebe4af
* lisp/org-archive.el: Fix flycheck warnings
(org-add-archive-files):
(org-toggle-archive-tag): Document all the function arguments.
(org-timestamp-to-now): Add missing declare.
2023-10-08 12:58:29 +03:00
Ihor Radchenko e54c7e604b
Update version number for the 9.6.10 release 2023-10-08 10:54:43 +03:00
Ihor Radchenko 1003790d1d
* lisp/org-pcomplete.el (org-element-property): Fix malformed declare 2023-10-07 16:25:08 +03:00
Ihor Radchenko 1225f62576
org-babel-python-read-string: Upcase function argument in the docstring
* lisp/ob-python.el (org-babel-python-read-string):
2023-10-07 13:34:42 +03:00
Ihor Radchenko 26f1cb77a9
org-ascii-item: Fix for alphabetical bullets
* lisp/ox-ascii.el (org-ascii-item): Fix setting [@X] counter for
alphabetical lists.
* testing/lisp/test-ox-ascii.el:
(test-ox-ascii/list):  Add new test.
* testing/lisp/test-ox-latex.el (org-test-with-exported-text):
* testing/org-test.el (org-test-with-exported-text): Move macro to be
available across multiple test files.

Reported-by: Tom Alexander <tom@fizz.buzz>
Link: https://orgmode.org/list/36a62fbf-6484-456f-9537-a7aa40530068@app.fastmail.com
2023-10-07 13:22:09 +03:00
Ihor Radchenko 69c830f361
* lisp/ob-processing.el: Document all the function arguments
(org-babel-execute:processing):
(org-babel-variable-assignments:processing): Fix the docstrings.
2023-10-06 20:04:30 +03:00
Ihor Radchenko 4edfb69f86
* lisp/org-element.el (org-element--cache-for-removal): Add more logging
Log cache warning value when updating robust cached elements.
2023-10-06 14:27:22 +03:00
Ihor Radchenko e6690c5b79
* lisp/ob-screen.el (org-babel-execute:screen): Document the function args 2023-10-05 15:04:14 +03:00
Ihor Radchenko 88ff6c2fbc
org-reset-checkbox-state-subtree: Do not reset outside the subtree
* lisp/org-list.el (org-update-checkbox-count): Allow ALL argument to
have a value `narrow', meaning "update in accessible portion of the
buffer".  Update the docstring accordingly.
(org-update-checkbox-count-maybe): Document the special value of ALL
argument passed to `org-update-checkbox-count'.
(org-reset-checkbox-state-subtree): Update checkbox count within
subtree only.

Reported-by: J. G. <jerzor@pacbell.net>
Link: https://orgmode.org/list/1700336757.1605468.1695739462846@mail.yahoo.com
2023-10-05 12:34:42 +03:00
Ihor Radchenko 6d85f851b3
* lisp/ob-shell.el (org-babel-execute:shell): Document the function args 2023-10-04 12:28:10 +03:00
Ihor Radchenko 460c1a3524
Merge branch 'bugfix' 2023-10-04 11:42:16 +03:00
Ihor Radchenko bd3705c053
org-columns-remove-overlays: Fix when no columnview yet in buffer
* lisp/org-colview.el (org-columns-remove-overlays): Do not assume
that `org-columns-begin-marker' is a marker object.

Reported-by: John Borwick <borwick@uw.edu>
Link: https://orgmode.org/list/m2jzs47t36.fsf@uw.edu
2023-10-04 11:41:41 +03:00
Leo Butler 2ba45fcb78
* lisp/ob-maxima.el: enable use of `batch' loader and `draw'
* (org-babel-header-args:maxima): Document the two new header
arguments (batch and graphics-pkg) that are specific to ob-maxima.
* (org-babel-maxima--command-arguments-default): A new variable
storing the default command-line argument(s).  This value was
hard-coded in `org-babel-maxima:execute'.
* (org-babel-maxima--graphic-package-options): A new variable that
stores an alist of Maxima graphics packages and the Maxima code to set
up that package.
* (org-babel-maxima--default-epilogue): A new variable that stores an
alist of the clean-up code that is run at end of a `graphical-output'
or `non-graphical-output' source block.
* (org-babel-maxima--output-filter-regexps): A new variable that
stores a list of regexps to identify "bad" output lines to be removed
from Maxima's output.  Source-code comments document each regexp's
purpose.  Two additional regexps have been added: one filters
un-wanted output from `batch' and the other removes empty input lines
that `batch'-ed output may spuriously produce (actual empty input
lines are syntax errors, see the new tests below).
* (org-babel-maxima--output-filter): A new function that takes a
single line of Maxima output.  It returns nil if the line has zero
length or matches a regexp in
`org-babel-maxima--output-filter-regexps'; otherwise, it returns the
line.  This function and regexp replace the hard-coded filter in
`org-babel-execute:maxima'.
* (org-babel-maxima-expand): Prepare the source block for execution,
depending on whether it is producing graphical output or not.  In case
of graphical output, use the `graphics-pkg' header to set the graphics
package and use `org-babel-maxima--graphic-package-options' to set-up
the package.  Grovel the graphics terminal from the output filename.
* (org-babel-execute:maxima): Use the :batch header argument and
`org-babel-maxima--command-arguments-default' to execute the source
block.  Replace the existing, in-line output filter and its regexps
with `org-babel-maxima--output-filter' and
`org-babel-maxima--output-filter-regexps'.

* testing/examples/ob-maxima-test.org: Add test examples.

Include examples of the batch-related tests from
testing/lisp/test-ob-maxima.el.  Provide an example of the
`:graphics-pkg' header argument with the `draw' package.

* testing/lisp/test-ob-maxima.el: Introduce six new, batch-related
test functions.  Each test exercises the :batch header argument.  The
response to unusual inputs is tested (empty strings, strings with just
whitespace, input with the `:lisp' reader, and two syntax-related
errors).

link: https://list.orgmode.org/87cyz1ivzw.fsf@t14.reltub.ca/
2023-10-04 11:27:46 +03:00