static char *sccsid
= "@(#)wwwrite.c 3.12 83/09/15";
if (hascursor
= w
->ww_hascursor
)
if (w
->ww_wstate
== 0 && !ISCTRL(*p
)) {
register union ww_char
*bp
;
wwinschar(w
, w
->ww_cur
.r
, w
->ww_cur
.c
,
*p
++ | w
->ww_modes
<< WWC_MSHIFT
);
bp
= bq
= &w
->ww_buf
[w
->ww_cur
.r
][w
->ww_cur
.c
];
if ((i
= w
->ww_b
.r
- w
->ww_cur
.c
) > n
)
while (--i
>= 0 && !ISCTRL(*p
))
bp
++->c_w
= *p
++ | w
->ww_modes
<< WWC_MSHIFT
;
/* use col as a temporary */
if (w
->ww_cur
.r
>= w
->ww_i
.t
&& w
->ww_cur
.r
< w
->ww_i
.b
)
register union ww_char
*ns
;
win
= &w
->ww_win
[w
->ww_cur
.r
][col
];
smap
= &wwsmap
[w
->ww_cur
.r
][col
];
ns
= &wwns
[w
->ww_cur
.r
][col
];
touched
= &wwtouched
[w
->ww_cur
.r
];
if (*smap
++ == w
->ww_index
) {
if (w
->ww_cur
.c
>= w
->ww_w
.r
) {
if (++w
->ww_cur
.r
>= w
->ww_w
.b
) {
w
->ww_cur
.r
= w
->ww_w
.b
- 1;
if (w
->ww_w
.b
< w
->ww_b
.b
)
8 - (w
->ww_cur
.c
- w
->ww_w
.l
& 7);
if (w
->ww_cur
.c
>= w
->ww_w
.r
) {
if (--w
->ww_cur
.c
< w
->ww_w
.l
) {
w
->ww_cur
.c
= w
->ww_w
.r
- 1;
if (--w
->ww_cur
.r
< w
->ww_w
.t
) {
if (w
->ww_w
.t
> w
->ww_b
.t
)
if (++w
->ww_cur
.c
>= w
->ww_w
.r
) {
w
->ww_buf
-= w
->ww_w
.t
- w
->ww_b
.t
;
w
->ww_b
.b
= w
->ww_b
.t
+ w
->ww_b
.nr
;
wwclreos(w
, w
->ww_w
.t
, w
->ww_w
.l
);
wwclreos(w
, w
->ww_cur
.r
, w
->ww_cur
.c
);
wwclreol(w
, w
->ww_cur
.r
, w
->ww_cur
.c
);
wwinsline(w
, w
->ww_cur
.r
);
wwdelline(w
, w
->ww_cur
.r
);
wwdelchar(w
, w
->ww_cur
.r
, w
->ww_cur
.c
);
w
->ww_cur
.r
= w
->ww_w
.t
+ (*p
++ - ' ') % w
->ww_w
.nr
;
w
->ww_cur
.c
= w
->ww_w
.l
+ (*p
++ - ' ') % w
->ww_w
.nc
;