GNU bug report logs - #19576
24.4; Broken function in `window-size-change-functions' cause `write-file' to write the wrong buffer

Previous Next

Package: emacs;

Reported by: Anders Lindgren <andlind <at> gmail.com>

Date: Mon, 12 Jan 2015 23:39:02 UTC

Severity: normal

Found in version 24.4

Done: Anders Lindgren <andlind <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #169 received at 19576 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Anders Lindgren <andlind <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>
Cc: Alan Mackenzie <acm <at> muc.de>, 19576 <at> debbugs.gnu.org,
 Juri Linkov <juri <at> linkov.net>
Subject: Re: bug#19576: write-file writes the wrong buffer
Date: Sat, 21 Nov 2015 19:27:38 +0100
> However, while we are discussing window-size-change-functions -- I noticed
> that on OS X and Windows, it is not called when the user manually resized a
> frame, whereas on X11 it is. It seems logical that is should be called --
> should I file this as a bug (or one for each interface)?

I can't imagine how this got called for X11 - something else must have
been intervening here.

Resizing a frame calls ‘window-configuration-change-hook’ instead.  In
Emacs 22 change_frame_size_1 still had

  /* This isn't quite a no-op: it runs window-configuration-change-hook.  */
  Fset_window_buffer (FRAME_SELECTED_WINDOW (f),
		      XWINDOW (FRAME_SELECTED_WINDOW (f))->buffer, Qt);

while in Emacs 23 change_frame_size_1 already uses

  run_window_configuration_change_hook (f);

Obviously ‘window-size-change-functions’ seems more logical here but
might break packages that expect the old behavior.  Running both hooks
for frame resizes doesn't seem overly clever but we do so already when
deleting and splitting windows.  Anyway, this is a can of worms.

martin





This bug report was last modified 9 years and 179 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.