Ville Skyttä <ville.skytta(a)xemacs.org> wrote:
 On Thu, 2002-08-29 at 23:56, Karr, David wrote: 
/.../
 > I navigated through "Emacs" ->
"Programming" -> "Languages" -> "C".  I found
 > "Hanging Braces Alist", which apparently controls the insertion of
newlines
 > before and after braces, which was what I wanted to change from the default
 > (from end of line to next line).
 > 
 > So, I clicked on the right-pointing arrow, referred to as the "Show"
button.
 > 
 > This presented two radio buttons, for "Use style settings" and
"override
 > style
 > settings".  Below these two, however, was the following, repeated 20 times
 > (the
 > "[]" things are checkboxes):
 > 
 >  [] nil                   : [Choice] Newline [] before, [] after brace 
/.../
This seems to be due to some change in the Widget library in XEmacs
21. I've minimized the case to the following:
1.  Put this into a file widget-test.el:
    (require 'custom)
    (define-widget 'test-widget 'item
      "A test widget."
      :match (lambda (widget value) t))
    (defcustom testvar nil
      "A test"
      :type '(set (cons (test-widget :value a)
                        (item :value b)))
      :group 'test)
2.  Start XEmacs with "xemacs -q -no-site-file -l widget-test.el".
3.  Enter M-x customize RET test RET.
4.  Click on the little arrow after "Testvar".
Notice that the car of the shown cons cell is `nil'. In XEmacs 20.4
(and all versions of FSF Emacs with Custom support), it's `a'. Thus
this is a regression in XEmacs 21.
Note that the test case is almost completely minimized. I.e. the
:match function is necessary, as well as both the `set' and the `cons'
sexp widgets (exactly what the cdr part of the `cons' widget is seems
to be insignificant, though).