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

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

[elpa] externals/org-real 735ce86 028/160: Cleaned up hooks


From: ELPA Syncer
Subject: [elpa] externals/org-real 735ce86 028/160: Cleaned up hooks
Date: Wed, 6 Oct 2021 16:58:08 -0400 (EDT)

branch: externals/org-real
commit 735ce86586a49f24452f2ba7a24d82e19158af36
Author: Tyler Grinn <tylergrinn@gmail.com>
Commit: Tyler Grinn <tylergrinn@gmail.com>

    Cleaned up hooks
---
 org-real.el | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/org-real.el b/org-real.el
index bcefb29..f56c022 100644
--- a/org-real.el
+++ b/org-real.el
@@ -425,6 +425,8 @@ matching the one returned from `completing-read'."
         existing-containers
       `((:name ,result)))))
 
+;;; Hooks
+
 (defun org-real--read-string-advice (orig prompt link &rest args)
   "Advise `read-string' during `org-insert-link' to use custom completion.
 
@@ -434,24 +436,20 @@ passed to it."
       (org-real-complete link)
     (apply orig prompt link args)))
 
-(defun org-real--insert-link-before (&rest args)
+(defun org-real--maybe-edit-link (orig &rest args)
   "Advise `org-insert-link' to advise `read-string' during editing of a link.
 
 ARGS are the arguments passed to `org-insert-link'."
-  (advice-add 'read-string :around #'org-real--read-string-advice))
-
-(defun org-real--insert-link-after (&rest args)
-  "Advise `org-insert-link' to advise `read-string' during editing of a link.
+  (advice-add 'read-string :around #'org-real--read-string-advice)
+  (unwind-protect
+      (if (called-interactively-p)
+          (call-interactively orig)
+        (apply orig args))
+    (advice-remove 'read-string #'org-real--read-string-advice)))
 
-ARGS are the arguments passed to `org-insert-link'."
-  (advice-remove 'read-string #'org-real--read-string-advice)
-  (org-real--apply))
+(advice-add 'org-insert-link :around #'org-real--maybe-edit-link)
 
-
-(advice-add 'org-insert-link :before #'org-real--insert-link-before)
-(advice-add 'org-insert-link :after #'org-real--insert-link-after)
-
-(defun org-real--apply ()
+(defun org-real--apply (&rest args)
   "Apply any changes to the current buffer from the last inserted real link."
   (let (new-link new-desc replace-all)
     (cond
@@ -523,6 +521,8 @@ ARGS are the arguments passed to `org-insert-link'."
           (pop new-containers)))))
   (message nil))
 
+(advice-add 'org-insert-link :after #'org-real--apply)
+
 ;;;; Pretty printing
 
 (defun org-real--pp (box &optional containers)



reply via email to

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