emacs-diffs
[Top][All Lists]
Advanced

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

master c5253aa01e: Make desktop.el use local-minor-modes when saving


From: Lars Ingebrigtsen
Subject: master c5253aa01e: Make desktop.el use local-minor-modes when saving
Date: Sun, 17 Apr 2022 14:23:12 -0400 (EDT)

branch: master
commit c5253aa01eef0f080fdfa53e4b0ada20a6782e53
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Make desktop.el use local-minor-modes when saving
    
    * lisp/desktop.el (desktop-buffer-info): Use a more reliable way
    to get minor modes (bug#29972).
---
 lisp/desktop.el | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/lisp/desktop.el b/lisp/desktop.el
index 7e3d66bdf1..cd581e028b 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -847,15 +847,16 @@ buffer, which is (in order):
     ,(buffer-name)
     ,major-mode
     ;; minor modes
-    ,(let (ret)
-       (dolist (minor-mode (mapcar #'car minor-mode-alist) ret)
-         (and (boundp minor-mode)
-              (symbol-value minor-mode)
-              (let* ((special (assq minor-mode desktop-minor-mode-table))
-                     (value (cond (special (cadr special))
-                                  ((get minor-mode :minor-mode-function))
-                                  ((functionp minor-mode) minor-mode))))
-                (when value (cl-pushnew value ret))))))
+    ,(seq-filter
+      (lambda (minor-mode)
+        ;; Just two sanity checks.
+        (and (boundp minor-mode)
+             (symbol-value minor-mode)
+             (let ((special
+                    (assq minor-mode desktop-minor-mode-table)))
+               (or (not special)
+                   (cadr special)))))
+      local-minor-modes)
     ;; point and mark, and read-only status
     ,(point)
     ,(list (mark t) mark-active)



reply via email to

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