*/
#ifndef lint
-static char sccsid[] = "@(#)overlay.c 5.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)overlay.c 5.2 (Berkeley) %G%";
#endif not lint
# include "curses.ext"
reg char *sp, *end;
reg int x, y, endy, endx, starty, startx;
+ reg int y1,y2;
# ifdef DEBUG
fprintf(outf, "OVERLAY(%0.2o, %0.2o);\n", win1, win2);
&win2->_y[y - win2->_begy][startx - win2->_begx], x);
touchline(win2, y, startx - win2->_begx, endx - win2->_begx);
}
- for (y = starty; y < endy; y++) {
- end = &win1->_y[y - win1->_begy][endx - win1->_begx];
+ y1 = starty - win1->_begy;
+ y2 = starty - win2->_begy;
+ for (y = starty; y < endy; y++, y1++, y2++) {
+ end = &win1->_y[y1][endx - win1->_begx];
x = startx - win2->_begx;
- for (sp = &win1->_y[y][startx - win1->_begx]; sp < end; sp++) {
- if (!isspace(*sp)) {
- waddch(win2, y - win2->_begy, x);
- waddch(win2, *sp);
- }
+ for (sp = &win1->_y[y1][startx - win1->_begx]; sp < end; sp++) {
+ if (!isspace(*sp))
+ mvwaddch(win2, y2, x, *sp);
x++;
}
}