unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Luc Teirlinck <teirllm@dms.auburn.edu>
Cc: juri@jurta.org, yamaoka@jpl.org, jan.h.d@swipnet.se, rms@gnu.org,
	emacs-devel@gnu.org
Subject: Re: undo in loaddefs.el buffer
Date: Fri, 31 Dec 2004 09:04:26 -0600 (CST)	[thread overview]
Message-ID: <200412311504.iBVF4QO05860@raven.dms.auburn.edu> (raw)
In-Reply-To: <x54qi2yg7g.fsf@lola.goethe.zz> (message from David Kastrup on Fri, 31 Dec 2004 10:22:59 +0100)

David Kastrup wrote:

   > But 100% of the known examples (Auto Revert and Auto Revert Tail)
   > contradict the rules.

   If the rule is "you should not ...", of course 100% of all relevant
   examples are exceptions.

The stated rules are:

    Timer functions should normally not alter the current buffer contents,
    but it may be ok to alter some other buffer that exists for special
    purposes.  A general guideline is that if a buffer has undo enabled,
    timers should not write in it.

The three guidelines given are that the buffer written into should not
be current (but that guideline seems so strange that it is probably
just a misformulation), that the buffer should only exist for special
purposes and, most importantly, that it should not have undo enabled.
All known examples write into buffers that are current when they alter
it and, more importantly, into buffers that have (by default) undo
enabled.  Most buffers they alter are normal file visiting buffers
that do not exist for special purposes.  Dired and the Buffer Menu
exist for special purposes, but their main purpose is not to be
autoreverted.

But the one important thing is that they operate on buffers that have
undo enabled.  The rest is side stuff.

   And they have to take special measures to deal with the consequences
   of violating the rule.

Some of which are obvious and some of which are non-obvious.  My
proposal is to point out the latter.  There is no need to point out
that you should not blindly overwrite user editing, it is obvious.
There is a need to point out that Emacs will not automatically put in
undo boundaries and that, consequently, one might accumulate one big
undo entry, unless one does something about it.  The correct solution
is not always to disable undo.  It was not the solution we decided on
in any of cases we looked at.  All these cases involved timers, not
idle timers.

Sincerely,

Luc.

  reply	other threads:[~2004-12-31 15:04 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-21 14:14 undo in loaddefs.el buffer Luc Teirlinck
2004-12-21 15:41 ` Luc Teirlinck
2004-12-22  4:31   ` Katsumi Yamaoka
2004-12-22  4:58     ` Katsumi Yamaoka
2004-12-23  0:01     ` Richard Stallman
2004-12-23  0:26       ` David Kastrup
2004-12-25 15:13         ` Richard Stallman
2004-12-24  1:45     ` Juri Linkov
2004-12-24 21:39       ` Luc Teirlinck
2004-12-26  9:14         ` Richard Stallman
2004-12-27  5:29           ` Luc Teirlinck
2004-12-27 22:35             ` Richard Stallman
2004-12-24 23:59       ` Luc Teirlinck
2004-12-25 15:12       ` Richard Stallman
2004-12-26  2:06         ` Luc Teirlinck
2004-12-26  2:32           ` Juri Linkov
2004-12-26  3:59             ` Luc Teirlinck
2004-12-27  2:40             ` Luc Teirlinck
2004-12-27 20:16               ` Juri Linkov
2004-12-28  4:57                 ` Richard Stallman
2004-12-27  4:09             ` Richard Stallman
2004-12-26 16:15           ` Jan D.
2004-12-27  2:31             ` Luc Teirlinck
2004-12-27 10:21               ` Jan D.
2004-12-27 11:05                 ` Jan D.
2004-12-27 22:35                 ` Richard Stallman
2004-12-28 13:16                   ` Jan D.
2004-12-28 20:57                     ` Richard Stallman
2004-12-29 12:59                       ` Jan D.
2004-12-28  5:03                 ` Luc Teirlinck
2004-12-28 17:25                   ` Richard Stallman
2004-12-29  2:07                     ` Luc Teirlinck
2004-12-29 20:46                       ` Richard Stallman
2004-12-30  1:14                         ` Luc Teirlinck
2004-12-30 16:43                           ` Richard Stallman
2004-12-31  1:54                             ` Luc Teirlinck
2004-12-31  9:22                               ` David Kastrup
2004-12-31 15:04                                 ` Luc Teirlinck [this message]
2005-01-01  5:25                                   ` Richard Stallman
2005-01-02 16:02                                     ` Luc Teirlinck
2005-01-03  0:58                                       ` Richard Stallman
2005-01-04  3:07                                         ` Luc Teirlinck
2005-01-04 17:00                                           ` Richard Stallman
2004-12-31  2:14                             ` Luc Teirlinck
2004-12-30  5:06                     ` Luc Teirlinck
2004-12-30 20:58                       ` Richard Stallman
2004-12-27 18:05             ` Richard Stallman
2004-12-27 19:33               ` Jan D.
2004-12-28  4:57                 ` Richard Stallman
2004-12-28  8:11                   ` Jan D.
2004-12-28 21:05                 ` Jason Rumney
2004-12-29 23:22                   ` Jan D.
2004-12-27  4:09           ` Richard Stallman
2004-12-27  4:42             ` Luc Teirlinck
2004-12-26  2:43         ` Juri Linkov
2004-12-27  4:09           ` Richard Stallman
2005-01-04  9:05     ` Juri Linkov
2004-12-21 21:57 ` Kevin Rodgers
2004-12-22  0:17   ` Luc Teirlinck
2004-12-22  0:17 ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200412311504.iBVF4QO05860@raven.dms.auburn.edu \
    --to=teirllm@dms.auburn.edu \
    --cc=emacs-devel@gnu.org \
    --cc=jan.h.d@swipnet.se \
    --cc=juri@jurta.org \
    --cc=rms@gnu.org \
    --cc=yamaoka@jpl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).