static char *sccsid
= "@(#)wwframe.c 2.1.1.1 83/08/09";
register struct ww
*w
, *wframe
;
char noleft
, noright
, notop
, nobot
;
&& (wwfmap
= wwalloc(wwnrow
, wwncol
, sizeof (char))) == 0)
noright
= w
->ww_w
.r
>= wwncol
;
nobot
= w
->ww_w
.b
>= wwnrow
;
for (i
= w
->ww_w
.l
; i
< w
->ww_w
.r
; i
++)
wwframex(w
, w
->ww_w
.t
, i
, wframe
);
for (i
= w
->ww_w
.l
; i
< w
->ww_w
.r
; i
++)
wwframex(w
, w
->ww_w
.b
- 1, i
, wframe
);
for (i
= w
->ww_w
.t
; i
< w
->ww_w
.b
; i
++)
wwframex(w
, i
, w
->ww_w
.l
, wframe
);
for (i
= w
->ww_w
.t
; i
< w
->ww_w
.b
; i
++)
wwframex(w
, i
, w
->ww_w
.r
- 1, wframe
);
wwframex(w
, r
, c
, wframe
)
register struct ww
*w
, *wframe
;
char ul
, top
, ur
, right
, lr
, bottom
, ll
, left
;
if (w
->ww_index
!= wwsmap
[r
][c
])
ul
= wwframeok(w
, r
- 1, c
- 1);
top
= wwframeok(w
, r
- 1, c
);
ur
= wwframeok(w
, r
- 1, c
+ 1);
right
= wwframeok(w
, r
, c
+ 1);
lr
= wwframeok(w
, r
+ 1, c
+ 1);
bottom
= wwframeok(w
, r
+ 1, c
);
ll
= wwframeok(w
, r
+ 1, c
- 1);
left
= wwframeok(w
, r
, c
- 1);
wwframec(r
- 1, c
- 1, wframe
, R
);
wwframec(r
- 1, c
, wframe
, L
);
wwframec(r
- 1, c
, wframe
, R
);
wwframec(r
- 1, c
+ 1, wframe
, L
);
wwframec(r
- 1, c
+ 1, wframe
, D
);
wwframec(r
, c
+ 1, wframe
, U
);
wwframec(r
, c
+ 1, wframe
, D
);
wwframec(r
+ 1, c
+ 1, wframe
, U
);
wwframec(r
+ 1, c
+ 1, wframe
, L
);
wwframec(r
+ 1, c
, wframe
, R
);
wwframec(r
+ 1, c
, wframe
, L
);
wwframec(r
+ 1, c
- 1, wframe
, R
);
wwframec(r
+ 1, c
- 1, wframe
, U
);
wwframec(r
, c
- 1, wframe
, D
);
wwframec(r
, c
- 1, wframe
, U
);
wwframec(r
- 1, c
- 1, wframe
, D
);
if (r
< 0 || r
>= wwnrow
|| c
< 0 || c
>= wwncol
)
w1
= wwindex
[wwsmap
[r
][c
]];
if (w1
->ww_hasframe
&& w1
->ww_order
<= w
->ww_order
)
wwframec(rr
, cc
, f
, code
)
if (rr
< 0 || rr
>= wwnrow
|| cc
< 0 || cc
>= wwncol
)
w2
= wwindex
[wwsmap
[rr
][cc
]];
if (w2
->ww_order
> f
->ww_order
) {
if ((w2
->ww_win
[r
][c
] |= WWM_COV
) == WWM_COV
)
w2
->ww_cov
[r
][c
] = f
->ww_index
;
wwsmap
[rr
][cc
] = f
->ww_index
;
code
= wwfmap
[rr
][cc
] |= code
;
if (f
->ww_win
[r
][c
] == WWM_GLS
)
f
->ww_win
[r
][c
] &= ~WWM_GLS
;
f
->ww_buf
[f
->ww_scroll
+ r
][c
].c_w
= tt
.tt_frame
[code
] & WWC_CMASK
;
if (wwsmap
[rr
][cc
] == f
->ww_index
)
wwns
[rr
][cc
].c_w
= tt
.tt_frame
[code
] & WWC_CMASK
;