emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 0bf211a: oc: Opportunistically load processors


From: ELPA Syncer
Subject: [elpa] externals/org 0bf211a: oc: Opportunistically load processors
Date: Mon, 29 Nov 2021 17:57:29 -0500 (EST)

branch: externals/org
commit 0bf211a3401aad7f6468b10c19d0a5b908212e54
Author: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>

    oc: Opportunistically load processors
    
    * lisp/oc.el (org-cite--get-processor): Try requiring 'oc-NAME where
    name is the name of the processor used.
    (org-cite-register-processor): Do not use `org-cite--get-processor' to
    avoid circular requires.
    
    Suggested-by: Timothy <tecosaur@gmail.com>
    <http://lists.gnu.org/r/emacs-orgmode/2021-11/msg00664.html>
---
 lisp/oc.el | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lisp/oc.el b/lisp/oc.el
index c61913c..b31ee92 100644
--- a/lisp/oc.el
+++ b/lisp/oc.el
@@ -326,6 +326,9 @@ processors.")
 (defun org-cite--get-processor (name)
   "Return citation processor named after symbol NAME.
 Return nil if no such processor is found."
+  ;; Opportunistically try to load the library providing the
+  ;; processor.
+  (require (intern (concat "oc-" (symbol-name name))) nil t)
   (seq-find (lambda (p) (eq name (org-cite-processor-name p)))
            org-cite--processors))
 
@@ -419,10 +422,10 @@ Return a non-nil value on a successful operation."
   (declare (indent 1))
   (unless (and name (symbolp name))
     (error "Invalid processor name: %S" name))
-  (when (org-cite--get-processor name)
-    (org-cite-unregister-processor name))
-  (push (apply #'org-cite--make-processor :name name body)
-       org-cite--processors))
+  (setq org-cite--processors
+        (cons (apply #'org-cite--make-processor :name name body)
+              (seq-remove (lambda (p) (eq name (org-cite-processor-name p)))
+                          org-cite--processors))))
 
 (defun org-cite-unregister-processor (name)
   "Unregister citation processor NAME.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]