summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/cus-dep.el5
-rw-r--r--lisp/custom.el7
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