Luc Teirlinck <[EMAIL PROTECTED]> wrote:

> Bill Wohler wrote:
> 
>    By the way, the only two desktop-related items in my .emacs are turning
>    on desktop-save-mode (which is probably obvious ;-) and this:
> 
>      (run-at-time 60 300 'desktop-save "~") ;it would be better to catch HUP 
> and
>                                           ;call desktop-save before exiting
> 
> The latter was your problem.   From `(elisp)Timers':
> 
>      It is usually a bad idea for timer functions to alter buffer
>   contents.  When they do, they usually should call `undo-boundary' both
>   before and after changing the buffer, to separate the timer's changes
>   from user commands' changes and prevent a single undo entry from
>   growing to be quite large.
> 
> So it is no surprise that you accumulated such a large single undo entry.

Thanks for the information. Since I don't understand the mechanics of
desktop, I have a couple of questions about that. First, I thought
desktop-save just saves the buffer to a file. Is it really altering the
the *desktop* buffer? Oh, running desktop-save a couple of times shows
that it at least updates the Created header field. OK, desktop-save must
gather buffer information, write it to *desktop*, and *then* save it to
a file. Right?

Second, I also don't understand the mechanics of undo very well. I was
under the impression that undo-boundary only grouped a set of changes
into a single undo entry. As I sit here writing, only a limited amount
of changes are saved and at some point the oldest undo information will
be discarded. How is the timer different?

Interesting, as I typed this, the timer had run a couple of times (I was
thinking and trying to understand desktop and undo). I re-ran `C-h v
buffer-undo-list' a few times too. It just produced buffers with only 35
kB, not 68 kB.

>    Right now my desktop buffer is 32 kB;
> 
> So that is approximately 32 kB every five minutes.  After eight hours,
> you exceed 3M.
> 
> Anyway, my patch, or disabling undo, completely gets rid of this problem.

So, which one should I apply? Before I fix my timer ;-).

If the *desktop* buffer is ephemeral and recreated when desktop-save is
run, it seems that disabling undo is the proper course of action.
Otherwise, preserving undo while protecting against abuse would be wise.
What do you think?

-- 
Bill Wohler <[EMAIL PROTECTED]>  http://www.newt.com/wohler/  GnuPG ID:610BD9AD
Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian!
If you're passed on the right, you're in the wrong lane.


_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to