The following code behaves differently in 21.4.21 and 21.5.28:
(let ((w (selected-window))
(c (current-window-configuration)))
(split-window)
(view-buffer-other-window "foo")
(delete-window w)
(set-window-configuration c)
(window-live-p w))
Paste the above into *scratch* and execute it -- value is t in 21.4.21
and nil in 21.5.28. Basically, window identity is not preserved in
configurations, or, therefore, by save-window-excursion. This
causes no end of trouble for ecb.
The following excerpt from the section 38.1 of the Lispref
documentation ("Basic Concepts of Emacs Windows") suggests this is an
unintended regression:
Once removed from the frame, the window is effectively deleted and
should not be used, _even though there may still be references to
it_ from other Lisp objects. Restoring a saved window configuration
is the only way for a window no longer on the screen to come back to
life.
Can anyone involved in replacing the old C implementation of window
configurations (which did save the window objects themselves, along
with their properties) with the new Lisp implementation (which does
_not_ save the window objects) explain the reasoning behind this
incompatible (and as far as I can tell by searching pretty hard,
undocumented) change?
Thanks,
ht
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht(a)inf.ed.ac.uk
URL:
http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta