static char sccsid
[] = "@(#)wwframe.c 3.16 %G%";
* Copyright (c) 1983 Regents of the University of California,
* All rights reserved. Redistribution permitted subject to
* the terms of the Berkeley Software License Agreement.
#define frameok(w, r, c) (w1 = wwindex[wwsmap[r][c]], \
w1->ww_fmap || w1->ww_order > (w)->ww_order)
smap
= &wwsmap
[r
+ 1][c
+ 1];
b2
= c
< 0 || frameok(w
, r
, c
);
for (; c
< w
->ww_i
.r
; c
++) {
a3
= w
->ww_index
== *smap
++;
b3
= frameok(w
, r
, c
+ 1);
wwframec(wframe
, r
, c
, code
|WWF_TOP
);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_L
|WWF_TOP
);
if (w
->ww_w
.b
< wwnrow
) {
smap
= &wwsmap
[r
- 1][c
+ 1];
b2
= c
< 0 || frameok(w
, r
, c
);
for (; c
< w
->ww_i
.r
; c
++) {
a3
= w
->ww_index
== *smap
++;
b3
= frameok(w
, r
, c
+ 1);
wwframec(wframe
, r
, c
, code
);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_L
);
b2
= r
< 0 || frameok(w
, r
, c
);
for (; r
< w
->ww_i
.b
; r
++) {
a3
= w
->ww_index
== wwsmap
[r
+ 1][c
+ 1];
b3
= frameok(w
, r
+ 1, c
);
wwframec(wframe
, r
, c
, code
);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_U
);
if (w
->ww_w
.r
< wwncol
) {
b2
= r
< 0 || frameok(w
, r
, c
);
for (; r
< w
->ww_i
.b
; r
++) {
a3
= w
->ww_index
== wwsmap
[r
+ 1][c
- 1];
b3
= frameok(w
, r
+ 1, c
);
wwframec(wframe
, r
, c
, code
);
if ((a1
|| a2
) && b1
&& b2
)
wwframec(wframe
, r
, c
, WWF_U
);
if (r
< f
->ww_i
.t
|| r
>= f
->ww_i
.b
|| c
< f
->ww_i
.l
|| c
>= f
->ww_i
.r
)
if (w
->ww_order
> f
->ww_order
) {
if (w
!= &wwnobody
&& w
->ww_win
[r
][c
] == 0)
fmap
= &f
->ww_fmap
[r
][c
];
register char *win
= &f
->ww_win
[r
][c
];
if (*win
== WWM_GLS
&& *smap
== f
->ww_index
)
if (oldcode
!= code
&& (code
& WWF_LABEL
) == 0) {
frame
= tt
.tt_frame
[code
& WWF_MASK
];
f
->ww_buf
[r
][c
].c_w
= frame
;
if (wwsmap
[r
][c
] == f
->ww_index
) {
wwtouched
[r
] |= WWU_TOUCHED
;