Subject: Re: bug#19576: write-file writes the wrong buffer

From: Alan Mackenzie <[email-masked]>
Date: Mon, 23 Nov 2015 18:28:48 +0000

Hello, Eli and Martin.

On Mon, Nov 23, 2015 at 08:21:14PM +0200, Eli Zaretskii wrote:
> > Date: Sun, 22 Nov 2015 18:46:19 +0100
> > From: martin rudalics <[email-masked]>
> > CC: [email-masked], [email-masked], [email-masked], 
> >  [email-masked]
> > 
> >  > I couldn't think of any situation that would cause that.  It would
> >  > require a resize of windows outside redisplay that would also cause
> >  > redisplay to decide that the mini-window needs to be resized.  If you
> >  > can come up with a recipe for this, we should indeed remove the "just
> >  > once" promise.
> > 
> > A silly example with emacs -Q is
> > 
> > (defvar fun 0)
> > 
> > (defun fun (frame)
> >    "..."
> >    (message "\n%s\n" (setq fun (1+ fun))) (ding))
> > 
> > (add-hook 'window-size-change-functions 'fun)
> > 
> > This gets me complete erratic behavior when moving point.

> Maybe I'm blind, but I don't see anything erratic.

> > Another example is
> > 
> > (defvar fun 0)
> > 
> > (defun fun (frame)
> >    "..."
> >    (message "%s" (setq fun (1+ fun))) (ding))
> > 
> > (add-hook 'window-size-change-functions 'fun)
> > 
> > (progn
> >    (tool-bar-mode -1)
> >    (sit-for 1)
> >    (tool-bar-mode 1))
> > 
> > With my patch for bug#21975 this runs ‘fun’ twice when the tool-bar is
> > reenabled.  Likely due to my calculations of the real tool bar height.

> I see that, but does that mean we should remove the "once only"
> promise?

Or, alternatively, perhaps reconsider my proposed patch from a few days
ago which has w-s-c-functions run at most once for any redisplay
operation.

-- 
Alan Mackenzie (Nuremberg, Germany).