Lines Matching defs:win
67 waddbytes(WINDOW *win, const char *bytes, int count)
70 return _cursesi_waddbytes(win, bytes, count, 0, 1);
89 mvwaddbytes(WINDOW *win, int y, int x, const char *bytes, int count)
92 if (wmove(win, y, x) == ERR)
95 return _cursesi_waddbytes(win, bytes, count, 0, 1);
101 __waddbytes(WINDOW *win, const char *bytes, int count, attr_t attr)
104 return _cursesi_waddbytes(win, bytes, count, attr, 1);
115 _cursesi_waddbytes(WINDOW *win, const char *bytes, int count, attr_t attr,
118 int *py = &win->cury, *px = &win->curx, err;
131 if (__predict_false(win == NULL))
134 for (i = 0; i < win->maxy; i++) {
135 assert(win->alines[i]->sentinel == SENTINEL_VALUE);
142 lp = win->alines[*py];
152 err = _cursesi_addbyte(win, &lp, py, px, c, attr, char_interp);
181 err = _cursesi_addwchar(win, &lp, py, px, &cc, char_interp);
188 for (i = 0; i < win->maxy; i++) {
189 assert(win->alines[i]->sentinel == SENTINEL_VALUE);
204 _cursesi_addbyte(WINDOW *win, __LINE **lp, int *y, int *x, int c,
212 if (__predict_false(win == NULL))
218 tabsize = win->screen->TABSIZE;
223 if ((*y == win->scr_b) &&
224 !(win->flags & __SCROLLOK)) {
229 if (*x + newx > win->maxx - 1)
230 newx = win->maxx - *x - 1;
234 if (waddbytes(win, blank, 1) == ERR)
240 wclrtoeol(win);
255 __CTRACE(__CTRACE_INPUT, "ADDBYTES(%p, %d, %d)\n", win, *y, *x);
260 if (*y == win->scr_b) {
263 if (!(win->flags & __SCROLLOK))
265 scroll(win);
269 *lp = win->alines[*y];
276 *y, *x, *win->alines[*y]->firstchp, *win->alines[*y]->lastchp);
278 attributes = (win->wattr | attr) & (__ATTRIBUTES & ~__COLOR);
281 else if (win->wattr & __COLOR)
282 attributes |= win->wattr & __COLOR;
294 newx = *x + win->ch_off;
307 *(*lp)->firstchp - win->ch_off,
308 *(*lp)->lastchp - win->ch_off);
309 if (win->bch != ' ' && c == ' ') {
310 (*lp)->line[*x].ch = win->bch;
312 (*lp)->line[*x].wcols = win->wcols;
325 attributes | (win->battr & ~__COLOR);
327 (*lp)->line[*x].attr = attributes | win->battr;
329 if (*x == win->maxx - 1)
336 *y, *x, *win->alines[*y]->firstchp, *win->alines[*y]->lastchp);
337 __sync(win);
347 _cursesi_addwchar(WINDOW *win, __LINE **lnp, int *y, int *x,
354 __LDATA *lp = &win->alines[*y]->line[*x], *tp = NULL;
359 if (__predict_false(win == NULL))
373 if (*y == win->scr_b) {
374 if (!(win->flags & __SCROLLOK))
376 wclrtoeol(win);
377 scroll(win);
379 wclrtoeol(win);
388 cc.attributes = win->wattr;
389 tabsize = win->screen->TABSIZE;
395 if ((*y == win->scr_b) &&
396 !(win->flags & __SCROLLOK)) {
401 if (*x + newx > win->maxx - 1)
402 newx = win->maxx - *x - 1;
406 if (wadd_wch(win, &cc) == ERR)
431 newx = *x + win->ch_off;
437 __touchline(win, *y, *x, *x);
444 if (*y == win->scr_b) {
445 if (!(win->flags & __SCROLLOK))
447 scroll(win);
451 (*lnp) = win->alines[*y];
452 lp = &win->alines[*y]->line[*x];
463 tp = &win->alines[*y]->line[sx];
464 tp->ch = win->bch;
466 if (_cursesi_copy_nsp(win->bnsp, tp) == ERR)
469 tp->attr = win->battr;
470 tp->wcols = win->wcols;
474 newx = sx + win->ch_off;
484 if (cw > win->maxx - *x) {
487 if (*y == win->scr_b) {
488 if (!(win->flags & __SCROLLOK))
490 scroll(win);
494 newx = *x + win->ch_off;
498 for (tp = lp; *x < win->maxx; tp++, (*x)++) {
499 tp->ch = win->bch;
500 if (_cursesi_copy_nsp(win->bnsp, tp) == ERR)
502 tp->attr = win->battr;
503 tp->wcols = win->wcols;
506 newx = win->maxx - 1 + win->ch_off;
509 __touchline(win, *y, sx, (int) win->maxx - 1);
511 if (*y != win->scr_b) {
514 lp = &win->alines[*y]->line[0];
515 (*lnp) = win->alines[*y];
523 newx = *x + win->ch_off;
535 attributes = (win->wattr | wch->attributes)
539 else if (win->wattr & __COLOR)
540 attributes |= win->wattr & __COLOR;
542 lp->attr = attributes | (win->battr & ~__COLOR);
544 lp->attr = attributes | win->battr;
570 __CTRACE(__CTRACE_INPUT, "_cursesi_addwchar: *x = %d, win->maxx = %d\n",
571 *x, win->maxx);
587 if (*x >= win->maxx) {
589 if (*y == win->scr_b) {
592 if (!(win->flags & __SCROLLOK))
598 scroll(win);
600 newx = win->maxx - 1 + win->ch_off;
603 __touchline(win, *y, sx, (int) win->maxx - 1);
605 if (*y != win->scr_b) {
608 lp = &win->alines[*y]->line[0];
609 (*lnp) = win->alines[*y];
610 *(*lnp)->lastchp = win->ch_off + win->maxx - 1;
613 if (*x && *x < win->maxx) {
615 tp = &win->alines[*y]->line[ex];
616 while (ex < win->maxx && tp->wcols < 0) {
621 tp->ch = win->bch;
623 if (_cursesi_copy_nsp(win->bnsp, tp) == ERR)
625 tp->attr = win->battr;
626 tp->wcols = win->wcols;
629 newx = ex - 1 + win->ch_off;
632 __touchline(win, *y, sx, ex - 1);
639 "_cursesi_addwchar: *x = %d, *y = %d, win->maxx = %d\n",
640 *x, *y, win->maxx);
641 __sync(win);