emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Eliminating "changed in Emacs outside of Customize"


From: Luc Teirlinck
Subject: Re: Eliminating "changed in Emacs outside of Customize"
Date: Tue, 1 Feb 2005 16:11:49 -0600 (CST)

David Kastrup wrote:

   It appears that I am babbling and confusing this with something else.

   Probably with custom-declare-variable calling the setter function if
   the value of the variable has been set before custom-declare-variable
   is executed.

I believe that you were confusing with the defcustom form, which does
not override an already set value (_unless_ the :set function does so)
and its default :initialize function `custom-initialize-reset', which
nevertheless executes the :set function _even_ if the value is already
set.

`custom-initialize-reset' is a dangerous default by the way, as it
could override the user and unpredictably change behavior due to, say,
browsing custom groups and hence inadvertently loading a file and
executing a defcustom.  Indeed, even if the :set function does not
change the value, it can change other stuff.  We decided before that
it was too late to change this default, but I believe that anybody who
writes a defcustom with a :set function should carefully check whether
the default :initialize function is really appropriate for it, taking
into account that not all Emacs users will customize the variable
through Custom.  `custom-initialize-reset' has led to several bugs,
but all _known_ bugs caused by it have been corrected.

Sincerely,

Luc.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]