Commit Graph

25778 Commits

Author SHA1 Message Date
TEC ae2140b1e6
org-manual: Fix typo in beamer example
* doc/org-manual.org (Beamer specific syntax): Fix closing keyword of
the beamer export example.
2022-09-22 14:48:37 +08:00
Ihor Radchenko 6a5f67567e
fixup! org-agenda-get-sexps: Improve performance 2022-09-22 12:33:59 +08:00
Ihor Radchenko d4fde298b9
org-agenda-get-sexps: Improve performance
* lisp/org-agenda.el (org-agenda-get-sexps): Remove trailing
whitespaces in SEXP-ENTRY via buffer movements.  It is faster than
re-creating string objects in `org-trim'.
2022-09-22 10:57:20 +08:00
Ihor Radchenko 4657cea495
org-agenda-get-timestamps: Improve performance
* lisp/org-agenda.el (org-agenda-get-timestamps): Pass element at
point to `org-agenda-skip'.
2022-09-22 10:56:24 +08:00
Ihor Radchenko 3e3588dc75
org-agenda-skip: Improve performance
* lisp/org-agenda.el: Remove unnecessary variable assignment.  Prefer
checking ELEMENT type over regexp match when checking if we are inside
comment.  Postpone let-binding until it is strictly necessary.
2022-09-22 10:55:05 +08:00
stardiviner 95df82c5fc
org.el: Support subtree-level org-image-actual-width overriding
* lisp/org.el (org-display-inline-image--width): Support new property
"ORG-IMAGE-ACTUAL-WIDTH" overriding global variable
`org-image-actual-width'.
2022-09-21 15:45:30 +08:00
Rudolf Adamkovič c940b460c7
ox-texinfo: Include LaTeX in Texinfo exports
* lisp/ox-texinfo.el (org-texinfo-with-latex): New customize.
* lisp/ox-texinfo.el (org-texinfo-latex-environment): New function.
* lisp/ox-texinfo.el (org-texinfo-latex-fragment): New function.
* lisp/ox-texinfo.el (org-texinfo-supports-math-p): New function.
* lisp/ox-texinfo.el (org-texinfo-supports-math--cache): New variable.
* lisp/ox-texinfo.el (texinfo): Set latex-environment.
* lisp/ox-texinfo.el (texinfo): Set latex-fragment.
* testing/lisp/test-ox-texinfo.el: Add basic tests.
2022-09-21 15:29:50 +08:00
Ihor Radchenko 4075662c29
org-diary-sexp-entry: Cache results
* lisp/org.el (org--diary-sexp-entry-cache): New variable holding
cached return values of `org-diary-sexp-entry'.
(org-diary-sexp-entry): Use `org--diary-sexp-entry-cache'.
2022-09-21 12:42:34 +08:00
Ihor Radchenko c35a856048
org-in-archived-heading-p: Improve performance
* lisp/org.el (org-in-archived-heading-p): Use explicit `while' loop
instead of `org-element-lineage'.
2022-09-21 12:26:53 +08:00
Ihor Radchenko e9bd219e35
org-element--cache-verify-element: Improve performance
* lisp/org-element.el: Remove unconditional checks when verification
is disabled.  Do not call costly `derived-mode-p' and unnecessary
`org-element-property'.
2022-09-21 12:26:49 +08:00
Ihor Radchenko 7e9d927298
org-element--cache-active-p: Improve performance
* lisp/org-element.el (org-element--cache-active-p): Remove expensive
`derived-mode-p' call.  Reshuffle the conditions to avoid costly
`memq' call as much as possible.  Inline the function.
2022-09-21 12:26:43 +08:00
Ihor Radchenko f1a197401c
org-fold-core-regions: Avoid multiple evaluation of argument
* lisp/org-fold-core.el (org-fold-core-regions): Evaluate RELATIVE
once.
2022-09-20 20:01:34 +08:00
Ihor Radchenko 0057cc21e1
Improve agenda performance
* lisp/org-agenda.el (org-agenda-skip): Make use of ELEMENT argument
when calling `org-in-src-block-p'.
(org-agenda-get-sexps): Pass actual element at point to `org-agenda-skip'.
* lisp/org.el (org-end-of-subtree): Avoid unnecessary call to
`org-back-to-heading-or-point-min' when ELEMENT is provided.
2022-09-20 19:19:51 +08:00
Ihor Radchenko a526ea6a3e
Fix compiler warnings
* lisp/oc-basic.el (org-cite-basic--set-keymap): Do not use
`buffer-substring' generalized variable.  It is obsolete in Emacs 29.
Explicitly call `delete-region' + `insert'.
* lisp/org-agenda.el (org-element-lineage): Declare function.
* lisp/org.el (org--align-node-property): Use `delete-region' instead
of `buffer-substring' generalized variable.
2022-09-20 11:26:50 +08:00
TEC be2246a550
ox-latex: Change lost in conflict resolution
* lisp/ox-latex.el (org-latex-generate-engraved-preamble): Amends
795783d644 where the number of arguments
`org-latex-generate-engraved-preamble' takes was reduced to 1, but the
change to the defun line was lost during conflict resolution.
2022-09-18 21:46:04 +08:00
TEC 4d8d7d6cb4
ox-latex: Fix string/symbol engraved-preamble val
* lisp/ox-latex.el (org-latex-generate-engraved-preamble): The type of
engraved-theme could be a string or a symbol, depending on whether the
default value was used.  This can lead to type issue bugs.  It is better
to have the same type, so let's intern as needed to consistantly have
symbols.
2022-09-17 18:29:57 +08:00
TEC 795783d644
ox-latex: Remove unused argument
* lisp/ox-latex.el (org-latex-template,
org-latex-generate-engraved-preamble): The second argument of
`org-latex-generate-engraved-preamble' is only ever t, so there's not
much point in having it.

* lisp/ox-beamer.el (org-beamer-template): Update to not call
`org-latex-generate-engraved-preamble' with the second argument.
2022-09-17 18:29:55 +08:00
TEC 1061db94ac
org: Tweak styling of url in resource prompt
* lisp/org.el (org--confirm-resource-safe): Style domain with a link,
and url with an underline.
2022-09-17 18:26:00 +08:00
TEC 1ae801e9c8
org: Add "mark domain as safe" convenience action
* lisp/org.el (org--confirm-resource-safe): Pick out domains from URLs,
and provide an option of marking that domain as safe.
2022-09-17 18:26:00 +08:00
TEC 62a52b56bc
Update my maintainer email
* lisp/ox-html.el: Update my email.

* lisp/org-plot.el: Update my email.
2022-09-17 18:26:00 +08:00
Ihor Radchenko cb8bf4a0d0
org-babel-expand-references: Fix :noweb-ref expansion
* lisp/ob-core.el (org-babel-expand-noweb-references): Do not rely on
reference cache being populated as a condition that all the references
in buffer have been processed.  Set this information explicitly.
* testing/lisp/test-ob.el (test-ob/noweb-expansion): Add new test.
2022-09-17 15:52:24 +08:00
Ihor Radchenko 8cc821bda2
org-agenda-get-sexps: Query headline at point once in skip function
* lisp/org-agenda.el (org-agenda-get-sexps): Provide headline at point
for `org-agenda-skip'.
2022-09-16 12:32:34 +08:00
Ihor Radchenko 1de67d0b41
org-element--cache-sync: Quit early when no cache requests are queued
* lisp/org-element.el (org-element--cache-sync): Check
`org-element--cache-sync-requests' value early and quit if there are
none.  This reduces the number of conditions checked when the request
queue is empty.
2022-09-16 12:31:32 +08:00
Max Nikulin 6d8d7fba61
ol.el: Mention that `org-insert-link' may edit existing link
* lisp/ol.el (org-insert-link): Add completion by description and edit
link features to the docstring.
2022-09-16 11:49:06 +08:00
Max Nikulin 69b36beac7
ol.el: Always prompt for description in `org-insert-link'
* lisp/ol.el (org-insert-link): Do not bypass code trying to generated
description and prompt user when link path and description are
identical.  Make behavior of description prompt more consistent.

Remove confusing `auto-desc' local variable.  Originally the variable
was added with implementation of completion of stored link target by the
description in the commit 1e34c5d34 Bastien Guerry, "org.el: Fontify
links to current buffer when inserting a link",
2012-08-03 14:08:20 +0200.  The feature was broken soon by the commit
7f096ad37 Tony Day, "org-insert-link: Use ido when inserting links",
2012-10-12 14:39:53 +1100.  Last decade users were not asked to edit
description in the case of the same link target and description
(a remained side effect of 1e34c5d34).  Recent commit 0432f4fe6 Max
Nikulin, "ol.el: Restore complete by description for insert link",
2022-09-10 17:23:13 +0700 restored completion by description.
Due to the commit 4fc2c8dd8 Ihor Radchenko, "org-store-link: Default to
empty description for target/custom-id links", 2022-08-10 13:25:26 +0800
description identical to link path became a more rare case.

An alternative would be fixing condition to allow users to edit
description when it is the same as the path, but use stored description
without additional interaction when the link is chosen by description
completion.  Despite it was likely the original intention, always asking
the user to confirm or edit description may be more consistent behavior.
2022-09-16 11:49:05 +08:00
Ihor Radchenko e3348ccc03
org-batch-test-init: Remove dead code
* testing/org-batch-test-init.el (lambda): Remove the code that has
never been working.  One could still rewrite the code using
`autoloadp', but it would break things terribly and should not be
needed as autoload does not need to be updated after changing the
`load-path'.  See
https://orgmode.org/list/jwvedwczhbv.fsf-monnier+emacs@gnu.org
2022-09-16 11:33:26 +08:00
Ihor Radchenko 6074a22bcb
testing: Address FIXMEs identified in 1a5e3f931
* testing/lisp/test-ob.el (test-ob/blocks-with-spaces):
(test-ob/specific-colnames):
* testing/lisp/test-oc.el (test-org-cite/export-capability):
* testing/lisp/test-ol.el (test-org-link/store-link):
* testing/lisp/test-org.el (test-org/set-regexps-and-options):
* testing/org-test.el (org-test-base-dir): Address typos and
non-existent variables.

(missing-test-dependency): Use `define-error'.
(org-test-load): Set `org-id-locations-file' when running tests.

* testing/lisp/test-ox.el (test-org-export/bind-keyword): Clarify
about variable symbol defined inside setupfile #+BIND statemtn.
2022-09-16 11:30:16 +08:00
Ihor Radchenko 17b51973bd
* lisp/org.el (org-log-beginning): Fix parens 2022-09-15 19:23:52 +08:00
Stefan Monnier 1a5e3f931c
testing: Make all files use `lexical-binding`
Mainly, add the corresponding cookie, but also add various `require`s
so that the compiler knows which vars should be trated as dynbound.
This does not fix all the warnings, but does try to eliminate
all those about "unused" variables.  For the variables truly unused,
the patch usually adds an underscore to their name to silence the warning.

Some of the fixes affect files which already used `lexical-binding`.
Not sure why the test worked before: maybe because the tests were run
without compiling them first (which could cause some of the
missing `require`d packages to be autoloaded before we got to the
problematic code, thus hiding the problem)?

I found some suspicious code, for which I added FIXMEs.

There are also a few changes to the main files.

* lisp/org-protocol.el (org-protocol-check-filename-for-protocol):
Don't call `server-edit` if it's not yet defined.  [ Needed to get
the tests to pass. ]

* lisp/ob-core.el (org-babel-temporary-directory)
(org-babel-temporary-stable-directory): Always define (and use nil
if we don't want to create a directory for it).  Simplify the code based
on the fact that (defvar V E) only evaluates E if V is not yet `boundp`.
(org-babel-temp-file, org-babel-temp-stable-file)
(org-babel-remove-temporary-directory)
(org-babel-remove-temporary-stable-directory): Adjust accordingly.

* lisp/org.el (org-log-beginning): Add FIXME.

* testing/org-test.el: Require `org` and `org-id`.
(org-id-locations-file): Don't `defconst` it.
(org-test-at-id, org-test-in-example-file, org-test-at-marker)
(org-test-with-temp-text, org-test-with-temp-text-in-file): Move edebug
specs into `declare` (and simplify them).
(org-test-with-tramp-remote-dir--worker): Declare dynbound tramp vars.
(org--compile-when): Fix quoting of `exp`.
(org-test-load): Tweak regexps.

* testing/org-batch-test-init.el: Tweak regexp, remove dead code and
add a FIXME about it.

* testing/lisp/test-ox.el: Require `ox` instead of
erroring out if it's not already loaded.  Also require `org-inlinetask`.
(org-test-with-parsed-data): Silence warnings when `info` is not used.
(test-org-export/bind-keyword): Add FIXME.

* testing/lisp/test-ox-publish.el: Require `org-test` and `ox-publish`.
(test-org-publish/resolve-external-link): Expose lambdas to
the compiler.  Remove unused var `ids`.
(test-org-publish/get-project-from-filename): Remove unused var `file`.

* testing/lisp/test-org.el: Require `org-macs`, `org`,
`org-inlinetask`, `org-refile`, and `org-agenda`.
(test-org/org-read-date): Declare `org-time-was-given` as dynbound.
(test-org/set-regexps-and-options): Add FIXME.

* testing/lisp/test-org-timer.el: Require `org-timer`.

* testing/lisp/test-org-table.el: Require `ox`.

* testing/lisp/test-org-protocol.el: Require `org-protocol` instead of
erroring out if it's not already loaded.  Also require `capture`, and
add missing `provide` statement.

* testing/lisp/test-org-pcomplete.el: Require `org`.

* testing/lisp/test-org-list.el: Require `org-list` and `org`.

* testing/lisp/test-org-lint.el: Require `org-footnote` and `org-lint`.

* testing/lisp/test-org-footnote.el: Require `org-footnote`.

* testing/lisp/test-org-element.el: Require `org-element` instead of
erroring out if it's not already loaded.  Also require `org` and
`org-inlinetask`.

* testing/lisp/test-org-duration.el: Require `org-duration`.

* testing/lisp/test-org-datetree.el: Require `org-datetree`.

* testing/lisp/test-org-colview.el: Require `org-colview`,
`org-duration`, and `org-inlinetask`.

* testing/lisp/test-org-clock.el: Require `org-duration` and `org-clock`.

* testing/lisp/test-org-archive.el: Require `org-archive`.

* testing/lisp/test-org-agenda.el
(test-org-agenda/bulk-custom-arg-func): Add FIXME.

* testing/lisp/test-ol.el: Require `ol` and `org-id`.
(test-org-link/store-link): Declare `org-store-link-props` and add FIXME.

* testing/lisp/test-oc.el (test-org-cite/export-capability): Add FIXME.

* testing/lisp/test-ob.el: Require `ob-core`, `org-src`, `ob-ref`,
and `org-table`.
(test-ob/eval-header-argument): Rename `foo` to `test-ob--foo` and
declare it as dynbound.
(test-ob/blocks-with-spaces, test-ob/specific-colnames): Add FIXME.
(test-ob/noweb-expansions-in-cache):
Declare `noweb-expansions-in-cache-var` as dynbound.

* testing/lisp/test-ob-tangle.el: Require `org` and `ob-tangle`.

* testing/lisp/test-ob-shell.el:
* testing/lisp/test-ob-python.el: Require `ob-core`.

* testing/lisp/test-ob-lob.el: Require `ob-lob`.
(temporary-value-for-test): Declare as dynbound.

* testing/lisp/test-ob-plantuml.el: Require `ob-plantuml` instead of
erroring out if it's not already loaded.
* testing/lisp/test-ob-lilypond.el: Require `ob-lilypond` instead of
erroring out if it's not already loaded.  Use `with-current-buffer`.

* testing/lisp/test-ob-julia.el: Require `ob-core`.

* testing/lisp/test-ob-java.el (org-babel-temporary-directory):
Remove dead code now that `org-babel-temporary-directory` is always bound.

* testing/lisp/test-ob-exp.el: Require `ob-exp`, `org-src`, and `org-test`.
(ob-exp/evaluate-all-executables-in-order):
Declare `*evaluation-collector*` as dynbound.

* testing/lisp/test-ob-emacs-lisp.el (ob-emacs-lisp/dynamic-lexical-edit)
(ob-emacs-lisp/dynamic-lexical-execute):
Rename dynbound var to `ob-emacs--x` and declare it as such.

* testing/lisp/test-ob-R.el: Require `ob-core`.
(ess-ask-for-ess-directory, ess-history-file): Declare vars.
2022-09-15 19:17:19 +08:00
Ihor Radchenko 2d38026581
Do not assert Org version in root Org libraries
* lisp/org-compat.el:
* lisp/org-macs.el: Do not check Org version.  These two libraries are
the base libraries required to generate the Org version.  The version
is not yet known when loading them; or, worse, built-in
`org-git-version' may be defined from built-in Org distribution.

Fixes https://orgmode.org/list/cdf0bc7d-3ed1-e1ce-84bb-239575a9c0b9@oracle.com
2022-09-15 12:28:57 +08:00
Ihor Radchenko 86c4635dba
test-org-link/store-link: Update tests for 4fc2c8dd8
* testing/lisp/test-ol.el (test-org-link/store-link): Do not expect
duplicating raw link in the file link description.
2022-09-13 22:11:05 +08:00
Ihor Radchenko f8d740f707
org-log-beginning: Fix edge case when we create logbook at eob
* lisp/org.el (org-log-beginning): Fix edge case when current headline
is the last headline in the buffer and does not have a final newline.

Fixes https://orgmode.org/list/m21qvi8er5.fsf@ntnu.no
2022-09-13 22:02:11 +08:00
Ihor Radchenko 8ec328e827
org-log-beginning: Fix for headline at eob with no trailing newline
* lisp/org.el (org-log-beginning): Fix edge case when there is a
headline at the end of buffer and that headline does not have a
trailing newline.

Fixes https://orgmode.org/list/m24k0ffjyd.fsf@ntnu.no
2022-09-13 21:50:18 +08:00
Ihor Radchenko 4fc2c8dd89
org-store-link: Default to empty description for target/custom-id links
* lisp/ol.el (org-store-link): Use empty description by default (ask user).
2022-09-13 21:05:37 +08:00
Max Nikulin c3d6672cfd
ol.el: Avoid links like "[[target][file:~/org/test.org::target]]"
* lisp/ol.el (org-store-link): Do not set description for "<<target>>"
links to avoid case when it is more detailed than link target.

While inserting to the same file, file part of the link target is
stripped, description is inserted without modification.  I do not think,
file path adds real value in comparison to "[[target]]" link to some
point in the same file.  A side effect is user prompt for description
since link and description are not identical any more.
2022-09-13 20:59:52 +08:00
Max Nikulin f7b8510283
ol.el: Skip #CUSTOM_ID when <<target>> link is stored
* list/ol.el (org-store-link): Suppress storing of
"file:file.org::#custom_id" link when point is <<target>>.

CUSTOM_ID link is stored as additional option, so new chunk of code
introduced by b4b35fc92 is not necessary. It prevented adding of
"file:file.org::*Heading" link and caused duplication of
"file:file.org::#custom_id" link.

Reported-by: Fr Ml <fr_ml@t-online.de>
Link: https://orgmode.org/list/aadb23f3-c0fe-19aa-be79-50e51d16c41a@t-online.de/
2022-09-13 20:59:51 +08:00
Max Nikulin 543a23a57d
Revert "lisp/ol.el: Fix bug when storing links"
This reverts commit b4b35fc92d.

Avoid duplication of CUSTOM_ID links.
2022-09-13 20:59:51 +08:00
Ihor Radchenko 2737128aa7
org-back-to-heading: Use cache
* lisp/org.el (org-back-to-heading): Use element cache when cache is
active.
2022-09-13 20:59:13 +08:00
Ihor Radchenko 4d8c6fbf7a
org-up-heading-safe: Consider inlinetasks
* lisp/org.el: Consider inlinetasks in the element-cache branch of the
code.

Fixes https://orgmode.org/list/CAP7OBx+G8nF1D7ci=QoduHXgqZRLkPZuDZeu8vEHEsAQ3qn3hw@mail.gmail.com
2022-09-13 20:57:31 +08:00
Max Nikulin 0432f4fe6b
ol.el: Restore complete by description for insert link
* lisp/ol.el (org-insert-link): Allow completion of link target by its
description.  Almost certainly the feature was removed unintentionally.

Link descriptions were added to completion options in
the commit 1e34c5d34 Bastien Guerry,  "org.el: Fontify links to current
buffer when inserting a link", 2012-08-03 14:08:20 +0200
in response to
https://list.orgmode.org/877gw6ocva.fsf@okhotsk19.lowtem.hokudai.ac.jp/T/#u
Yagnesh Raghava Yakkala, "#+LABEL and CUSTOM_ID with reftex",
Mon, 21 May 2012 04:45:29 +0900

List of description was removed from completion options
likely because `ido-completing-read' signals an error in the case of nil
variant (that is not uncommon for links with no description), see the
commit 7f096ad37 Tony Day, "org-insert-link: Use ido when inserting
links", 2012-10-12 14:39:53 +1100 and the discussion of the patch
- https://list.orgmode.org/04D0E787-A8A1-4246-8DD2-D607E38D61BA@gmail.com/T/#u
  tony day.  [PATCH] * org-insert-link: use ido when inserting links.
  Fri, 12 Oct 2012 14:58:29 +1100
- https://list.orgmode.org/5CE03302-7C87-44BE-B4AF-A6A92C96C803@gmail.com/T/#u
  tony day.  [PATCH] org-insert-link: allow ido usage when inserting
  links.  Fri, 14 Sep 2012 19:21:50 +1000
- https://list.orgmode.org/0CADA13B-8A22-4F34-91B1-2232997C1F04@gmail.com/T/#u
  tony day.  [PATCH] org-insert-link: allow ido usage when inserting
  links. Fri, 12 Oct 2012 14:56:10 +1100
- https://list.orgmode.org/97F9790D-3C7F-490B-BE9B-1A652BB9F187@gmail.com/
  tony day.  PATCH: using ido when inserting links.
  Fri, 14 Sep 2012 18:58:43 +1000

Since auto-desc variable added by first commit was not removed
by second one, I assume that disabling the feature was a side effect
rather than the purpose.
2022-09-11 19:38:52 +08:00
Ihor Radchenko c9db3c51ab
test-org-clock/clocktable/step: Add test for the new ":step quarter"
* testing/lisp/test-org-clock.el (test-org-clock/clocktable/step): Add
new test case.
2022-09-09 21:16:46 +08:00
Ihor Radchenko 583c01c084
etc/ORG-NEWS: Document new ":step quarter" value
* etc/ORG-NEWS (Clock table can now produce quarterly reports):
Document the new feature introduced in 3f3ff643d.
2022-09-09 21:06:25 +08:00
Joost Helberg 3f3ff643d2
org-clock: Make quarter work as parameter for :step in clocktable
Hi,

many years ago a colleague and myself wrote a patch for quarters into
org-mode/clocktable for blocks, today I noticed that :step should allow
'quarter' as an argument too. Here's the tiny patch to allow that.

* doc/org-manual.org (The clock table): Document the new clocktable
option.
* lisp/org-clock.el:
(org-clocktable-steps): Add new 'quarter allowed value.

TINYCHANGE
2022-09-09 21:02:56 +08:00
Ihor Radchenko 7c20552ed6
org-babel-load-languages: Link to the manual for language list
* lisp/org.el: Update docstring linking to the manual for the list of
supported babel languages.

Reported in https://orgmode.org/list/86fsh61a3u.fsf@gmail.com
2022-09-09 19:16:40 +08:00
Max Nikulin f25b308af6
org.el: Avoid dlink identifiers in `org-open-file'
* lisp/org.el (org--file-apps-entry-locator-p): Rename from
`org--file-apps-entry-dlink-p'.
(org-open-file): Avoid confusing "dlink" part of some identifiers.
Earlier `dlink' local variable was removed to prevent an issue with
distorted case of link components.
2022-09-09 19:03:51 +08:00
Max Nikulin 6e9ea3a076
org.el: Preserve case for link subgroups from `org-file-apps'
* lisp/org.el (org-open-file): Avoid matching of `org-file-apps' records
against the link converted to downcase since it caused incorrect
substitutions to the command.

Consider the following entry

    (add-to-list
     'org-file-apps
     '("\\.PDF\\(?:\\.[gx]z\\|\\.bz2\\)?::\\(#[^:]*\\)::\\(.+\\)\\'"
      . "okular --find %2 -- %s%1"))

and the link
<file:///usr/share/doc/bash/bashref.pdf::#Redirections::before>
Without the patch

    okular --find before -- /usr/share/doc/bash/bashref.pdf\#redirections

command is executed and the application can not resolve internal
cross-reference anchor.

In https://list.orgmode.org/4B51D104.9090502@jboecker.de/T/#u
https://list.orgmode.org/k2jfb2eb6811004041733zf176e0aq8367924746db81f5@mail.gmail.com/T/#u
the purpose of `dlink' is not clarified, so I assume that the only
purpose is to allow matching file suffixes, e.g. ".pdf" vs ".PDF".
2022-09-09 19:03:50 +08:00
Max Nikulin 33686b9955
org.el: Pass link match data to `org-file-apps' functions
* lisp/org.el (org--file-apps-entry-dlink-p): Fix it to pass match data
to handler functions from `org-open-file' alist when pattern field of
`org-file-apps' contains regexp subgroups.

Update `org--file-apps-entry-dlink-p' to use current convention for action
field of `org-file-apps' structure.  Currently it may be a function while
earlier s-expression was allowed.  Obsolete test wrongly separated actions
able to handle regexp subgroups matched in the link.  An example when
match data were not passed to the handler function:

    (add-to-list
     'org-file-apps
     '("\\.pdf\\(?:\\.gz\\|\\.bz2\\|\\.xz\\)?\\(?:::.*\\)?\\'"
        . my-open-pdf-locator))

Notice that lambda functions passed `consp' test, so namely
`defun' is required to reproduce the issue.

This change was missed in the commit:

     c8a3ab1e4 2016-02-03 18:30:17 +0100
     Nicolas Goaziou: `org-file-apps' accept functions instead of sexp

For discussion of the issue with evaluation of arbitrary expression see
https://list.orgmode.org/CALn3zoh+ACSU09eRurfwKjmCnw7i-_0KX7tA2jWqtu=vvQepLQ@mail.gmail.com/T/#u
Michael Brand. org-player and switch to lexical binding in org.el.
Sun, 17 Jan 2016 19:58:38 +0100
2022-09-09 19:03:49 +08:00
Mikhail Skorzhinskii eb5ef0ae14
ox-icalendar.el: Customize vevent summary prefix
* lisp/ox-icalendar.el (org-icalendar-scheduled-summary-prefix): A new
customization option to control summary prefix in exported scheduled
events.
* lisp/ox-icalendar.el (org-icalendar-deadline-summary-prefix): A new
customization option to control summary prefix in exported deadline
events.
* lisp/ox-icalendar.el (org-icalendar-entry): Use configurable summary
prefixes for scheduled and deadline events, instead of hardcoded ones.
2022-09-08 13:29:00 +08:00
Ihor Radchenko fe90cab956
lisp/ox.el: Rename abnormal hook names to end with "-functions"
* lisp/ox.el (org-export-before-processing-functions):
(org-export-before-parsing-functions): Rename
`org-export-before-processing-hook' and
`org-export-before-parsing-hook' to use "-functions" suffix as these
hooks are abnormal hooks and we need not to use "-hook" suffix in
abnormal hooks.
* lisp/org-compat.el (org-export-before-processing-hook):
(org-export-before-parsing-hook): Declare obsolete.
* lisp/org-attach.el (org-export-before-parsing-functions): Use the
new hook name.
2022-09-06 21:42:11 +08:00
Ihor Radchenko e73c5b7d0d
Fix Emacs 29 compiler warnings
* lisp/oc-basic.el (org-cite-basic--parse-bibliography): Do not use
obsolete `buffer-file-name' generalized variable.  Prefer
`set-visited-file-name'.
* lisp/ol-bibtex.el (org-indent-region): Declare function.
(org-bibtex-import-from-file): Remove unused variable.
* lisp/ol.el (org-link--decode-compound): Use `ash' instead of
obsolete `lsh'.
* lisp/org-macs.el: Do no use obsolete generalized variable
`buffer-string'.
* lisp/org-plot.el (org-plot/redisplay-img-in-buffer):
* lisp/org.el (image-flush):
(org-display-inline-images): Use `image-flush' instead of obsolete
`image-refresh'.
* lisp/ox.el (org-export-to-file): Quote ' in the docstring.

All other changes are changing obsolete `point-at-bol' and
`point-at-eol' to `line-beginning-position' and `line-end-position'.
2022-09-06 20:50:59 +08:00