unload-feature does not completely reverse the effects of defcustom.

Consider this file:

,----[ a.el ]
| (defcustom a-cus-var 'a-value 
|   "The documentation of `a-cus-var'.")
| (provide 'a)
`----

and do:

(require 'a)
(unload-feature 'a)

Now a-cus-var is not bound, but when I do M-x customize-option, I can
still select (with completion) a-cus-var and that gives me this
customization buffer:

,----[ *Customize Option: A Cus Var* ]
| This is a customization buffer.
| `Raised' buttons show active fields; type RET or click mouse-1
| on an active field to invoke its action.  Editing an option value
| changes only the text in the buffer.  Invoke the State button to set or
| save the option value.  Saving an option normally edits your init file.
| Invoke Custom file for information on how to save in a different file.
| Invoke Help for general information.
| 
| Operate on everything in this buffer:
|  Set for Current Session Save for Future Sessions
|  Reset Reset to Saved Erase Customization   Finish
| 
| A Cus Var: Hide Value "nil"
|    State: CHANGED outside Customize; operating on it here may be unreliable.
| 
| The documentation of `a-cus-var'.
| Parent groups: Nil
`----

I think this is undesirable.  Could this be easily fixed?  (Maybe by
letting customize ignore unbound vars.)  Or is better to put this on
the post-release todo list?

Lute.


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to