unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* find-file-hook as illustration of Custom problems
@ 2005-02-04  0:36 Luc Teirlinck
  2005-02-04  7:16 ` Lennart Borgman
  2005-02-05 17:38 ` Richard Stallman
  0 siblings, 2 replies; 65+ messages in thread
From: Luc Teirlinck @ 2005-02-04  0:36 UTC (permalink / raw)


Programs adding entries to hooks or other lists or alists that are
defined by defcustoms can yield _all kinds_ of problems.

If you do `emacs -q' and then `M-x customize-rogue' you will see well
over twenty variables that are defined with defcustoms and are then
changed by code.  Just experimenting a little bit with these variables
in Custom buffers (_not_ in `emacs -q', because you want a regular
customized Emacs for this) will reveal a wide variety of buggish behavior.

I _only_ took a look at find-file-hook, because I wanted a really easy
example.  (Plenty of other variables, look like they might be a much
bigger mess.)

If you customize find-file-hook, then regret your customizations and
select "Erase Customization" VC will not work any more, for newly
visited files.  If you use auto-revert-tail-mode, it will malfunction
from that moment on, for newly visited files.  Both will work again if
you start a new session, but the fact that they cease to work without
warning in the current session is bad enough.

The problem is that vc-hooks.el contains:

(add-hook 'find-file-hook 'vc-find-file-hook)

and autorevert.el contains:

(add-hook 'find-file-hook
	    (lambda ()
	        (set (make-local-variable 'auto-revert-tail-pos)
		      (save-restriction (widen) (1- (point-max))))))

Since vc-hooks.el is apparently preloaded, one could either call
vc-find-file-hook directly from after-find-file or one could add it to
the defcustom of find-file-hook.  Since it seems to be a function that
needs to run _unconditionally_, I personally would lean toward calling
it from after-find-file directly.

What should be done with the auto-revert-tail-mode problem is not that
straightforward.  I would say just ignore it for the moment.  I just
noticed auto-revert-tail, because I use auto-revert-mode, but looking
through the code, I noticed that several other packages add stuff to
find-file-hook in the same way and hence will also be disabled by
"Erase Customization ".

I guess that after "21.4" is released, we could split some of the most
often used and most problematic hooks (like find-file-hook) into a
user and a program hook, thereby solving this kind of problem.  (Doing
this for all defcustomed hooks would probably be unrealistic, because
there are too many of them.)

After that more than twenty complete different and much more complex
problems with changing stuff outside Custom remain, if we just look at
problems present at startup.

But problems occurring _after_ startup are much more dangerous, as I
pointed out and they are also apparently even way more numerous.

I would say, let us tackle this seriously after 21.4 is released and
let us leave Custom alone until 21.4 is released.

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2005-02-17  1:08 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-04  0:36 find-file-hook as illustration of Custom problems Luc Teirlinck
2005-02-04  7:16 ` Lennart Borgman
2005-02-05 17:38 ` Richard Stallman
2005-02-05 18:54   ` Luc Teirlinck
2005-02-06 21:01     ` Richard Stallman
2005-02-06 22:19       ` Lennart Borgman
2005-02-05 19:43   ` Lennart Borgman
2005-02-05 20:56     ` Popup when buffer file is changed on disk moheb missaghi
2005-02-05 22:57       ` Eli Zaretskii
2005-02-06  0:51         ` Lennart Borgman
2005-02-06  7:20           ` Eli Zaretskii
2005-02-06  9:02             ` Lennart Borgman
2005-02-06  9:53               ` Eli Zaretskii
2005-02-06 10:41                 ` Lennart Borgman
2005-02-06 16:34                   ` Luc Teirlinck
2005-02-06 17:52                     ` Lennart Borgman
2005-02-06 17:04                   ` Luc Teirlinck
2005-02-11  0:33                     ` Luc Teirlinck
2005-02-11 15:40                       ` Eli Zaretskii
2005-02-11 16:51                         ` David Kastrup
2005-02-11 19:38                           ` Luc Teirlinck
2005-02-12 11:03                             ` Eli Zaretskii
2005-02-12  8:37                       ` Richard Stallman
2005-02-13  1:41                         ` Luc Teirlinck
2005-02-13  4:36                           ` Eli Zaretskii
2005-02-15  3:05                             ` Luc Teirlinck
2005-02-15  4:59                               ` Eli Zaretskii
2005-02-16  2:59                                 ` moheb missaghi
2005-02-16  9:31                               ` Richard Stallman
2005-02-16 10:37                                 ` David Kastrup
2005-02-16 15:06                                   ` Luc Teirlinck
2005-02-16 15:21                                     ` David Kastrup
2005-02-17  1:08                                       ` Luc Teirlinck
2005-02-06 12:42               ` Richard Stallman
2005-02-06 18:00                 ` Lennart Borgman
2005-02-06 18:17                   ` Jan D.
2005-02-06 19:59                     ` Lennart Borgman
2005-02-06 20:40                       ` Jan D.
2005-02-07  4:34                         ` Eli Zaretskii
2005-02-07  4:04                   ` Luc Teirlinck
2005-02-06 18:11                 ` Luc Teirlinck
2005-02-06 18:45                   ` Luc Teirlinck
2005-02-06 13:24               ` Jason Rumney
2005-02-06 13:54                 ` Lennart Borgman
2005-02-06  7:23         ` Eli Zaretskii
2005-02-06 21:01     ` find-file-hook as illustration of Custom problems Richard Stallman
2005-02-06  1:50   ` Luc Teirlinck
2005-02-06  3:26     ` Luc Teirlinck
2005-02-06  4:02       ` Luc Teirlinck
2005-02-06 21:02     ` Richard Stallman
2005-02-08  1:50       ` Luc Teirlinck
2005-02-09  8:10         ` Richard Stallman
2005-02-09 10:42           ` Kim F. Storm
2005-02-10 18:39             ` Richard Stallman
2005-02-10 21:42               ` Kim F. Storm
2005-02-12  8:37                 ` Richard Stallman
2005-02-10  5:12           ` Luc Teirlinck
2005-02-10 18:40             ` Richard Stallman
2005-02-11  0:09               ` Luc Teirlinck
2005-02-12  8:37                 ` Richard Stallman
2005-02-11  0:21               ` Luc Teirlinck
2005-02-11 14:59               ` Luc Teirlinck
2005-02-10  5:26           ` Luc Teirlinck
2005-02-06  2:07   ` Luc Teirlinck
2005-02-06  3:16     ` Luc Teirlinck

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).