diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-09-24 12:15:58 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-09-24 12:15:58 +0200 |
commit | 6403ede2016d0d16a487d759ef45745c3d4ac24b (patch) | |
tree | 6bf274093bad0dcf860a987eb14b0be53c0cc4f4 | |
parent | 126d5b23cf252ceae537a686e46ba86c0591e658 (diff) | |
download | emacs-6403ede2016d0d16a487d759ef45745c3d4ac24b.tar.gz emacs-6403ede2016d0d16a487d759ef45745c3d4ac24b.tar.bz2 emacs-6403ede2016d0d16a487d759ef45745c3d4ac24b.zip |
Ensure that cus-load doesn't add things twice
* lisp/cus-dep.el (custom-make-dependencies): Use it.
* lisp/custom.el (custom--add-custom-loads): New function.
-rw-r--r-- | lisp/cus-dep.el | 5 | ||||
-rw-r--r-- | lisp/custom.el | 7 |
2 files changed, 8 insertions, 4 deletions
diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el index 163a2da1f12..3f18202affe 100644 --- a/lisp/cus-dep.el +++ b/lisp/cus-dep.el @@ -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. diff --git a/lisp/custom.el b/lisp/custom.el index 352b5b0e160..604b1a3ff48 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -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 |