Max Nikulin <[email protected]> writes:
> There is the `org-store-link-plist' variable used by :store functions
> from `org-link-parameters' but not by the
> `org-create-file-search-functions' hook. Maybe it is enough to add
Reading through `org-store-link-functions' docstring and
`org-store-link' code, I noticed that `org-store-link-functions'
promises the following:
Each function will be called in turn until one returns a non-nil
value.
Yet, `org-store-link' does the following:
(dolist (f (org-store-link-functions))
(when (funcall f)
(push (cons f (copy-sequence org-store-link-plist))
results-alist)))
(pcase results-alist
...
;; Reinstate link plist associated to the chosen
;; function.
(apply #'org-link-store-props
(cdr (assoc-string
(completing-read
(format "Store link with (default %s): " name)
(mapcar #'car results-alist)
nil t nil nil (symbol-name name))
results-alist)))
t))
That is, all the store link functions are actually being executed, not
until first non-nil return value. If multiple non-nil values are
returned, an interactive query is displayed to the user.
---
The actual behaviour is indeed nice, but I am wondering how it is going
to work in non-interactive case.
Thoughts?
--
Ihor Radchenko,
Org mode contributor,
Learn more about Org mode at https://orgmode.org/.
Support Org development at https://liberapay.com/org-mode,
or support my work at https://liberapay.com/yantar92