Subject: bug#5974: 23.1.95; enabling disabled cmd & saving doesn't respect `custom-file'

From: Nicolas Richard <[email-masked]>
Date: Fri, 29 Apr 2016 16:21:43 +0200

Lars Ingebrigtsen <[email-masked]> writes:

> Nicolas Richard <[email-masked]> writes:
>
>> Lars Ingebrigtsen <[email-masked]> writes:
>>> That's the code that puts
>>>
>>> (put 'narrow-to-region 'disabled nil)
>>>
>>> into our .emacs files, right?  Yes, it would be better if that was
>>> handled by Custom.  But how?  Custom works by setting (variable) values,
>>> not adjusting symbol properties...
>>
>> We could add a defcustom like
>> (defcustom enabled-commands nil
>>   "List of commands to enable"
>>   :set (lambda (sym val)
>>          (dolist (cmd val)
>>            (put cmd 'disabled nil))
>>          (set-default sym val)))
>
> Hm...  the `set-default' wouldn't be necessary, would it?  

I think it is necessary, for if you eval:

(progn
  (defcustom enabled-commands nil
    "List of commands to enable"
    :set (lambda (sym val)
           (dolist (cmd val)
             (put cmd 'disabled nil))
           ;; (set-default sym val)
           ))
  (customize-set-variable 'enabled-commands '(upcase-region))
  (describe-variable 'enabled-commands))

you obtain "enabled-commands is void", which is confusing. It probably
also becomes impossible to keep track of which commands were enabled via
customize.

Nicolas.