window configurations no longer (since 21.5) include windows ! ?

Michael Sperber sperber at deinprogramm.de
Sun Feb 10 11:57:00 EST 2008


ht at inf.ed.ac.uk (Henry S. Thompson) writes:

> 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.

While this wasn't exactly intentional, identity preservation was a
kludge with the old implementation that tied down a number of internal
invariants related to GC we wanted to get rid of.  As the new
implementation is in Elisp, identity preservation essentially isn't
possible anymore without restoring the old kludges we wanted to get rid
of in the first place.

Identity preservation was (to my knowledge) never documented, which is
why I assumed ditching it would be OK.  I did a review of the existing
package code at the time to make sure the existing code would continue
working.

So my recommendation is to try to get rid of the reliance on identity
preservation.  Sorry for not being more helpful :-(
 
-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla



More information about the XEmacs-Beta mailing list