From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Luc Teirlinck Newsgroups: gmane.emacs.devel Subject: Re: undo in loaddefs.el buffer Date: Thu, 30 Dec 2004 20:14:30 -0600 (CST) Message-ID: <200412310214.iBV2EUx05267@raven.dms.auburn.edu> References: <200412211414.iBLEEZ903426@raven.dms.auburn.edu> <200412211541.iBLFfBc03861@raven.dms.auburn.edu> <87llbonyup.fsf@jurta.org> <200412260206.iBQ26wG17970@raven.dms.auburn.edu> <41CEE3B8.9090600@swipnet.se> <200412270231.iBR2VDE19709@raven.dms.auburn.edu> <41CFE247.8090409@swipnet.se> <200412280503.iBS53deD002564@manatee.dms.auburn.edu> <200412290207.iBT27Gk0006913@manatee.dms.auburn.edu> <200412300114.iBU1EY001351@moose.dms.auburn.edu> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1104459417 19639 80.91.229.6 (31 Dec 2004 02:16:57 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 31 Dec 2004 02:16:57 +0000 (UTC) Cc: juri@jurta.org, yamaoka@jpl.org, jan.h.d@swipnet.se, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 31 03:16:49 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CkCLQ-0006vX-00 for ; Fri, 31 Dec 2004 03:16:49 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CkCWP-0005gx-Ky for ged-emacs-devel@m.gmane.org; Thu, 30 Dec 2004 21:28:09 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CkCW9-0005dD-0G for emacs-devel@gnu.org; Thu, 30 Dec 2004 21:27:53 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CkCW6-0005b2-2z for emacs-devel@gnu.org; Thu, 30 Dec 2004 21:27:51 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CkCW5-0005aN-Fc for emacs-devel@gnu.org; Thu, 30 Dec 2004 21:27:49 -0500 Original-Received: from [131.204.53.104] (helo=manatee.dms.auburn.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CkCJG-0003JR-Ll; Thu, 30 Dec 2004 21:14:35 -0500 Original-Received: from raven.dms.auburn.edu (raven.dms.auburn.edu [131.204.53.29]) by manatee.dms.auburn.edu (8.12.10/8.12.10) with ESMTP id iBV2EU0P003804; Thu, 30 Dec 2004 20:14:34 -0600 (CST) Original-Received: (from teirllm@localhost) by raven.dms.auburn.edu (8.11.7p1+Sun/8.11.7) id iBV2EUx05267; Thu, 30 Dec 2004 20:14:30 -0600 (CST) X-Authentication-Warning: raven.dms.auburn.edu: teirllm set sender to teirllm@dms.auburn.edu using -f Original-To: rms@gnu.org In-reply-to: (message from Richard Stallman on Thu, 30 Dec 2004 11:43:53 -0500) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:31630 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:31630 Maybe there is one difference between timers and idle timers that is relevant to the problem. Many timers only run once. There is no problem for them. Theoretically, idle timers can also only run once, but that happens rarely in practice. The following slightly changed version of my latest patch makes clear that we are talking about repeatedly running timers: ===File ~/os.texi-diff====================================== *** os.texi 29 Dec 2004 15:49:18 -0600 1.67 --- os.texi 30 Dec 2004 19:54:02 -0600 *************** *** 1368,1377 **** timer to call a function that takes substantial time to run is likely to be annoying. ! 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. @deffn Command run-at-time time repeat function &rest args This sets up a timer that calls the function @var{function} with --- 1368,1379 ---- timer to call a function that takes substantial time to run is likely to be annoying. ! A timer that runs at regular intervals and edits a buffer in which ! undo is enabled, should be careful not to accumulate one huge undo ! entry over time, since that could yield memory problems. To avoid ! this, it is usually necessary for the timer to explicitly call ! @code{undo-boundary} once at the beginning and once just before ! exiting. Emacs won't do that automatically (@pxref{Undo}). @deffn Command run-at-time time repeat function &rest args This sets up a timer that calls the function @var{function} with *************** *** 1486,1496 **** input. Then it becomes idle again, and all the idle timers that are set up to repeat will subsequently run another time, one by one. - It is legitimate for an idle timer to edit the current buffer. If - it does, it should explicitly call @code{undo-boundary} once at the - beginning and once just before exiting, since Emacs won't do that - automatically for an idle timer. - @defun cancel-timer timer Cancel the requested action for @var{timer}, which should be a value previously returned by @code{run-at-time} or @code{run-with-idle-timer}. --- 1488,1493 ---- ============================================================