My reading of the documentation goes with Stephen's, but that's pretty
much beside the point, I guess, although it's also clear that at least
one substantial application, namely ecb, depends on identity
preservation.
The substantive question is: what's the real functionality that is
lost when identity preservation is lost, and can we get it back w/o
losing the major benefits of the 21.5 promotion of much of the window
code from C to elisp?
I can see two alternative paths, doubtless there are others:
1) (Re-)introduce identity preservation into the code. I haven't
looked into this in detail, but a quick look at the code suggests
that if we a) included the windows themselves in saved
configurations and b) factored most of split-window out into a
function with an additional argument, namely the window to use for
the new pane, and called _that_ from set-window-configuration, we
could do this. I _think_ all this would require at the C level
would be a function which 'revived' a 'dead' window by flipping
the relevant bit.
2) Introduce a new souped-up version of save-window-excursion, call
it save-window-bindings for the sake of argument, looks like this:
(save-window-bindings (symbols. . .)
...)
where the semantics is as for save-window-excursion, with the
additional guarantee that each of the symbols which is bound to a
window will be reset if necessary to the new window which
corresponds (in the 'restored' configuration) to the (now dead)
window it was bound to going in.
This would also require adding windows themselves to saved
configurations, but no changes at the C level.
Neither of these is perfect, this is just intended to get some
discussion started. (1) has the flaw that it exposes entry points
which will have unpredictable and probably catastrophic effects if
used in other than the context for which they are intended. (2) has
the flaw that it will only repair variable bindings and not, for
example, windows held in lists or vectors. . .
Thoughts?
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