* default :initialize function [not found] <DNEMKBNJBGPAOPIJOOICKEJPCAAA.drew.adams@oracle.com> @ 2004-10-12 0:29 ` Luc Teirlinck 2004-10-12 15:11 ` Stefan Monnier 2004-10-17 7:24 ` Richard Stallman 0 siblings, 2 replies; 4+ messages in thread From: Luc Teirlinck @ 2004-10-12 0:29 UTC (permalink / raw) Cc: rms, emacs-devel Drew Adams wrote: If I understand right, you said that clicking the Convenience group loads fringe.el, which executes a defcustom for fringe-mode, which calls set-fringe-mode-1. That means that clicking a _navigational_ button in customize has the side effect of changing the default-frame-alist. Not good (if I understand right). Yes, just _browsing_ Custom buffers _without customizing anything_ can easily change Emacs' behavior and override user customizations made outside of Custom. The reason is that the default :initialize function is now `custom-initialize-reset' and that function can be a real bully. If you want to customize a user option outside of Custom, because you do not like the :set function, then that will be to no avail. Loading the file will call the :set function anyway whether the user likes it or not. I am actually surprised that the problem arises with `fringe-mode', because that one _seemed_ harmless. The problem definitely used to be very bad with the old implementation of `ielm-prompt', where attempts to customize it to a non read-only value in .emacs got overridden by loading ielm, which made it read-only anyway by calling a :set function. That _particular_ problem is now gone, because I changed the implementation. I wonder why `custom-initialize-reset' is now the default :initialize function. It completely breaks what I believe to be two fundamental principles of Emacs. The first one is that just loading a file should only make functions and variables available, not actually change Emacs' behavior by _calling_ functions or changing variables. In particular, using Custom for browsing purposes should not change Emacs behavior and override user customizations. The second one is that use of Custom is optional, not mandatory. Non-Custom customizations made by the user in his .emacs should not be overridden by :set functions. I believe the 21.3 default for :initialize, `custom-initialize-set', should be restored. Sincerely, Luc. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: default :initialize function 2004-10-12 0:29 ` default :initialize function Luc Teirlinck @ 2004-10-12 15:11 ` Stefan Monnier 2004-10-12 15:54 ` Luc Teirlinck 2004-10-17 7:24 ` Richard Stallman 1 sibling, 1 reply; 4+ messages in thread From: Stefan Monnier @ 2004-10-12 15:11 UTC (permalink / raw) Cc: rms, drew.adams, emacs-devel > I wonder why `custom-initialize-reset' is now the default :initialize > function. It completely breaks what I believe to be two fundamental > principles of Emacs. [...] > I believe the 21.3 default for :initialize, `custom-initialize-set', > should be restored. When was it changed? Why? Stefan ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: default :initialize function 2004-10-12 15:11 ` Stefan Monnier @ 2004-10-12 15:54 ` Luc Teirlinck 0 siblings, 0 replies; 4+ messages in thread From: Luc Teirlinck @ 2004-10-12 15:54 UTC (permalink / raw) Cc: rms, drew.adams, emacs-devel Stefan Monnier wrote: > I wonder why `custom-initialize-reset' is now the default :initialize > function. It completely breaks what I believe to be two fundamental > principles of Emacs. [...] > I believe the 21.3 default for :initialize, `custom-initialize-set', > should be restored. When was it changed? Why? It is much older than I thought. It already was the default in 21.3, unlike what I said in the above quote. I _thought_ it was relatively recent, because that change only got documented in the Elisp manual two years ago. 1997-08-25 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * custom.el (custom-declare-variable): Use custom-initialize-reset by default, rather than custom-initialize-set. (custom-initialize-reset, custom-initialize-set): Doc fixes. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: default :initialize function 2004-10-12 0:29 ` default :initialize function Luc Teirlinck 2004-10-12 15:11 ` Stefan Monnier @ 2004-10-17 7:24 ` Richard Stallman 1 sibling, 0 replies; 4+ messages in thread From: Richard Stallman @ 2004-10-17 7:24 UTC (permalink / raw) Cc: drew.adams, emacs-devel I made a fix that prevents loading of fringe.el from overriding any explicit settings of fringe properties in default-frame-alist. Instead detects that the properties have been specified there, and updates the value of fringe-mode to match them. This is not totally clean. fringe-mode really ought, I think, to apply only to frames in which nothing else has been done to individually set their properties. However, there is no existing mechanism which is natural for that, and I don't think this is worth the trouble to implement one. If other such problems are encountered, a variant of this approach should do the job. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-10-17 7:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <DNEMKBNJBGPAOPIJOOICKEJPCAAA.drew.adams@oracle.com> 2004-10-12 0:29 ` default :initialize function Luc Teirlinck 2004-10-12 15:11 ` Stefan Monnier 2004-10-12 15:54 ` Luc Teirlinck 2004-10-17 7:24 ` Richard Stallman
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.