version 1.7, 2002/01/18 08:37:08 |
version 1.8, 2002/02/14 00:11:46 |
|
|
{ |
{ |
VIDEO *vp; |
VIDEO *vp; |
|
|
|
c &= 0xff; |
|
|
vp = vscreen[vtrow]; |
vp = vscreen[vtrow]; |
if (vtcol >= ncol) |
if (vtcol >= ncol) |
vp->v_text[ncol - 1] = '$'; |
vp->v_text[ncol - 1] = '$'; |
|
|
{ |
{ |
VIDEO *vp; |
VIDEO *vp; |
|
|
|
c &= 0xff; |
|
|
vp = vscreen[vtrow]; |
vp = vscreen[vtrow]; |
|
|
if (vtcol >= ncol) |
if (vtcol >= ncol) |
vp->v_text[ncol - 1] = '$'; |
vp->v_text[ncol - 1] = '$'; |
else if (c == '\t' |
else if (c == '\t' |
|
|
) { |
) { |
do { |
do { |
vtpute(' '); |
vtpute(' '); |
} |
} while (((vtcol + lbound) & 0x07) != 0 && vtcol < ncol); |
while (((vtcol + lbound) & 0x07) != 0 && vtcol < ncol); |
|
} else if (ISCTRL(c) != FALSE) { |
} else if (ISCTRL(c) != FALSE) { |
vtpute('^'); |
vtpute('^'); |
vtpute(CCHR(c)); |
vtpute(CCHR(c)); |
|
|
} |
} |
} |
} |
hflag = FALSE; /* Not hard. */ |
hflag = FALSE; /* Not hard. */ |
wp = wheadp; |
for (wp = wheadp; wp != NULL; wp = wp->w_wndp) { |
while (wp != NULL) { |
/* |
if (wp->w_flag != 0) { /* Need update. */ |
* Nothing to be done. |
if ((wp->w_flag & WFFORCE) == 0) { |
*/ |
lp = wp->w_linep; |
if (wp->w_flag == 0) |
for (i = 0; i < wp->w_ntrows; ++i) { |
continue; |
if (lp == wp->w_dotp) |
|
goto out; |
if ((wp->w_flag & WFFORCE) == 0) { |
if (lp == wp->w_bufp->b_linep) |
lp = wp->w_linep; |
break; |
for (i = 0; i < wp->w_ntrows; ++i) { |
lp = lforw(lp); |
if (lp == wp->w_dotp) |
} |
goto out; |
|
if (lp == wp->w_bufp->b_linep) |
|
break; |
|
lp = lforw(lp); |
} |
} |
i = wp->w_force; /* Reframe this one. */ |
} |
if (i > 0) { |
/* |
--i; |
* Put the middle-line in place. |
if (i >= wp->w_ntrows) |
*/ |
i = wp->w_ntrows - 1; |
i = wp->w_force; |
} else if (i < 0) { |
if (i > 0) { |
i += wp->w_ntrows; |
--i; |
if (i < 0) |
if (i >= wp->w_ntrows) |
i = 0; |
i = wp->w_ntrows - 1; |
} else |
} else if (i < 0) { |
i = wp->w_ntrows / 2; |
i += wp->w_ntrows; |
lp = wp->w_dotp; |
if (i < 0) |
while (i != 0 && lback(lp) != wp->w_bufp->b_linep) { |
i = 0; |
--i; |
} else |
lp = lback(lp); |
i = wp->w_ntrows / 2; /* current center, |
} |
* no change */ |
wp->w_linep = lp; |
|
wp->w_flag |= WFHARD; /* Force full. */ |
/* |
|
* Find the line |
|
*/ |
|
lp = wp->w_dotp; |
|
while (i != 0 && lback(lp) != wp->w_bufp->b_linep) { |
|
--i; |
|
lp = lback(lp); |
|
} |
|
wp->w_linep = lp; |
|
wp->w_flag |= WFHARD; /* Force full. */ |
out: |
out: |
lp = wp->w_linep; /* Try reduced update. */ |
lp = wp->w_linep; /* Try reduced update. */ |
i = wp->w_toprow; |
i = wp->w_toprow; |
if ((wp->w_flag & ~WFMODE) == WFEDIT) { |
if ((wp->w_flag & ~WFMODE) == WFEDIT) { |
while (lp != wp->w_dotp) { |
while (lp != wp->w_dotp) { |
++i; |
++i; |
lp = lforw(lp); |
lp = lforw(lp); |
} |
} |
|
vscreen[i]->v_color = CTEXT; |
|
vscreen[i]->v_flag |= (VFCHG | VFHBAD); |
|
vtmove(i, 0); |
|
for (j = 0; j < llength(lp); ++j) |
|
vtputc(lgetc(lp, j)); |
|
vteeol(); |
|
} else if ((wp->w_flag & (WFEDIT | WFHARD)) != 0) { |
|
hflag = TRUE; |
|
while (i < wp->w_toprow + wp->w_ntrows) { |
vscreen[i]->v_color = CTEXT; |
vscreen[i]->v_color = CTEXT; |
vscreen[i]->v_flag |= (VFCHG | VFHBAD); |
vscreen[i]->v_flag |= (VFCHG | VFHBAD); |
vtmove(i, 0); |
vtmove(i, 0); |
for (j = 0; j < llength(lp); ++j) |
if (lp != wp->w_bufp->b_linep) { |
vtputc(lgetc(lp, j)); |
for (j = 0; j < llength(lp); ++j) |
vteeol(); |
vtputc(lgetc(lp, j)); |
} else if ((wp->w_flag & (WFEDIT | WFHARD)) != 0) { |
lp = lforw(lp); |
hflag = TRUE; |
|
while (i < wp->w_toprow + wp->w_ntrows) { |
|
vscreen[i]->v_color = CTEXT; |
|
vscreen[i]->v_flag |= (VFCHG | VFHBAD); |
|
vtmove(i, 0); |
|
if (lp != wp->w_bufp->b_linep) { |
|
for (j = 0; j < llength(lp); ++j) |
|
vtputc(lgetc(lp, j)); |
|
lp = lforw(lp); |
|
} |
|
vteeol(); |
|
++i; |
|
} |
} |
|
vteeol(); |
|
++i; |
} |
} |
if ((wp->w_flag & WFMODE) != 0) |
|
modeline(wp); |
|
wp->w_flag = 0; |
|
wp->w_force = 0; |
|
} |
} |
wp = wp->w_wndp; |
if ((wp->w_flag & WFMODE) != 0) |
|
modeline(wp); |
|
wp->w_flag = 0; |
|
wp->w_force = 0; |
} |
} |
lp = curwp->w_linep; /* Cursor location. */ |
lp = curwp->w_linep; /* Cursor location. */ |
currow = curwp->w_toprow; |
currow = curwp->w_toprow; |