Lines Matching refs:tcp
109 static void scterm_scan_esc(scr_stat *scp, term_stat *tcp,
111 static int mask2attr(term_stat *tcp);
116 term_stat *tcp; in scterm_init() local
123 tcp = *softc; in scterm_init()
127 bzero(tcp, sizeof(*tcp)); in scterm_init()
128 tcp->flags = SCTERM_BUSY; in scterm_init()
129 tcp->esc = 0; in scterm_init()
130 tcp->saved_xpos = -1; in scterm_init()
131 tcp->saved_ypos = -1; in scterm_init()
132 tcp->attr_mask = NORMAL_ATTR; in scterm_init()
134 tcp->dflt_std_color.fg = SC_NORM_ATTR & 0x0f; in scterm_init()
135 tcp->dflt_std_color.bg = (SC_NORM_ATTR >> 4) & 0x0f; in scterm_init()
136 tcp->dflt_rev_color.fg = SC_NORM_REV_ATTR & 0x0f; in scterm_init()
137 tcp->dflt_rev_color.bg = (SC_NORM_REV_ATTR >> 4) & 0x0f; in scterm_init()
138 tcp->std_color = tcp->dflt_std_color; in scterm_init()
139 tcp->rev_color = tcp->dflt_rev_color; in scterm_init()
140 tcp->cur_color = tcp->std_color; in scterm_init()
141 tcp->cur_attr = mask2attr(tcp); in scterm_init()
146 tcp->esc = 0; in scterm_init()
147 tcp->saved_xpos = -1; in scterm_init()
148 tcp->saved_ypos = -1; in scterm_init()
150 tcp->std_color = tcp->dflt_std_color; in scterm_init()
151 tcp->rev_color = tcp->dflt_rev_color; in scterm_init()
153 tcp->cur_color = tcp->std_color; in scterm_init()
154 tcp->cur_attr = mask2attr(tcp); in scterm_init()
173 scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) in scterm_scan_esc() argument
185 if (tcp->esc == 1) { /* seen ESC */ in scterm_scan_esc()
189 tcp->saved_xpos = scp->xpos; in scterm_scan_esc()
190 tcp->saved_ypos = scp->ypos; in scterm_scan_esc()
194 if (tcp->saved_xpos >= 0 && tcp->saved_ypos >= 0) in scterm_scan_esc()
195 sc_move_cursor(scp, tcp->saved_xpos, in scterm_scan_esc()
196 tcp->saved_ypos); in scterm_scan_esc()
200 tcp->esc = 2; in scterm_scan_esc()
201 tcp->last_param = -1; in scterm_scan_esc()
202 for (i = tcp->num_param; i < MAX_ESC_PAR; i++) in scterm_scan_esc()
203 tcp->param[i] = 1; in scterm_scan_esc()
204 tcp->num_param = 0; in scterm_scan_esc()
209 tcp->cur_attr, 0, 0); in scterm_scan_esc()
213 tcp->esc = 4; in scterm_scan_esc()
217 tcp->attr_mask = NORMAL_ATTR; in scterm_scan_esc()
218 tcp->cur_color = tcp->std_color in scterm_scan_esc()
219 = tcp->dflt_std_color; in scterm_scan_esc()
220 tcp->rev_color = tcp->dflt_rev_color; in scterm_scan_esc()
221 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
226 tcp->esc = 5; in scterm_scan_esc()
229 } else if (tcp->esc == 2) { /* seen ESC [ */ in scterm_scan_esc()
231 if (tcp->num_param < MAX_ESC_PAR) { in scterm_scan_esc()
232 if (tcp->last_param != tcp->num_param) { in scterm_scan_esc()
233 tcp->last_param = tcp->num_param; in scterm_scan_esc()
234 tcp->param[tcp->num_param] = 0; in scterm_scan_esc()
236 tcp->param[tcp->num_param] *= 10; in scterm_scan_esc()
238 tcp->param[tcp->num_param] += c - '0'; in scterm_scan_esc()
242 tcp->num_param = tcp->last_param + 1; in scterm_scan_esc()
246 if (tcp->num_param < MAX_ESC_PAR) in scterm_scan_esc()
251 tcp->esc = 3; in scterm_scan_esc()
252 tcp->last_param = -1; in scterm_scan_esc()
253 for (i = tcp->num_param; i < MAX_ESC_PAR; i++) in scterm_scan_esc()
254 tcp->param[i] = 1; in scterm_scan_esc()
255 tcp->num_param = 0; in scterm_scan_esc()
259 sc_term_up(scp, tcp->param[0], 0); in scterm_scan_esc()
263 sc_term_down(scp, tcp->param[0], 0); in scterm_scan_esc()
267 sc_term_right(scp, tcp->param[0]); in scterm_scan_esc()
271 sc_term_left(scp, tcp->param[0]); in scterm_scan_esc()
275 n = tcp->param[0]; in scterm_scan_esc()
282 n = tcp->param[0]; in scterm_scan_esc()
290 if (tcp->num_param == 0) in scterm_scan_esc()
292 else if (tcp->num_param == 2) in scterm_scan_esc()
293 sc_move_cursor(scp, tcp->param[1] - 1, in scterm_scan_esc()
294 tcp->param[0] - 1); in scterm_scan_esc()
298 if (tcp->num_param == 0) in scterm_scan_esc()
301 n = tcp->param[0]; in scterm_scan_esc()
303 tcp->cur_attr); in scterm_scan_esc()
307 if (tcp->num_param == 0) in scterm_scan_esc()
310 n = tcp->param[0]; in scterm_scan_esc()
312 tcp->cur_attr); in scterm_scan_esc()
316 sc_term_ins_line(scp, scp->ypos, tcp->param[0], in scterm_scan_esc()
317 sc->scr_map[0x20], tcp->cur_attr, 0); in scterm_scan_esc()
321 sc_term_del_line(scp, scp->ypos, tcp->param[0], in scterm_scan_esc()
322 sc->scr_map[0x20], tcp->cur_attr, 0); in scterm_scan_esc()
326 sc_term_del_char(scp, tcp->param[0], in scterm_scan_esc()
327 sc->scr_map[0x20], tcp->cur_attr); in scterm_scan_esc()
331 sc_term_ins_char(scp, tcp->param[0], in scterm_scan_esc()
332 sc->scr_map[0x20], tcp->cur_attr); in scterm_scan_esc()
336 sc_term_del_line(scp, 0, tcp->param[0], in scterm_scan_esc()
337 sc->scr_map[0x20], tcp->cur_attr, 0); in scterm_scan_esc()
341 sc_term_ins_line(scp, 0, tcp->param[0], in scterm_scan_esc()
342 sc->scr_map[0x20], tcp->cur_attr, 0); in scterm_scan_esc()
346 n = tcp->param[0]; in scterm_scan_esc()
352 sc->scr_map[0x20], tcp->cur_attr); in scterm_scan_esc()
358 sc_term_backtab(scp, tcp->param[0]); in scterm_scan_esc()
362 sc_term_col(scp, tcp->param[0]); in scterm_scan_esc()
366 sc_term_right(scp, tcp->param[0]); in scterm_scan_esc()
370 sc_term_row(scp, tcp->param[0]); in scterm_scan_esc()
374 sc_term_down(scp, tcp->param[0], 0); in scterm_scan_esc()
378 if (tcp->num_param == 0) { in scterm_scan_esc()
379 tcp->attr_mask = NORMAL_ATTR; in scterm_scan_esc()
380 tcp->cur_color = tcp->std_color; in scterm_scan_esc()
381 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
384 for (i = 0; i < tcp->num_param; i++) { in scterm_scan_esc()
385 switch (n = tcp->param[i]) { in scterm_scan_esc()
387 tcp->attr_mask = NORMAL_ATTR; in scterm_scan_esc()
388 tcp->cur_color = tcp->std_color; in scterm_scan_esc()
389 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
392 tcp->attr_mask |= BOLD_ATTR; in scterm_scan_esc()
393 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
396 tcp->attr_mask |= UNDERLINE_ATTR; in scterm_scan_esc()
397 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
400 tcp->attr_mask |= BLINK_ATTR; in scterm_scan_esc()
401 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
404 tcp->attr_mask |= REVERSE_ATTR; in scterm_scan_esc()
405 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
408 tcp->attr_mask &= ~BOLD_ATTR; in scterm_scan_esc()
409 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
412 tcp->attr_mask &= ~UNDERLINE_ATTR; in scterm_scan_esc()
413 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
416 tcp->attr_mask &= ~BLINK_ATTR; in scterm_scan_esc()
417 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
420 tcp->attr_mask &= ~REVERSE_ATTR; in scterm_scan_esc()
421 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
426 tcp->attr_mask |= FG_CHANGED; in scterm_scan_esc()
427 tcp->cur_color.fg = ansi_col[n - 30]; in scterm_scan_esc()
428 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
431 tcp->attr_mask &= ~(FG_CHANGED|BOLD_ATTR); in scterm_scan_esc()
432 tcp->cur_color.fg = tcp->std_color.fg; in scterm_scan_esc()
433 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
438 tcp->attr_mask |= BG_CHANGED; in scterm_scan_esc()
439 tcp->cur_color.bg = ansi_col[n - 40]; in scterm_scan_esc()
440 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
443 tcp->attr_mask &= ~BG_CHANGED; in scterm_scan_esc()
444 tcp->cur_color.bg = tcp->std_color.bg; in scterm_scan_esc()
445 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
452 tcp->saved_xpos = scp->xpos; in scterm_scan_esc()
453 tcp->saved_ypos = scp->ypos; in scterm_scan_esc()
457 if (tcp->saved_xpos >= 0 && tcp->saved_ypos >= 0) in scterm_scan_esc()
458 sc_move_cursor(scp, tcp->saved_xpos, in scterm_scan_esc()
459 tcp->saved_ypos); in scterm_scan_esc()
463 if (tcp->num_param == 0) in scterm_scan_esc()
466 n = tcp->param[0]; in scterm_scan_esc()
469 tcp->attr_mask = NORMAL_ATTR; in scterm_scan_esc()
470 tcp->cur_color = tcp->std_color in scterm_scan_esc()
471 = tcp->dflt_std_color; in scterm_scan_esc()
472 tcp->rev_color = tcp->dflt_rev_color; in scterm_scan_esc()
473 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
476 tcp->attr_mask &= ~BG_CHANGED; in scterm_scan_esc()
477 tcp->cur_color.bg = tcp->std_color.bg in scterm_scan_esc()
478 = ansi_col[tcp->param[1] & 0x0f]; in scterm_scan_esc()
479 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
482 tcp->attr_mask &= ~FG_CHANGED; in scterm_scan_esc()
483 tcp->cur_color.fg = tcp->std_color.fg in scterm_scan_esc()
484 = ansi_col[tcp->param[1] & 0x0f]; in scterm_scan_esc()
485 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
488 tcp->attr_mask &= ~(FG_CHANGED | BG_CHANGED); in scterm_scan_esc()
489 tcp->cur_color.fg = tcp->std_color.fg in scterm_scan_esc()
490 = tcp->param[1] & 0x0f; in scterm_scan_esc()
491 tcp->cur_color.bg = tcp->std_color.bg in scterm_scan_esc()
492 = (tcp->param[1] >> 4) & 0x0f; in scterm_scan_esc()
493 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
496 tcp->rev_color.bg = ansi_col[tcp->param[1] & 0x0f]; in scterm_scan_esc()
497 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
500 tcp->rev_color.fg = ansi_col[tcp->param[1] & 0x0f]; in scterm_scan_esc()
501 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
504 tcp->rev_color.fg = tcp->param[1] & 0x0f; in scterm_scan_esc()
505 tcp->rev_color.bg = (tcp->param[1] >> 4) & 0x0f; in scterm_scan_esc()
506 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
512 if (tcp->num_param == 1) in scterm_scan_esc()
513 sc_switch_scr(sc, tcp->param[0]); in scterm_scan_esc()
516 } else if (tcp->esc == 3) { /* seen ESC [0-9]+ = */ in scterm_scan_esc()
518 if (tcp->num_param < MAX_ESC_PAR) { in scterm_scan_esc()
519 if (tcp->last_param != tcp->num_param) { in scterm_scan_esc()
520 tcp->last_param = tcp->num_param; in scterm_scan_esc()
521 tcp->param[tcp->num_param] = 0; in scterm_scan_esc()
523 tcp->param[tcp->num_param] *= 10; in scterm_scan_esc()
525 tcp->param[tcp->num_param] += c - '0'; in scterm_scan_esc()
529 tcp->num_param = tcp->last_param + 1; in scterm_scan_esc()
533 if (tcp->num_param < MAX_ESC_PAR) in scterm_scan_esc()
538 if (tcp->num_param == 1) { in scterm_scan_esc()
539 scp->border=tcp->param[0] & 0xff; in scterm_scan_esc()
546 if (tcp->num_param == 2) { in scterm_scan_esc()
547 scp->bell_pitch = tcp->param[0]; in scterm_scan_esc()
549 (tcp->param[1] * hz + 99) / 100; in scterm_scan_esc()
557 if (tcp->num_param == 1) { in scterm_scan_esc()
558 if (tcp->param[0] & 0x01) in scterm_scan_esc()
562 if (tcp->param[0] & 0x02) in scterm_scan_esc()
566 } else if (tcp->num_param == 2) { in scterm_scan_esc()
568 - (tcp->param[1] & 0x1F) - 1; in scterm_scan_esc()
569 sc->cursor_height = (tcp->param[1] & 0x1F) in scterm_scan_esc()
570 - (tcp->param[0] & 0x1F) + 1; in scterm_scan_esc()
596 if (tcp->num_param == 1) { in scterm_scan_esc()
597 tcp->attr_mask &= ~FG_CHANGED; in scterm_scan_esc()
598 tcp->cur_color.fg = tcp->std_color.fg in scterm_scan_esc()
599 = tcp->param[0] & 0x0f; in scterm_scan_esc()
600 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
605 if (tcp->num_param == 1) { in scterm_scan_esc()
606 tcp->attr_mask &= ~BG_CHANGED; in scterm_scan_esc()
607 tcp->cur_color.bg = tcp->std_color.bg in scterm_scan_esc()
608 = tcp->param[0] & 0x0f; in scterm_scan_esc()
609 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
614 if (tcp->num_param == 1) { in scterm_scan_esc()
615 tcp->rev_color.fg = tcp->param[0] & 0x0f; in scterm_scan_esc()
616 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
621 if (tcp->num_param == 1) { in scterm_scan_esc()
622 tcp->rev_color.bg = tcp->param[0] & 0x0f; in scterm_scan_esc()
623 tcp->cur_attr = mask2attr(tcp); in scterm_scan_esc()
628 } else if (tcp->esc == 4) { /* seen ESC Q */ in scterm_scan_esc()
631 } else if (tcp->esc == 5) { /* seen ESC ( */ in scterm_scan_esc()
640 tcp->esc = 0; in scterm_scan_esc()
646 term_stat *tcp; in scterm_puts() local
648 tcp = scp->ts; in scterm_puts()
652 if (tcp->esc) { in scterm_puts()
653 scterm_scan_esc(scp, tcp, *buf); in scterm_puts()
659 tcp->esc = 1; in scterm_puts()
660 tcp->num_param = 0; in scterm_puts()
665 sc_term_gen_print(scp, &buf, &len, tcp->cur_attr); in scterm_puts()
670 sc_term_gen_scroll(scp, scp->sc->scr_map[0x20], tcp->cur_attr); in scterm_puts()
681 term_stat *tcp = scp->ts; in scterm_ioctl() local
687 *(int*)data = (tcp->cur_attr >> 8) & 0xff; in scterm_ioctl()
693 vi->mv_norm.fore = tcp->std_color.fg; in scterm_ioctl()
694 vi->mv_norm.back = tcp->std_color.bg; in scterm_ioctl()
695 vi->mv_rev.fore = tcp->rev_color.fg; in scterm_ioctl()
696 vi->mv_rev.back = tcp->rev_color.bg; in scterm_ioctl()
715 term_stat *tcp = scp->ts; in scterm_default_attr() local
717 tcp->dflt_std_color.fg = color & 0x0f; in scterm_default_attr()
718 tcp->dflt_std_color.bg = (color >> 4) & 0x0f; in scterm_default_attr()
719 tcp->dflt_rev_color.fg = rev_color & 0x0f; in scterm_default_attr()
720 tcp->dflt_rev_color.bg = (rev_color >> 4) & 0x0f; in scterm_default_attr()
721 tcp->std_color = tcp->dflt_std_color; in scterm_default_attr()
722 tcp->rev_color = tcp->dflt_rev_color; in scterm_default_attr()
723 tcp->cur_color = tcp->std_color; in scterm_default_attr()
724 tcp->cur_attr = mask2attr(tcp); in scterm_default_attr()
730 term_stat *tcp = scp->ts; in scterm_clear() local
733 sc_vtb_clear(&scp->vtb, scp->sc->scr_map[0x20], tcp->cur_attr); in scterm_clear()
761 mask2attr(term_stat *tcp) in mask2attr() argument
763 int attr, mask = tcp->attr_mask; in mask2attr()
767 tcp->cur_color.bg : tcp->rev_color.fg) | in mask2attr()
769 tcp->cur_color.fg : tcp->rev_color.bg) << 4); in mask2attr()
771 attr = tcp->cur_color.fg | (tcp->cur_color.bg << 4); in mask2attr()