Commit | Line | Data |
---|---|---|
064c6fd5 KA |
1 | # include "curses.ext" |
2 | ||
3 | /* | |
4 | * This routine scrolls the window up a line. | |
5 | * | |
b1e78d21 | 6 | * @(#)scroll.c 1.5 (Berkeley) %G% |
064c6fd5 KA |
7 | */ |
8 | scroll(win) | |
9 | reg WINDOW *win; { | |
10 | ||
11 | reg char *sp; | |
12 | reg int i; | |
13 | reg char *temp; | |
14 | ||
15 | if (!win->_scroll) | |
16 | return ERR; | |
17 | temp = win->_y[0]; | |
ef430c4c KA |
18 | for (i = 1; i < win->_maxy; i++) |
19 | win->_y[i - 1] = win->_y[i]; | |
20 | for (sp = temp; sp < &temp[win->_maxx]; ) | |
064c6fd5 KA |
21 | *sp++ = ' '; |
22 | win->_y[win->_maxy - 1] = temp; | |
064c6fd5 | 23 | if (win == curscr) { |
b1e78d21 | 24 | _putchar('\n'); |
064c6fd5 KA |
25 | if (!NONL) |
26 | win->_curx = 0; | |
27 | # ifdef DEBUG | |
28 | fprintf(outf, "SCROLL: win == curscr\n"); | |
a26deb78 | 29 | fflush(outf); |
064c6fd5 | 30 | # endif |
a26deb78 KM |
31 | } else { |
32 | if(win->_cury-- <= 0) | |
33 | win->_cury = 0; | |
064c6fd5 | 34 | # ifdef DEBUG |
064c6fd5 | 35 | fprintf(outf, "SCROLL: win [0%o] != curscr [0%o]\n",win,curscr); |
a26deb78 | 36 | fflush(outf); |
064c6fd5 | 37 | # endif |
a26deb78 | 38 | } |
ef430c4c | 39 | touchwin(win); |
064c6fd5 KA |
40 | return OK; |
41 | } |