- for (newx = x + (8 - (x & 07)); x < newx; x++)
- if (waddch(win, ' ') == ERR)
- return ERR;
- return OK;
- }
-
- default:
-# ifdef FULLDEBUG
- fprintf(outf, "ADDCH: 1: y = %d, x = %d, firstch = %d, lastch = %d\n", y, x, win->_firstch[y], win->_lastch[y]);
-# endif
- if (win->_flags & _STANDOUT)
- c |= _STANDOUT;
- set_ch(win, y, x, c);
- for (wp = win->_nextp; wp != win; wp = wp->_nextp)
- set_ch(wp, y, x, c);
- win->_y[y][x++] = c;
- if (x >= win->_maxx) {
- x = 0;
-newline:
- if (++y >= win->_maxy)
- if (win->_scroll) {
- wrefresh(win);
- scroll(win);
- --y;
- }
- else
- return ERR;
- }
-# ifdef FULLDEBUG
- fprintf(outf, "ADDCH: 2: y = %d, x = %d, firstch = %d, lastch = %d\n", y, x, win->_firstch[y], win->_lastch[y]);
-# endif
- break;
- case '\n':
- wclrtoeol(win);
- if (!NONL)
- x = 0;
- goto newline;
- case '\r':
- x = 0;
- break;
- case '\b':
- if (--x < 0)
- x = 0;
- break;
- }
- win->_curx = x;
- win->_cury = y;
- return OK;
-}