Subject: bug#63290: 30.0.50; Customize UI shows extra fields for (choice (const ...) (alist ...))

From: Thomas Fitzsimmons <[email-masked]>
Date: Fri, 11 Aug 2023 09:29:24 -0400

Mauro Aranda <[email-masked]> writes:

> Thomas Fitzsimmons <[email-masked]> writes: 
> 
>> Hi Mauro, 
>> 
>> Mauro Aranda <[email-masked]> writes: 
>> 
>>> I ended up adding a custom :default-get function for the list 
>>> widget, to make it respect a nil value as the :value.  This 
>>> should be backward compatible with other widgets, and should 
>>> fix these "ghost" elements insertions. I also added a test for 
>>> cus-edit-tests. 
>> 
>> Can you try this patch with: 
>> 
>> M-x package-install RET excorporate RET 
>> 
>> Then: 
>> 
>> M-x customize-variable RET excorporate-configuration RET 
>> 
>> then select "Value Menu" and 3, which is "EWS URL OAuth 2.0 
>> settings (no autodiscovery)".  With your wis-edit.el patch 
>> applied I still get empty values for: 
>>     INS DEL Argument name:             Argument value:  
>> and: 
>>     INS DEL OAuth 2.0 setting name:             OAuth 2.0 
>>setting    value:  
>> and when I apply the setting the value contains:   
>> (... (... (#1# . #1#))    (#1# . #1#)) 
>> 
>> Maybe this is a more complicated case than the test case I 
>> provided (which does now work for me with your patch)? 
> 
> I think this ammended patch fixes it.  Since we want 
> widget-list-default-get to respect a nil :value property, the 
> alist widget needs to be modified so that its default value is 
> nil. 

With the updated patch, when I select "EWS URL OAuth 2.0 settings 
(no autodiscovery)", all the widgets are disabled.  The blank 
values are no longer added though.  However, if I then set the 
value, without configuring anything, excorporate-configuration 
stays nil.  So I don't think the patch is correct yet.

Thomas