summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-09-23 17:58:41 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-09-23 17:58:41 +0200
commit212e94c3f445ebe1388f6fab134133ebad9316d0 (patch)
treebc2383314586b685e8dd1542ddb1f7cae5bdd3b9 /lisp/emacs-lisp
parent419b873f3998c32493e8ec8d18571868613e6315 (diff)
downloademacs-212e94c3f445ebe1388f6fab134133ebad9316d0.tar.gz
emacs-212e94c3f445ebe1388f6fab134133ebad9316d0.tar.bz2
emacs-212e94c3f445ebe1388f6fab134133ebad9316d0.zip
Make loaddefs-gen register parent :groups from defcustom
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): Also register parent :groups from `defgroup' entries (bug#58015).
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/loaddefs-gen.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index 5819a26eb54..095d6b14e63 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -287,10 +287,14 @@ expression, in which case we want to handle forms differently."
;; In Emacs this is normally handled separately by cus-dep.el, but for
;; third party packages, it can be convenient to explicitly autoload
;; a group.
- (let ((groupname (nth 1 form)))
+ (let ((groupname (nth 1 form))
+ (parent (eval (plist-get form :group) t)))
`(let ((loads (get ',groupname 'custom-loads)))
(if (member ',file loads) nil
- (put ',groupname 'custom-loads (cons ',file loads))))))
+ (put ',groupname 'custom-loads (cons ',file loads))
+ ,@(when parent
+ `((put ',parent 'custom-loads
+ (cons ',groupname (get ',parent 'custom-loads)))))))))
;; When processing a macro expansion, any expression
;; before a :autoload-end should be included. These are typically (put