static char *sccsid
= "@(#)wwframe.c 3.6 83/08/19";
#define frameok(w, r, c) (w1 = wwindex[wwsmap[r][c]], \
!w1->ww_hasframe || w1->ww_order > (w)->ww_order)
smap
= &wwsmap
[r
+ 1][c
+ 1];
b2
= c
< 0 || frameok(w
, r
, c
);
for (; c
< w
->ww_w
.r
; c
++) {
a3
= w
->ww_index
== *smap
++;
b3
= c
+ 1 >= wwncol
|| frameok(w
, r
, c
+ 1);
wwframec(wframe
, r
, c
, code
|WWF_TOP
, 1);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_L
|WWF_TOP
, 1);
if (w
->ww_w
.b
< wwnrow
) {
smap
= &wwsmap
[r
- 1][c
+ 1];
b2
= c
< 0 || frameok(w
, r
, c
);
for (; c
< w
->ww_w
.r
; c
++) {
a3
= w
->ww_index
== *smap
++;
b3
= c
+ 1 >= wwncol
|| frameok(w
, r
, c
+ 1);
wwframec(wframe
, r
, c
, code
, 1);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_L
, 1);
b2
= r
< 0 || frameok(w
, r
, c
);
for (; r
< w
->ww_w
.b
; r
++) {
a3
= w
->ww_index
== wwsmap
[r
+ 1][c
+ 1];
b3
= r
+ 1 >= wwnrow
|| frameok(w
, r
+ 1, c
);
wwframec(wframe
, r
, c
, code
, 1);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_U
, 1);
if (w
->ww_w
.r
< wwncol
) {
b2
= r
< 0 || frameok(w
, r
, c
);
for (; r
< w
->ww_w
.b
; r
++) {
a3
= w
->ww_index
== wwsmap
[r
+ 1][c
- 1];
b3
= r
+ 1 >= wwnrow
|| frameok(w
, r
+ 1, c
);
wwframec(wframe
, r
, c
, code
, 1);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_U
, 1);
wwframec(f
, rr
, cc
, code
, dofmap
)
if (rr
< f
->ww_w
.t
|| rr
>= f
->ww_w
.b
|| cc
< f
->ww_w
.l
|| cc
>= f
->ww_w
.r
)
w
= wwindex
[wwsmap
[rr
][cc
]];
if (w
->ww_order
> f
->ww_order
) {
if ((w
->ww_win
[r
][c
] |= WWM_COV
) == WWM_COV
)
w
->ww_cov
[r
][c
] = f
->ww_index
;
wwsmap
[rr
][cc
] = f
->ww_index
;
register char *win
= &f
->ww_win
[r
][c
];
if (oldcode
!= code
&& (code
& WWF_LABEL
) == 0) {
frame
= tt
.tt_frame
[code
& WWF_MASK
] & WWC_CMASK
;
f
->ww_buf
[f
->ww_scroll
+ r
][c
].c_w
= frame
;
if (wwsmap
[rr
][cc
] == f
->ww_index
) {
wwns
[rr
][cc
].c_w
= frame
;