From: <ht...@in...> - 2008-02-11 10:22:40
|
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...@in... URL: http://www.ltg.ed.ac.uk/~ht/ [mail really from me _always_ has this .sig -- mail without it is forged spam] |