Home | History | Annotate | Download | only in rcons

Lines Matching refs:rc

68 rcons_init_ops(struct rconsole *rc)
73 m = sizeof(rc->rc_charmap) / sizeof(rc->rc_charmap[0]);
76 rc->rc_ops->mapchar(rc->rc_cookie, i, rc->rc_charmap + i);
80 rc->rc_deffgcolor = RASTERCONSOLE_FGCOL;
83 rc->rc_defbgcolor = RASTERCONSOLE_BGCOL;
85 rc->rc_fgcolor = rc->rc_deffgcolor;
86 rc->rc_bgcolor = rc->rc_defbgcolor;
87 rc->rc_supwsflg = 0;
90 if (rc->rc_ops->allocattr(rc->rc_cookie, 0, 0, i, &tmp) == 0)
91 rc->rc_supwsflg |= i;
94 rc->rc_wsflg = WSATTR_HILIT;
95 rcons_setcolor(rc, rc->rc_deffgcolor, rc->rc_defbgcolor);
96 rc->rc_kern_attr = rc->rc_attr;
98 rc->rc_wsflg = 0;
99 rcons_setcolor(rc, rc->rc_deffgcolor, rc->rc_defbgcolor);
100 rc->rc_defattr = rc->rc_attr;
105 rcons_puts(struct rconsole *rc, const unsigned char *str, int n)
112 if ((rc->rc_bits & FB_INESC) == 0) {
124 if (rc->rc_row + i > rc->rc_maxrow + 1) {
126 if (rc->rc_bits & FB_CURSOR)
127 rcons_cursor(rc);
129 rcons_scroll(rc, i);
138 rc->rc_bits |= FB_INESC | FB_P0_DEFAULT | FB_P1_DEFAULT;
139 rc->rc_bits &= ~(FB_P0 | FB_P1);
142 rc->rc_p0 = rc->rc_p1 = 1;
143 } else if (rc->rc_bits & FB_INESC) {
144 rcons_esc(rc, c);
147 if (rc->rc_bits & FB_CURSOR)
148 rcons_cursor(rc);
153 j = rc->rc_maxcol - rc->rc_col;
158 rcons_text(rc, str, i);
163 rcons_pctrl(rc, c);
168 if ((rc->rc_bits & FB_CURSOR) == 0)
169 rcons_cursor(rc);
175 rcons_pctrl(struct rconsole *rc, int c)
180 rc->rc_col = 0;
184 if (rc->rc_col > 0)
185 (rc->rc_col)--;
189 if (rc->rc_row > 0)
190 (rc->rc_row)--;
194 rc->rc_row = rc->rc_col = 0;
195 rcons_clear2eop(rc);
199 (rc->rc_row)++;
200 if (rc->rc_row >= rc->rc_maxrow)
201 rcons_scroll(rc, 1);
205 rcons_bell(rc);
209 rc->rc_col = (rc->rc_col + 8) & ~7;
210 if (rc->rc_col >= rc->rc_maxcol)
211 rc->rc_col = rc->rc_maxcol;
218 rcons_esc(struct rconsole *rc, int c)
223 rc->rc_bits &= ~FB_P1;
224 rc->rc_bits |= FB_P0;
227 rc->rc_bits &= ~FB_P0;
228 rc->rc_bits |= FB_P1;
231 if (rc->rc_bits & FB_P0) {
233 if (rc->rc_bits & FB_P0_DEFAULT) {
234 rc->rc_bits &= ~FB_P0_DEFAULT;
235 rc->rc_p0 = 0;
237 rc->rc_p0 *= 10;
238 rc->rc_p0 += c - '0';
239 } else if (rc->rc_bits & FB_P1) {
241 if (rc->rc_bits & FB_P1_DEFAULT) {
242 rc->rc_bits &= ~FB_P1_DEFAULT;
243 rc->rc_p1 = 0;
245 rc->rc_p1 *= 10;
246 rc->rc_p1 += c - '0';
250 if (rc->rc_bits & FB_CURSOR)
251 rcons_cursor(rc);
254 rcons_doesc(rc, c);
255 rc->rc_bits &= ~FB_INESC;
262 rcons_sgresc(struct rconsole *rc, int c)
268 rc->rc_wsflg = 0;
269 rc->rc_fgcolor = rc->rc_deffgcolor;
270 rc->rc_bgcolor = rc->rc_defbgcolor;
271 rc->rc_attr = rc->rc_defattr;
277 rcons_setcolor(rc, c - 30, rc->rc_bgcolor);
283 rcons_setcolor(rc, rc->rc_fgcolor, c - 40);
288 rc->rc_wsflg |= WSATTR_REVERSE;
289 rcons_setcolor(rc, rc->rc_fgcolor, rc->rc_bgcolor);
294 rc->rc_wsflg |= WSATTR_HILIT;
295 rcons_setcolor(rc, rc->rc_fgcolor, rc->rc_bgcolor);
300 rc->rc_wsflg |= WSATTR_UNDERLINE;
301 rcons_setcolor(rc, rc->rc_fgcolor, rc->rc_bgcolor);
309 rcons_doesc(struct rconsole *rc, int c)
314 rc->rc_bits = FB_VISBELL;
321 rcons_insertchar(rc, rc->rc_p0);
326 if (rc->rc_row >= rc->rc_p0)
327 rc->rc_row -= rc->rc_p0;
329 rc->rc_row = 0;
334 rc->rc_row += rc->rc_p0;
335 if (rc->rc_row >= rc->rc_maxrow)
336 rc->rc_row = rc->rc_maxrow - 1;
341 rc->rc_col += rc->rc_p0;
342 if (rc->rc_col >= rc->rc_maxcol)
343 rc->rc_col = rc->rc_maxcol - 1;
348 if (rc->rc_col >= rc->rc_p0)
349 rc->rc_col -= rc->rc_p0;
351 rc->rc_col = 0;
356 rc->rc_col = 0;
357 rc->rc_row += rc->rc_p0;
358 if (rc->rc_row >= rc->rc_maxrow)
359 rc->rc_row = rc->rc_maxrow - 1;
366 rc->rc_col = MIN(MAX(rc->rc_p1, 1), rc->rc_maxcol) - 1;
367 rc->rc_row = MIN(MAX(rc->rc_p0, 1), rc->rc_maxrow) - 1;
372 rcons_clear2eop(rc);
377 rcons_clear2eol(rc);
382 rcons_insertline(rc, rc->rc_p0);
387 rcons_delline(rc, rc->rc_p0);
392 rcons_delchar(rc, rc->rc_p0);
398 if (rc->rc_bits & FB_P0_DEFAULT)
399 rc->rc_p0 = 0;
401 if (rc->rc_bits & FB_P1_DEFAULT)
402 rc->rc_p1 = 0;
404 rcons_sgresc(rc, rc->rc_p0);
406 if (rc->rc_bits & FB_P1)
407 rcons_sgresc(rc, rc->rc_p1);
417 rcons_setcolor(rc, WSCOL_BLACK, WSCOL_WHITE);
422 rcons_setcolor(rc, WSCOL_WHITE, WSCOL_BLACK);
428 if (rc->rc_bits & FB_P0_DEFAULT)
429 rc->rc_p0 = 0;
431 rc->rc_scroll = rc->rc_p0;
436 rc->rc_wsflg = 0;
437 rc->rc_scroll = 0;
438 rc->rc_bits &= ~FB_NO_CURSOR;
439 rc->rc_fgcolor = rc->rc_deffgcolor;
440 rc->rc_bgcolor = rc->rc_defbgcolor;
441 rc->rc_attr = rc->rc_defattr;
443 if (rc->rc_bits & FB_INVERT)
444 rcons_invert(rc, 0);
453 if (rc->rc_p0 == 25) {
454 rc->rc_bits &= ~FB_NO_CURSOR;
456 if (rc->rc_bits & FB_CURSOR) {
457 rc->rc_bits ^= FB_CURSOR;
458 rcons_cursor(rc);
465 if (rc->rc_p0 == 25 && (rc->rc_bits & FB_NO_CURSOR) == 0) {
466 if (rc->rc_bits & FB_CURSOR)
467 rcons_cursor(rc);
469 rc->rc_bits |= FB_NO_CURSOR;
478 rcons_setcolor(struct rconsole *rc, int fg, int bg)
495 if ((rc->rc_wsflg & WSATTR_REVERSE) &&
496 !(rc->rc_supwsflg & WSATTR_REVERSE)) {
506 flg = (rc->rc_wsflg | WSATTR_WSCOLORS) & rc->rc_supwsflg;
507 rc->rc_bgcolor = bg;
508 rc->rc_fgcolor = fg;
509 rc->rc_ops->allocattr(rc->rc_cookie, fg, bg, flg, &rc->rc_attr);
515 rcons_text(struct rconsole *rc, const unsigned char *str, int n)
520 uc = rc->rc_charmap[*str++ & 255];
521 rc->rc_ops->putchar(rc->rc_cookie, rc->rc_row, rc->rc_col++,
522 uc, rc->rc_attr);
525 if (rc->rc_col >= rc->rc_maxcol) {
526 rc->rc_col = 0;
527 rc->rc_row++;
530 if (rc->rc_row >= rc->rc_maxrow)
531 rcons_scroll(rc, 1);
536 rcons_cursor(struct rconsole *rc)
538 rc->rc_bits ^= FB_CURSOR;
540 if (rc->rc_bits & FB_NO_CURSOR)
543 rc->rc_ops->cursor(rc->rc_cookie, rc->rc_bits & FB_CURSOR,
544 rc->rc_row, rc->rc_col);
549 rcons_invert(struct rconsole *rc, int wob)
552 rc->rc_bits ^= FB_INVERT;
558 rcons_clear2eop(struct rconsole *rc)
560 if (rc->rc_col || rc->rc_row) {
561 rcons_clear2eol(rc);
563 if (rc->rc_row < (rc->rc_maxrow - 1))
564 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_row + 1,
565 rc->rc_maxrow, rc->rc_attr);
567 rc->rc_ops->eraserows(rc->rc_cookie, 0, rc->rc_maxrow,
568 rc->rc_attr);
573 rcons_clear2eol(struct rconsole *rc)
575 rc->rc_ops->erasecols(rc->rc_cookie, rc->rc_row, rc->rc_col,
576 rc->rc_maxcol - rc->rc_col, rc->rc_attr);
582 rcons_scroll(struct rconsole *rc, int n)
585 if (n > rc->rc_maxrow)
586 n = rc->rc_maxrow;
589 if (rc->rc_row >= n)
590 rc->rc_row -= n;
592 rc->rc_row = 0;
594 rc->rc_ops->copyrows(rc->rc_cookie, n, 0, rc->rc_maxrow - n);
595 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_maxrow - n, n, rc->rc_attr);
600 rcons_delchar(struct rconsole *rc, int n)
603 if (n > rc->rc_maxcol - rc->rc_col)
604 n = rc->rc_maxcol - rc->rc_col;
606 rc->rc_ops->copycols(rc->rc_cookie, rc->rc_row, rc->rc_col + n,
607 rc->rc_col, rc->rc_maxcol - rc->rc_col - n);
609 rc->rc_ops->erasecols(rc->rc_cookie, rc->rc_row,
610 rc->rc_maxcol - n, n, rc->rc_attr);
615 rcons_delline(struct rconsole *rc, int n)
618 if (n > rc->rc_maxrow - rc->rc_row)
619 n = rc->rc_maxrow - rc->rc_row;
621 rc->rc_ops->copyrows(rc->rc_cookie, rc->rc_row + n, rc->rc_row,
622 rc->rc_maxrow - rc->rc_row - n);
624 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_maxrow - n, n,
625 rc->rc_attr);
630 rcons_insertchar(struct rconsole *rc, int n)
633 if (n > rc->rc_maxcol - rc->rc_col)
634 n = rc->rc_maxcol - rc->rc_col - 1;
636 rc->rc_ops->copycols(rc->rc_cookie, rc->rc_row, rc->rc_col,
637 rc->rc_col + n, rc->rc_maxcol - rc->rc_col - n - 1);
639 rc->rc_ops->erasecols(rc->rc_cookie, rc->rc_row, rc->rc_col,
640 n, rc->rc_attr);
645 rcons_insertline(struct rconsole *rc, int n)
648 if (n > rc->rc_maxrow - rc->rc_row)
649 n = rc->rc_maxrow - rc->rc_row;
651 rc->rc_ops->copyrows(rc->rc_cookie, rc->rc_row, rc->rc_row + n,
652 rc->rc_maxrow - rc->rc_row - n);
654 rc->rc_ops->eraserows(rc->rc_cookie, rc->rc_row, n,
655 rc->rc_attr);