until first character on next line is output.
SCCS-vsn: lib/libcurses/refresh.c 5.39
-static char sccsid[] = "@(#)refresh.c 5.38 (Berkeley) %G%";
+static char sccsid[] = "@(#)refresh.c 5.39 (Berkeley) %G%";
#endif /* not lint */
#include <curses.h>
#endif /* not lint */
#include <curses.h>
curscr->flags &=
~__WSTANDOUT;
}
curscr->flags &=
~__WSTANDOUT;
}
- if (!curwin) {
- csp->attr = nsp->attr;
- putchar(csp->ch = nsp->ch);
- } else
- putchar(nsp->ch);
-
+ if (!(win->flags & __SCROLLWIN)) {
+ if (!curwin) {
+ csp->attr = nsp->attr;
+ putchar(csp->ch = nsp->ch);
+ } else
+ putchar(nsp->ch);
+ }
if (wx + win->begx < curscr->maxx) {
domvcur(ly, wx + win->begx,
win->begy + win->maxy - 1,
if (wx + win->begx < curscr->maxx) {
domvcur(ly, wx + win->begx,
win->begy + win->maxy - 1,
ly = win->begy + win->maxy - 1;
lx = win->begx + win->maxx - 1;
return (OK);
ly = win->begy + win->maxy - 1;
lx = win->begx + win->maxx - 1;
return (OK);
- } else
- if (win->flags & __SCROLLWIN) {
- lx = --wx;
- return (ERR);
- }
- if (!curwin) {
- csp->attr = nsp->attr;
- putchar(csp->ch = nsp->ch);
- csp++;
- } else
- putchar(nsp->ch);
-
+ }
+ if (wx < win->maxx || wy < win->maxy - 1 ||
+ !(win->flags & __SCROLLWIN)) {
+ if (!curwin) {
+ csp->attr = nsp->attr;
+ putchar(csp->ch = nsp->ch);
+ csp++;
+ } else
+ putchar(nsp->ch);
+ }
#ifdef DEBUG
__TRACE("makech: putchar(%c)\n", nsp->ch & 0177);
#endif
#ifdef DEBUG
__TRACE("makech: putchar(%c)\n", nsp->ch & 0177);
#endif
tputs(UC, 0, __cputchar);
}
nsp++;
tputs(UC, 0, __cputchar);
}
nsp++;
#ifdef DEBUG
__TRACE("makech: 2: wx = %d, lx = %d\n", wx, lx);
#endif
#ifdef DEBUG
__TRACE("makech: 2: wx = %d, lx = %d\n", wx, lx);
#endif
if (lx == wx + win->begx) /* If no change. */
break;
lx = wx + win->begx;
if (lx == wx + win->begx) /* If no change. */
break;
lx = wx + win->begx;