| W4 W2 |--- | W5 - ------- W3
i1 | \ | i2 (i1) --> w2 (i2) | | | | w3 (i1) i3 (i2) | \ | w4 (i3) | | minibuf w5 (i3) That structure is correct. w4 ------ w5 ------ w3 i1 | \ | \ | i3 (i1) | | \ | w3 (i1) \ | w4 (i3) | | minibuf w5 (i3) That structure is erroneous. i3 should not exist. I think it is correct up to the last delete of w2. But what the rule should be for eliminating i3 in the last step I don't know. I think this is the desired last step: i1 | \ | \ | w4 (i1) | | | w5 (i1) | | | w3 (i1) | minibuf i1 possibly replaced with i3. The incorrect structure is in i3, so I think it should eliminate i3. The criterion for doing so is that i3 is a vchild of its parent and also has a vchild. That should never occur. After the code operates on i3, putting it in place of i2, it check if i3 is a vchild and has a vchild. If so, it should to eliminate i3, putting w4 into its place in the structure, and make w3 be the next of w5. Want to implement that? (The same thing should be done with hchild.) _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel