]> git.eshelyaron.com Git - emacs.git/commitdiff
Ensure that cus-load doesn't add things twice
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 24 Sep 2022 10:15:58 +0000 (12:15 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 24 Sep 2022 10:15:58 +0000 (12:15 +0200)
* lisp/cus-dep.el (custom-make-dependencies): Use it.

* lisp/custom.el (custom--add-custom-loads): New function.

lisp/cus-dep.el
lisp/custom.el

index 163a2da1f129ed73306a00a36e3c9e27ce568909..3f18202affebf80e8dcb3eeff61eac448ea7fb9c 100644 (file)
@@ -175,10 +175,7 @@ Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS"
                                    (prin1 (sort found #'string<))))
                            alist))))))
     (dolist (e (sort alist (lambda (e1 e2) (string< (car e1) (car e2)))))
-      ;; Don't overwrite elements added by packages.
-      (insert "(put '" (car e)
-              " 'custom-loads (append '" (cdr e)
-              " (get '" (car e) " 'custom-loads)))\n")))
+      (insert "(custom--add-custom-loads '" (car e) " '" (cdr e) ")\n")))
   (insert "\
 
 ;; The remainder of this file is for handling :version.
index 352b5b0e160183b8cc369d1e894a6e02aa244f2d..604b1a3ff485afb3042c0ef0d10b475af4529757 100644 (file)
@@ -1707,6 +1707,13 @@ If a choice with the same tag already exists, no action is taken."
       (put variable 'custom-type
            (append choices (list choice))))))
 
+(defun custom--add-custom-loads (symbol loads)
+  ;; Don't overwrite existing `custom-loads'.
+  (dolist (load (get symbol 'custom-loads))
+    (unless (memq load loads)
+      (push load loads)))
+  (put symbol 'custom-loads loads))
+
 (provide 'custom)
 
 ;;; custom.el ends here