emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: address@hidden: enlarge-window with preserve-before non-nil]


From: Jan D.
Subject: Re: address@hidden: enlarge-window with preserve-before non-nil]
Date: Sat, 14 May 2005 20:48:59 +0200
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Richard Stallman wrote:

I looked a bit, but I am not sure how it shall work. If I just to three windows, in the obvious way (C-x 2, C-x 2), I get three windows, one 11 lines, one 12 lines and one 24 lines. This gives me this window configuration:

0x86b6b10: vchild: 0x861d830, hchild: 0x0, next: 0x861d9c8, parent: 0x0, h: 47 0x861d830: vchild: 0x0, hchild: 0x0, next: 0x8694a50, parent: 0x86b6b10, h: 11 0x8694a50: vchild: 0x0, hchild: 0x0, next: 0x86b6ca8, parent: 0x86b6b10, h: 12
   0x86b6ca8: vchild: 0x0, hchild: 0x0, next: 0x0, parent: 0x86b6b10, h: 24
   0x861d9c8: vchild: 0x0, hchild: 0x0, next: 0x0, parent: 0x0, h: 1

That's the correct configuration for such a case.


But if I create the same three windows (11, 12 and 24 lines) with the method below, I get this window configuration:

0x8833558: vchild: 0x87f9978, hchild: 0x0, next: 0x861d9c8, parent: 0x0, h: 47 0x87f9978: vchild: 0x86a7a48, hchild: 0x0, next: 0x8820a48, parent: 0x8833558, h: 23 0x86a7a48: vchild: 0x0, hchild: 0x0, next: 0x87b6d68, parent: 0x87f9978, h: 11
   0x87b6d68: vchild: 0x0, hchild: 0x0, next: 0x0, parent: 0x87f9978, h: 12
   0x8820a48: vchild: 0x0, hchild: 0x0, next: 0x0, parent: 0x8833558, h: 24
   0x861d9c8: vchild: 0x0, hchild: 0x0, next: 0x0, parent: 0x0, h: 1

This is a bug.  A window which is a vchild should never have a vchild.

Can you determine at which step the structure first becomes
incorrect?  That is where the bug is, I think.


I think it is correct up to the last delete, but correct me if I'm wrong. Steps in the chain are represented like this (arrow down = next, arrow diagonal = vchild, arrow horizontal = hchild, parent in parentesis):

w1 | w2

i0 -----> w1 (i0)
 |             |
 v             v
minibuf    w2 (i0)



   | W2
W1  |---
   | W3

i0 ----> w1 (i0)
 |        |
minibuf   i1 (i0)
           \
            w2 (i1)
            |
w3 (u1)


w2
-----
w3

i1
 |\
 | \
 |  \
 |   w2 (i1)
 |     |
minibuf w3 (i1)



W2 | W4
--------
  W3

i1
 |\
 | i2 (i1) --> w2 (i2)
 |   |          |
 |  w3 (i1)    w4 (i2)
| minibuf

   | W4
W2  |---
   | W5
- -------
   W3


 i1
 | \
 |  i2 (i1) --> w2 (i2)
 |   |            |
 |  w3 (i1)     i3 (i2)
 |                 \
 |                 w4 (i3)
 |                   |
minibuf            w5 (i3)




 w4
------
 w5
------
 w3

 i1
 | \
 |  \
 |   i3 (i1)
 |    |    \
 | w3 (i1)  \
 |          w4 (i3)
 |           |
minibuf      w5 (i3)


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.



        Jan D.












reply via email to

[Prev in Thread] Current Thread [Next in Thread]