branch: externals/bufferlo
commit b2b9bd9f59d267d223ec2b1a52d00803361b863f
Author: Stéphane Marks <[email protected]>
Commit: Flo Rommel <[email protected]>

    Support Emacs 31 'bookmark-after-load-file-hook'
    
    Warn when an active bufferlo bookmark is not present in a
    refreshed bookmark list.
    
    * bufferlo.el (bufferlo-mode): Add/remove hook.
    (bufferlo--bookmark-after-load-file-hook): Hook implementation.
---
 bufferlo.el | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/bufferlo.el b/bufferlo.el
index d9ad3fa0c8..3f52e8dba0 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -1124,7 +1124,9 @@ string, FACE is the face for STR."
                   #'bufferlo-bookmark--tab-save-on-close)
         (add-hook 'delete-frame-functions
                   #'bufferlo-bookmark--frame-save-on-delete)
-        ;; bookmark advice
+        ;; bookmark hook and advice
+        (add-hook 'bookmark-after-load-file-hook
+                  #'bufferlo--bookmark-after-load-file-hook)
         (advice-add #'bookmark--jump-via :around 
#'bufferlo--bookmark--jump-via-advice)
         (advice-add #'bookmark-rename :around 
#'bufferlo--bookmark-rename-advice)
         (advice-add #'bookmark-delete :around 
#'bufferlo--bookmark-delete-advice)
@@ -1174,7 +1176,9 @@ string, FACE is the face for STR."
                  #'bufferlo-bookmark--tab-save-on-close)
     (remove-hook 'delete-frame-functions
                  #'bufferlo-bookmark--frame-save-on-delete)
-    ;; bookmark advice
+    ;; bookmark hook and advice
+    (remove-hook 'bookmark-after-load-file-hook
+                 #'bufferlo--bookmark-after-load-file-hook)
     (advice-remove #'bookmark--jump-via #'bufferlo--bookmark--jump-via-advice)
     (advice-remove #'bookmark-rename #'bufferlo--bookmark-rename-advice)
     (advice-remove #'bookmark-delete #'bufferlo--bookmark-delete-advice)))
@@ -5028,7 +5032,15 @@ exist."
         (bufferlo-tab-close-kill-buffers)
       (message "No active bufferlo frame or tab bookmark to close."))))
 
-;;; bookmark advisories
+;;; bookmark hook and advice
+
+(defun bufferlo--bookmark-after-load-file-hook ()
+  "Scan the loaded bookmarks list for missing active bufferlo bookmarks."
+  (let ((alist-bookmarks (bufferlo--bookmark-get-names)))
+    (dolist (bookmark (bufferlo--active-bookmarks))
+      (unless (member (car bookmark) alist-bookmarks)
+        (warn "Active bufferlo bookmark `%s' not present in loaded bookmarks"
+              (car bookmark))))))
 
 ;; (defun bookmark-set (&optional name no-overwrite)
 ;; (defun bookmark-set-no-overwrite (&optional name push-bookmark)

Reply via email to