static char *sccsid
= "@(#)wwdelchar.c 3.5 83/09/14";
int row
= line
- w
->ww_scroll
;
int srow
= row
+ w
->ww_w
.t
;
int scol
= col
+ w
->ww_w
.l
;
register union ww_char
*p
, *q
;
p
= &w
->ww_buf
[line
][col
];
for (i
= w
->ww_w
.nc
- col
- 1; --i
>= 0;)
* If can't see it, just return.
if (srow
< w
->ww_i
.t
|| srow
>= w
->ww_i
.b
|| w
->ww_i
.r
<= 0 || w
->ww_i
.r
<= scol
)
* Now find out how much is actually changed, and fix wwns.
register union ww_char
*buf
;
register union ww_char
*ns
;
smap
= &wwsmap
[srow
][scol
];
for (i
= w
->ww_i
.r
- scol
; i
> 0 && *smap
++ != w
->ww_index
; i
--)
buf
= &w
->ww_buf
[line
][col
];
win
= &w
->ww_win
[row
][col
];
touched
= &wwtouched
[srow
];
if ((*win
& (WWM_COV
|WWM_GLS
)) != 0) {
* Can/Should we use delete character?
if (tt
.tt_delchar
!= 0 && nvis
> (wwncol
- scol
) / 2) {
register union ww_char
*p
, *q
;
(*tt
.tt_move
)(srow
, scol
);
for (i
= wwncol
- scol
; --i
> 0;)