version 1.4, 1997/02/25 00:05:14 |
version 1.5, 2001/11/19 19:02:18 |
|
|
* to avoid recursion, which might be a better idea. |
* to avoid recursion, which might be a better idea. |
*/ |
*/ |
wwwrite(w, p, n) |
wwwrite(w, p, n) |
register struct ww *w; |
struct ww *w; |
register char *p; |
char *p; |
int n; |
int n; |
{ |
{ |
int hascursor; |
int hascursor; |
|
|
if (w->ww_wstate == 0 && |
if (w->ww_wstate == 0 && |
(isprt(*p) || ISSET(w->ww_wflags, WWW_UNCTRL) && |
(isprt(*p) || ISSET(w->ww_wflags, WWW_UNCTRL) && |
isunctrl(*p))) { |
isunctrl(*p))) { |
register i; |
int i; |
register union ww_char *bp; |
union ww_char *bp; |
int col, col1; |
int col, col1; |
|
|
if (ISSET(w->ww_wflags, WWW_INSERT)) { |
if (ISSET(w->ww_wflags, WWW_INSERT)) { |
|
|
q = s; |
q = s; |
r = 0; |
r = 0; |
} else if (*p == '\t') { |
} else if (*p == '\t') { |
register tmp = 8 - (i - w->ww_w.l & 7); |
int tmp = 8 - (i - w->ww_w.l & 7); |
p++; |
p++; |
i += tmp; |
i += tmp; |
bp += tmp; |
bp += tmp; |
|
|
w->ww_cur.c = i; |
w->ww_cur.c = i; |
if (w->ww_cur.r >= w->ww_i.t |
if (w->ww_cur.r >= w->ww_i.t |
&& w->ww_cur.r < w->ww_i.b) { |
&& w->ww_cur.r < w->ww_i.b) { |
register union ww_char *ns = wwns[w->ww_cur.r]; |
union ww_char *ns = wwns[w->ww_cur.r]; |
register unsigned char *smap = |
unsigned char *smap = |
&wwsmap[w->ww_cur.r][col]; |
&wwsmap[w->ww_cur.r][col]; |
register char *win = w->ww_win[w->ww_cur.r]; |
char *win = w->ww_win[w->ww_cur.r]; |
int nchanged = 0; |
int nchanged = 0; |
|
|
bp = w->ww_buf[w->ww_cur.r]; |
bp = w->ww_buf[w->ww_cur.r]; |