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