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

From: martin rudalics <[email-masked]>
Date: Mon, 16 Nov 2015 20:46:26 +0100

> about a year ago I reported that `write-file' sometimes writes the wrong
 > buffer to the destination file. Unfortunately, I had no feedback regarding
 > this. When I checked today, the bug is still there.

Sorry.  I could have sworn we fixed that then.

 > The problem occurs when a function on the hook
 > `window-size-change-functions' change the current buffer. The functions in
 > this hook are executed when `y-or-n-p' is called, which is used by
 > `write-file' to verify that it is OK to overwrite an existing file. One
 > such function is `follow-window-size-change' in follow.el.
 >
 > This problem is not limited to `write-file' -- all functions calling
 > `y-or-n-p' are affected by this!
 >
 > Of course, it would be relatively straight forward to modify the offending
 > function (and all other similar functions). However, a more robust solution
 > would be for the code that calls the functions on the hook to ensure that
 > it isn't derailed when the buffer is changed.
 >
 > Personally, I don't know that part of the code well enough to do this
 > change. Martin, is this something that you could look into, or suggest
 > someone who can?

Conceptually it should be easy to do that.  Save/restore current buffer,
selected window and frame.  But Alan (concerned about ‘follow-mode’),
Pip (who unfortunately disappeared) and Eli are currently discussing how
to fix ‘window-size-change-functions’ in various other ways as well.
I'll try to get the fix of this bug applied there too.

martin