Subject: Re: bug#3811: 23.0.96; custom-group-members

From: Stefan Monnier <[email-masked]>
Date: Wed, 15 Jul 2009 14:39:05 -0400

>            (let ((direct-members  (custom-group-members symbol nil)))
>              (dolist (dm  direct-members)
>                (if (eq (cadr dm) 'custom-group)
>                    (setq members
>                          (nconc (custom-group-members (car dm) nil t)
>                                 members))

Beware of infinite-recursion since the groups aren't guaranteed to form
a DAG.

> It would be even better to combine args GROUPS-ONLY and RECURSIVEP, but that
> might mean problems for backward incompatibility. But perhaps something like
> this would be OK?

Don't know.  Depends if you want to be able to get "all groups,
recursively" or not.

> We might also consider making this a command. Users could use it to
> print out a list of the options and faces for a group.

> Note that one use of the proposed recursive behavior is for a user to
> create a custom group that represents a collection of personal
> settings (across other custom groups), and then to share those
> settings with others. (See the emacs-devel discussion of "skins" as
> custom groups.)

> A user Jane could, for example, use `custom-add-to-group' with group
> `jane', and then she could publish the `jane' settings for others,
> retrieving them using `custom-group-members'. The only other piece
> missing would then be a way for non-Lisp users to do the equivalent of
> `custom-add-to-group' using only the Customize UI. That is, we would
> provide easy ways to specify that certain options and faces should be
> added to group `jane'.

Isn't that going in the same direction as Custom themes?
In any case, it's way out of the scope of this bug report, which
I hence close.

        Stefan