Lines Matching refs:sc
84 #define SUBR_INIT(sc) (sc)->grf->g_iteinit(sc) argument
85 #define SUBR_DEINIT(sc) (sc)->grf->g_itedeinit(sc) argument
86 #define SUBR_PUTC(sc,c,dy,dx,m) (sc)->grf->g_iteputc(sc,c,dy,dx,m) argument
87 #define SUBR_CURSOR(sc,flg) (sc)->grf->g_itecursor(sc,flg) argument
88 #define SUBR_CLEAR(sc,sy,sx,h,w) (sc)->grf->g_iteclear(sc,sy,sx,h,w) argument
89 #define SUBR_SCROLL(sc,sy,sx,cnt,dir) (sc)->grf->g_itescroll(sc,sy,sx,cnt,dir) argument
138 static void iteputchar(int c, struct ite_softc *sc);
205 struct ite_softc *sc; in iteattach() local
210 sc = device_private(self); in iteattach()
224 memcpy(&sc->grf, &con_itesoftc.grf, in iteattach()
225 (char *)&sc[1] - (char *)&sc->grf); in iteattach()
227 kbd_ite = sc; in iteattach()
229 sc->grf = gsc; in iteattach()
233 aprint_normal(": %dx%d", sc->rows, sc->cols); in iteattach()
238 kbd_ite = sc; in iteattach()
239 if (kbd_ite == sc) in iteattach()
242 sc->flags |= ITE_ATTACHED; in iteattach()
290 struct ite_softc *sc; in itecninit() local
292 sc = getitesp(cd->cn_dev); in itecninit()
293 sc->flags |= ITE_ISCONS; in itecninit()
295 sc->flags |= ITE_ACTIVE | ITE_ISCONS; in itecninit()
304 ite_cnfinish(struct ite_softc *sc) in ite_cnfinish() argument
329 struct ite_softc *sc; in itecnputc() local
332 sc = getitesp(dev); in itecnputc()
336 (sc->flags & (ITE_ACTIVE | ITE_INGRF)) != ITE_ACTIVE) { in itecnputc()
340 SUBR_CURSOR(sc, START_CURSOROPT); in itecnputc()
341 iteputchar(ch, sc); in itecnputc()
342 SUBR_CURSOR(sc, END_CURSOROPT); in itecnputc()
357 struct ite_softc *sc; in iteinit() local
359 sc = getitesp(dev); in iteinit()
360 if (sc->flags & ITE_INITED) in iteinit()
363 if (sc->kbdmap && sc->kbdmap != &ascii_kbdmap) in iteinit()
364 kmem_free(sc->kbdmap, sizeof(*sc->kbdmap)); in iteinit()
365 sc->kbdmap = kmem_alloc(sizeof(*sc->kbdmap), KM_SLEEP); in iteinit()
366 memcpy(sc->kbdmap, &ascii_kbdmap, sizeof(struct kbdmap)); in iteinit()
369 sc->kbdmap = &ascii_kbdmap; in iteinit()
371 sc->cursorx = 0; in iteinit()
372 sc->cursory = 0; in iteinit()
373 SUBR_INIT(sc); in iteinit()
374 SUBR_CURSOR(sc, DRAW_CURSOR); in iteinit()
375 if (sc->tabs == NULL) in iteinit()
376 sc->tabs = kmem_alloc(MAX_TABS * sizeof(u_char), KM_SLEEP); in iteinit()
377 ite_reset(sc); in iteinit()
378 sc->flags |= ITE_INITED; in iteinit()
384 struct ite_softc *sc; in iteopen() local
393 sc = getitesp(dev); in iteopen()
394 if (sc == NULL) in iteopen()
396 if ((sc->flags & ITE_ATTACHED) == 0) in iteopen()
399 if (sc->tp == NULL) { in iteopen()
400 tp = sc->tp = tty_alloc(); in iteopen()
404 tp = sc->tp; in iteopen()
409 if ((sc->flags & ITE_ACTIVE) == 0) { in iteopen()
436 tp->t_winsize.ws_row = sc->rows; in iteopen()
437 tp->t_winsize.ws_col = sc->cols; in iteopen()
509 struct ite_softc *sc; in iteioctl() local
516 sc = getitesp(dev); in iteioctl()
517 tp = sc->tp; in iteioctl()
518 view = viewview(sc->grf->g_viewdev); in iteioctl()
534 memcpy(sc->kbdmap, addr, sizeof(struct kbdmap)); in iteioctl()
544 memcpy(addr, sc->kbdmap, sizeof(struct kbdmap)); in iteioctl()
573 sc->grf->g_mode(sc->grf, GM_GRFON, NULL, 0, 0); in iteioctl()
576 sc->grf->g_mode(sc->grf, GM_GRFOFF, NULL, 0, 0); in iteioctl()
591 return (sc->itexx_ioctl)(sc, cmd, addr, flag, l); in iteioctl()
630 struct ite_softc *sc; in ite_on() local
631 sc = getitesp(dev); in ite_on()
635 sc->flags |= ITE_ACTIVE; in ite_on()
636 sc->flags &= ~(ITE_INGRF | ITE_INITED); in ite_on()
640 sc->flags &= ~ITE_INGRF; in ite_on()
641 if ((sc->flags & ITE_ACTIVE) == 0) in ite_on()
644 sc->flags |= ITE_ACTIVE; in ite_on()
645 if (sc->flags & ITE_INGRF) in ite_on()
653 struct ite_softc *sc; in ite_off() local
655 sc = getitesp(dev); in ite_off()
657 sc->flags |= ITE_INGRF; in ite_off()
658 if ((sc->flags & ITE_ACTIVE) == 0) in ite_off()
661 (sc->flags & (ITE_INGRF | ITE_ISCONS | ITE_INITED)) == ITE_INITED) in ite_off()
662 SUBR_DEINIT(sc); in ite_off()
664 sc->flags &= ~ITE_ACTIVE; in ite_off()
670 struct ite_softc *sc; in ite_switch() local
673 sc = device_lookup_private(&ite_cd, unit); in ite_switch()
674 if (sc == NULL || (sc->flags & (ITE_ATTACHED | ITE_INITED)) == 0) in ite_switch()
680 if (sc->flags & ITE_ACTIVE) in ite_switch()
681 kbd_ite = sc; in ite_switch()
686 (*view_cdevsw.d_ioctl)(sc->grf->g_viewdev, VIOCDISPLAY, NULL, in ite_switch()
692 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_switch()
700 struct ite_softc *sc; in ite_reinit() local
702 sc = getitesp(dev); in ite_reinit()
703 sc->flags &= ~ITE_INITED; in ite_reinit()
717 ite_reset(struct ite_softc *sc) in ite_reset() argument
721 sc->curx = 0; in ite_reset()
722 sc->cury = 0; in ite_reset()
723 sc->attribute = ATTR_NOR; in ite_reset()
724 sc->save_curx = 0; in ite_reset()
725 sc->save_cury = 0; in ite_reset()
726 sc->save_attribute = ATTR_NOR; in ite_reset()
727 sc->ap = sc->argbuf; in ite_reset()
728 sc->emul_level = 0; in ite_reset()
729 sc->eightbit_C1 = 0; in ite_reset()
730 sc->top_margin = 0; in ite_reset()
731 sc->bottom_margin = sc->rows - 1; in ite_reset()
732 sc->inside_margins = 0; in ite_reset()
733 sc->linefeed_newline = 0; in ite_reset()
734 sc->auto_wrap = ite_default_wrap; in ite_reset()
735 sc->cursor_appmode = 0; in ite_reset()
736 sc->keypad_appmode = 0; in ite_reset()
737 sc->imode = 0; in ite_reset()
738 sc->key_repeat = 1; in ite_reset()
739 sc->G0 = CSET_ASCII; in ite_reset()
740 sc->G1 = CSET_DECGRAPH; in ite_reset()
741 sc->G2 = 0; in ite_reset()
742 sc->G3 = 0; in ite_reset()
743 sc->GL = &sc->G0; in ite_reset()
744 sc->GR = &sc->G1; in ite_reset()
745 memset(sc->tabs, 0, sc->cols); in ite_reset()
746 for (i = 0; i < sc->cols; i++) in ite_reset()
747 sc->tabs[i] = ((i & 7) == 0); in ite_reset()
1083 alignment_display(struct ite_softc *sc) in alignment_display() argument
1087 for (j = 0; j < sc->rows; j++) in alignment_display()
1088 for (i = 0; i < sc->cols; i++) in alignment_display()
1089 SUBR_PUTC(sc, 'E', j, i, ATTR_NOR); in alignment_display()
1090 attrclr(sc, 0, 0, sc->rows, sc->cols); in alignment_display()
1091 SUBR_CURSOR(sc, DRAW_CURSOR); in alignment_display()
1095 snap_cury(struct ite_softc *sc) in snap_cury() argument
1098 if (sc->inside_margins) { in snap_cury()
1099 if (sc->cury < sc->top_margin) in snap_cury()
1100 sc->cury = sc->top_margin; in snap_cury()
1101 if (sc->cury > sc->bottom_margin) in snap_cury()
1102 sc->cury = sc->bottom_margin; in snap_cury()
1107 ite_dnchar(struct ite_softc *sc, int n) in ite_dnchar() argument
1110 n = uimin(n, sc->cols - sc->curx); in ite_dnchar()
1111 if (n < sc->cols - sc->curx) { in ite_dnchar()
1112 SUBR_SCROLL(sc, sc->cury, sc->curx + n, n, SCROLL_LEFT); in ite_dnchar()
1113 attrmov(sc, sc->cury, sc->curx + n, sc->cury, sc->curx, in ite_dnchar()
1114 1, sc->cols - sc->curx - n); in ite_dnchar()
1115 attrclr(sc, sc->cury, sc->cols - n, 1, n); in ite_dnchar()
1118 SUBR_PUTC(sc, ' ', sc->cury, sc->cols - n - 1, ATTR_NOR); in ite_dnchar()
1119 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_dnchar()
1123 ite_inchar(struct ite_softc *sc, int n) in ite_inchar() argument
1126 n = uimin(n, sc->cols - sc->curx); in ite_inchar()
1127 if (n < sc->cols - sc->curx) { in ite_inchar()
1128 SUBR_SCROLL(sc, sc->cury, sc->curx, n, SCROLL_RIGHT); in ite_inchar()
1129 attrmov(sc, sc->cury, sc->curx, sc->cury, sc->curx + n, in ite_inchar()
1130 1, sc->cols - sc->curx - n); in ite_inchar()
1131 attrclr(sc, sc->cury, sc->curx, 1, n); in ite_inchar()
1134 SUBR_PUTC(sc, ' ', sc->cury, sc->curx + n, ATTR_NOR); in ite_inchar()
1135 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_inchar()
1139 ite_clrtoeol(struct ite_softc *sc) in ite_clrtoeol() argument
1141 int y = sc->cury, x = sc->curx; in ite_clrtoeol()
1143 if (sc->cols - x > 0) { in ite_clrtoeol()
1144 SUBR_CLEAR(sc, y, x, 1, sc->cols - x); in ite_clrtoeol()
1145 attrclr(sc, y, x, 1, sc->cols - x); in ite_clrtoeol()
1146 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_clrtoeol()
1151 ite_clrtobol(struct ite_softc *sc) in ite_clrtobol() argument
1153 int y = sc->cury, x = uimin(sc->curx + 1, sc->cols); in ite_clrtobol()
1155 SUBR_CLEAR(sc, y, 0, 1, x); in ite_clrtobol()
1156 attrclr(sc, y, 0, 1, x); in ite_clrtobol()
1157 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_clrtobol()
1161 ite_clrline(struct ite_softc *sc) in ite_clrline() argument
1163 int y = sc->cury; in ite_clrline()
1165 SUBR_CLEAR(sc, y, 0, 1, sc->cols); in ite_clrline()
1166 attrclr(sc, y, 0, 1, sc->cols); in ite_clrline()
1167 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_clrline()
1173 ite_clrtoeos(struct ite_softc *sc) in ite_clrtoeos() argument
1176 ite_clrtoeol(sc); in ite_clrtoeos()
1177 if (sc->cury < sc->rows - 1) { in ite_clrtoeos()
1178 SUBR_CLEAR(sc, sc->cury + 1, 0, in ite_clrtoeos()
1179 sc->rows - 1 - sc->cury, sc->cols); in ite_clrtoeos()
1180 attrclr(sc, sc->cury, 0, sc->rows - sc->cury, sc->cols); in ite_clrtoeos()
1181 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_clrtoeos()
1186 ite_clrtobos(struct ite_softc *sc) in ite_clrtobos() argument
1189 ite_clrtobol(sc); in ite_clrtobos()
1190 if (sc->cury > 0) { in ite_clrtobos()
1191 SUBR_CLEAR(sc, 0, 0, sc->cury, sc->cols); in ite_clrtobos()
1192 attrclr(sc, 0, 0, sc->cury, sc->cols); in ite_clrtobos()
1193 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_clrtobos()
1198 ite_clrscreen(struct ite_softc *sc) in ite_clrscreen() argument
1201 SUBR_CLEAR(sc, 0, 0, sc->rows, sc->cols); in ite_clrscreen()
1202 attrclr(sc, 0, 0, sc->rows, sc->cols); in ite_clrscreen()
1203 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_clrscreen()
1209 ite_dnline(struct ite_softc *sc, int n) in ite_dnline() argument
1216 if (sc->cury < sc->top_margin || sc->cury > sc->bottom_margin) in ite_dnline()
1219 n = uimin(n, sc->bottom_margin + 1 - sc->cury); in ite_dnline()
1220 if (n <= sc->bottom_margin - sc->cury) { in ite_dnline()
1221 SUBR_SCROLL(sc, sc->cury + n, 0, n, SCROLL_UP); in ite_dnline()
1222 attrmov(sc, sc->cury + n, 0, sc->cury, 0, in ite_dnline()
1223 sc->bottom_margin + 1 - sc->cury - n, sc->cols); in ite_dnline()
1225 SUBR_CLEAR(sc, sc->bottom_margin - n + 1, 0, n, sc->cols); in ite_dnline()
1226 attrclr(sc, sc->bottom_margin - n + 1, 0, n, sc->cols); in ite_dnline()
1227 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_dnline()
1231 ite_inline(struct ite_softc *sc, int n) in ite_inline() argument
1238 if (sc->cury < sc->top_margin || sc->cury > sc->bottom_margin) in ite_inline()
1241 n = uimin(n, sc->bottom_margin + 1 - sc->cury); in ite_inline()
1242 if (n <= sc->bottom_margin - sc->cury) { in ite_inline()
1243 SUBR_SCROLL(sc, sc->cury, 0, n, SCROLL_DOWN); in ite_inline()
1244 attrmov(sc, sc->cury, 0, sc->cury + n, 0, in ite_inline()
1245 sc->bottom_margin + 1 - sc->cury - n, sc->cols); in ite_inline()
1247 SUBR_CLEAR(sc, sc->cury, 0, n, sc->cols); in ite_inline()
1248 attrclr(sc, sc->cury, 0, n, sc->cols); in ite_inline()
1249 SUBR_CURSOR(sc, DRAW_CURSOR); in ite_inline()
1253 ite_lf(struct ite_softc *sc) in ite_lf() argument
1256 ++sc->cury; in ite_lf()
1257 if ((sc->cury == sc->bottom_margin+1) || (sc->cury == sc->rows)) { in ite_lf()
1258 sc->cury--; in ite_lf()
1259 SUBR_SCROLL(sc, sc->top_margin + 1, 0, 1, SCROLL_UP); in ite_lf()
1260 ite_clrline(sc); in ite_lf()
1262 SUBR_CURSOR(sc, MOVE_CURSOR); in ite_lf()
1263 clr_attr(sc, ATTR_INV); in ite_lf()
1266 sc->G0 = CSET_ASCII; in ite_lf()
1267 sc->G1 = CSET_DECGRAPH; in ite_lf()
1268 sc->G2 = 0; in ite_lf()
1269 sc->G3 = 0; in ite_lf()
1270 sc->GL = &sc->G0; in ite_lf()
1271 sc->GR = &sc->G1; in ite_lf()
1275 ite_crlf(struct ite_softc *sc) in ite_crlf() argument
1278 sc->curx = 0; in ite_crlf()
1279 ite_lf(sc); in ite_crlf()
1283 ite_cr(struct ite_softc *sc) in ite_cr() argument
1286 if (sc->curx) { in ite_cr()
1287 sc->curx = 0; in ite_cr()
1288 SUBR_CURSOR(sc, MOVE_CURSOR); in ite_cr()
1293 ite_rlf(struct ite_softc *sc) in ite_rlf() argument
1296 sc->cury--; in ite_rlf()
1297 if ((sc->cury < 0) || (sc->cury == sc->top_margin - 1)) { in ite_rlf()
1298 sc->cury++; in ite_rlf()
1299 SUBR_SCROLL(sc, sc->top_margin, 0, 1, SCROLL_DOWN); in ite_rlf()
1300 ite_clrline(sc); in ite_rlf()
1302 SUBR_CURSOR(sc, MOVE_CURSOR); in ite_rlf()
1303 clr_attr(sc, ATTR_INV); in ite_rlf()
1318 ite_argnum(struct ite_softc *sc) in ite_argnum() argument
1324 if (sc->ap == sc->argbuf) in ite_argnum()
1326 ch = *sc->ap; in ite_argnum()
1327 *sc->ap = 0; in ite_argnum()
1328 n = atoi (sc->argbuf); in ite_argnum()
1329 *sc->ap = ch; in ite_argnum()
1335 ite_zargnum(struct ite_softc *sc) in ite_zargnum() argument
1341 if (sc->ap == sc->argbuf) in ite_zargnum()
1343 ch = *sc->ap; in ite_zargnum()
1344 *sc->ap = 0; in ite_zargnum()
1345 n = atoi (sc->argbuf); in ite_zargnum()
1346 *sc->ap = ch; in ite_zargnum()
1354 struct ite_softc *sc; in ite_putstr() local
1357 sc = getitesp(dev); in ite_putstr()
1360 if ((sc->flags & (ITE_ACTIVE|ITE_INGRF)) != ITE_ACTIVE) in ite_putstr()
1363 SUBR_CURSOR(sc, START_CURSOROPT); in ite_putstr()
1366 iteputchar(s[i], sc); in ite_putstr()
1367 SUBR_CURSOR(sc, END_CURSOROPT); in ite_putstr()
1372 iteputchar(register int c, struct ite_softc *sc) in iteputchar() argument
1383 if (sc->escape) in iteputchar()
1385 switch (sc->escape) in iteputchar()
1394 sc->escape = 0; in iteputchar()
1399 sc->escape = 0; in iteputchar()
1404 sc->escape = 0; in iteputchar()
1409 sc->escape = 0; in iteputchar()
1414 sc->escape = 0; in iteputchar()
1419 sc->escape = 0; in iteputchar()
1424 sc->escape = 0; in iteputchar()
1429 sc->escape = 0; in iteputchar()
1434 sc->escape = 0; in iteputchar()
1439 sc->escape = 0; in iteputchar()
1444 sc->escape = 0; in iteputchar()
1449 sc->escape = 0; in iteputchar()
1456 sc->escape = ' '; in iteputchar()
1464 sc->escape = c; in iteputchar()
1490 sc->escape = 0; in iteputchar()
1497 sc->GR = &sc->G1; in iteputchar()
1498 sc->escape = 0; in iteputchar()
1502 sc->GL = &sc->G2; in iteputchar()
1503 sc->escape = 0; in iteputchar()
1507 sc->GR = &sc->G2; in iteputchar()
1508 sc->escape = 0; in iteputchar()
1512 sc->GL = &sc->G3; in iteputchar()
1513 sc->escape = 0; in iteputchar()
1517 sc->GR = &sc->G3; in iteputchar()
1518 sc->escape = 0; in iteputchar()
1522 sc->GR = &sc->G1; in iteputchar()
1523 sc->escape = 0; in iteputchar()
1529 sc->escape = '#'; in iteputchar()
1535 ite_reset (sc); in iteputchar()
1536 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1537 sc->escape = 0; in iteputchar()
1543 sc->save_curx = sc->curx; in iteputchar()
1544 sc->save_cury = sc->cury; in iteputchar()
1545 sc->save_attribute = sc->attribute; in iteputchar()
1546 sc->sc_G0 = sc->G0; in iteputchar()
1547 sc->sc_G1 = sc->G1; in iteputchar()
1548 sc->sc_G2 = sc->G2; in iteputchar()
1549 sc->sc_G3 = sc->G3; in iteputchar()
1550 sc->sc_GL = sc->GL; in iteputchar()
1551 sc->sc_GR = sc->GR; in iteputchar()
1552 sc->escape = 0; in iteputchar()
1557 sc->curx = sc->save_curx; in iteputchar()
1558 sc->cury = sc->save_cury; in iteputchar()
1559 sc->attribute = sc->save_attribute; in iteputchar()
1560 sc->G0 = sc->sc_G0; in iteputchar()
1561 sc->G1 = sc->sc_G1; in iteputchar()
1562 sc->G2 = sc->sc_G2; in iteputchar()
1563 sc->G3 = sc->sc_G3; in iteputchar()
1564 sc->GL = sc->sc_GL; in iteputchar()
1565 sc->GR = sc->sc_GR; in iteputchar()
1566 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1567 sc->escape = 0; in iteputchar()
1571 sc->keypad_appmode = 1; in iteputchar()
1572 sc->escape = 0; in iteputchar()
1576 sc->keypad_appmode = 0; in iteputchar()
1577 sc->escape = 0; in iteputchar()
1581 if (sc->emul_level == EMUL_VT100) in iteputchar()
1585 sc->escape = 0; in iteputchar()
1590 sc->escape = 0; in iteputchar()
1599 sc->G0 = CSET_ASCII; in iteputchar()
1600 sc->escape = 0; in iteputchar()
1603 sc->G0 = CSET_DECGRAPH; in iteputchar()
1604 sc->escape = 0; in iteputchar()
1608 sc->escape = 0; in iteputchar()
1612 sc->escape = 0; in iteputchar()
1620 sc->eightbit_C1 = 0; in iteputchar()
1621 sc->escape = 0; in iteputchar()
1625 sc->eightbit_C1 = 1; in iteputchar()
1626 sc->escape = 0; in iteputchar()
1631 sc->escape = 0; in iteputchar()
1642 sc->escape = 0; in iteputchar()
1647 sc->escape = 0; in iteputchar()
1652 sc->escape = 0; in iteputchar()
1657 sc->escape = 0; in iteputchar()
1662 alignment_display (sc); in iteputchar()
1663 sc->escape = 0; in iteputchar()
1667 sc->escape = 0; in iteputchar()
1681 if (sc->ap < sc->argbuf + MAX_ARGSIZE) in iteputchar()
1682 *sc->ap++ = c; in iteputchar()
1689 if (--sc->curx < 0) in iteputchar()
1690 sc->curx = 0; in iteputchar()
1692 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1696 *sc->ap = 0; in iteputchar()
1697 if (! strncmp (sc->argbuf, "61\"", 3)) in iteputchar()
1698 sc->emul_level = EMUL_VT100; in iteputchar()
1699 else if (! strncmp (sc->argbuf, "63;1\"", 5) in iteputchar()
1700 || ! strncmp (sc->argbuf, "62;1\"", 5)) in iteputchar()
1701 sc->emul_level = EMUL_VT300_7; in iteputchar()
1703 sc->emul_level = EMUL_VT300_8; in iteputchar()
1704 sc->escape = 0; in iteputchar()
1709 *sc->ap = 0; in iteputchar()
1710 sc->escape = '?'; in iteputchar()
1711 sc->ap = sc->argbuf; in iteputchar()
1716 *sc->ap = 0; in iteputchar()
1717 if (sc->argbuf[0] == '>') in iteputchar()
1721 else switch (ite_zargnum(sc)) in iteputchar()
1725 if (sc->emul_level == EMUL_VT100) in iteputchar()
1731 sc->escape = 0; in iteputchar()
1735 switch (ite_zargnum(sc)) in iteputchar()
1742 snprintf (sc->argbuf, sizeof(sc->argbuf), "\033[%d;%dR", in iteputchar()
1743 sc->cury + 1, sc->curx + 1); in iteputchar()
1744 ite_sendstr (sc->argbuf); in iteputchar()
1747 sc->escape = 0; in iteputchar()
1752 switch (ite_zargnum(sc)) in iteputchar()
1762 sc->escape = 0; in iteputchar()
1767 switch (ite_zargnum(sc)) in iteputchar()
1770 if (sc->curx < sc->cols) in iteputchar()
1771 sc->tabs[sc->curx] = 0; in iteputchar()
1774 for (n = 0; n < sc->cols; n++) in iteputchar()
1775 sc->tabs[n] = 0; in iteputchar()
1778 sc->escape = 0; in iteputchar()
1783 n = ite_zargnum (sc); in iteputchar()
1787 sc->imode = (c == 'h'); /* insert/replace mode */ in iteputchar()
1790 sc->linefeed_newline = (c == 'h'); in iteputchar()
1793 sc->escape = 0; in iteputchar()
1798 ite_dnline (sc, ite_argnum (sc)); in iteputchar()
1799 sc->escape = 0; in iteputchar()
1804 ite_inline (sc, ite_argnum (sc)); in iteputchar()
1805 sc->escape = 0; in iteputchar()
1810 ite_dnchar (sc, ite_argnum (sc)); in iteputchar()
1811 sc->escape = 0; in iteputchar()
1816 ite_inchar (sc, ite_argnum (sc)); in iteputchar()
1817 sc->escape = 0; in iteputchar()
1825 *sc->ap = 0; in iteputchar()
1826 x = atoi (sc->argbuf); in iteputchar()
1828 sc->curx = uimin(x, sc->cols - 1); in iteputchar()
1829 sc->escape = 0; in iteputchar()
1830 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1831 clr_attr (sc, ATTR_INV); in iteputchar()
1838 *sc->ap = 0; in iteputchar()
1839 y = atoi (sc->argbuf); in iteputchar()
1841 if (sc->inside_margins) in iteputchar()
1842 y += sc->top_margin; in iteputchar()
1843 sc->cury = uimin(y, sc->rows - 1); in iteputchar()
1844 sc->escape = 0; in iteputchar()
1845 snap_cury(sc); in iteputchar()
1846 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1847 clr_attr (sc, ATTR_INV); in iteputchar()
1853 *sc->ap = 0; in iteputchar()
1854 y = atoi (sc->argbuf); in iteputchar()
1856 cp = strchr(sc->argbuf, ';'); in iteputchar()
1861 if (sc->inside_margins) in iteputchar()
1862 y += sc->top_margin; in iteputchar()
1863 sc->cury = uimin(y, sc->rows - 1); in iteputchar()
1864 sc->curx = uimin(x, sc->cols - 1); in iteputchar()
1865 sc->escape = 0; in iteputchar()
1866 snap_cury(sc); in iteputchar()
1867 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1868 clr_attr (sc, ATTR_INV); in iteputchar()
1872 n = ite_argnum (sc); in iteputchar()
1873 n = sc->cury - (n ? n : 1); in iteputchar()
1875 if (sc->inside_margins) in iteputchar()
1876 n = uimax(sc->top_margin, n); in iteputchar()
1877 else if (n == sc->top_margin - 1) in iteputchar()
1880 n = sc->top_margin; in iteputchar()
1881 sc->cury = n; in iteputchar()
1882 sc->escape = 0; in iteputchar()
1883 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1884 clr_attr (sc, ATTR_INV); in iteputchar()
1888 n = ite_argnum (sc); in iteputchar()
1889 n = sc->cury + (n ? n : 1); in iteputchar()
1890 n = uimin(sc->rows - 1, n); in iteputchar()
1891 if (sc->inside_margins) in iteputchar()
1892 n = uimin(sc->bottom_margin, n); in iteputchar()
1893 else if (n == sc->bottom_margin + 1) in iteputchar()
1896 n = sc->bottom_margin; in iteputchar()
1897 sc->cury = n; in iteputchar()
1898 sc->escape = 0; in iteputchar()
1899 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1900 clr_attr (sc, ATTR_INV); in iteputchar()
1904 n = ite_argnum (sc); in iteputchar()
1906 sc->curx = uimin(sc->curx + n, sc->cols - 1); in iteputchar()
1907 sc->escape = 0; in iteputchar()
1908 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1909 clr_attr (sc, ATTR_INV); in iteputchar()
1913 n = ite_argnum (sc); in iteputchar()
1915 n = sc->curx - n; in iteputchar()
1916 sc->curx = n >= 0 ? n : 0; in iteputchar()
1917 sc->escape = 0; in iteputchar()
1918 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1919 clr_attr (sc, ATTR_INV); in iteputchar()
1926 *sc->ap = 0; in iteputchar()
1927 n = ite_zargnum (sc); in iteputchar()
1929 ite_clrtoeos(sc); in iteputchar()
1931 ite_clrtobos(sc); in iteputchar()
1933 ite_clrscreen(sc); in iteputchar()
1934 sc->escape = 0; in iteputchar()
1939 n = ite_zargnum (sc); in iteputchar()
1941 ite_clrtoeol(sc); in iteputchar()
1943 ite_clrtobol(sc); in iteputchar()
1945 ite_clrline(sc); in iteputchar()
1946 sc->escape = 0; in iteputchar()
1951 n = ite_argnum(sc) - 1; in iteputchar()
1952 n = uimin(n, sc->cols - 1 - sc->curx); in iteputchar()
1955 attrclr(sc, sc->cury, sc->curx + n, 1, 1); in iteputchar()
1956 SUBR_PUTC(sc, ' ', sc->cury, sc->curx + n, ATTR_NOR); in iteputchar()
1958 sc->escape = 0; in iteputchar()
1964 sc->escape = 0; in iteputchar()
1969 *sc->ap = 0; in iteputchar()
1970 x = atoi (sc->argbuf); in iteputchar()
1972 y = sc->rows; in iteputchar()
1973 cp = strchr(sc->argbuf, ';'); in iteputchar()
1977 y = y ? y : sc->rows; in iteputchar()
1983 y = sc->rows; in iteputchar()
1987 sc->top_margin = uimin(x, sc->rows - 1); in iteputchar()
1988 sc->bottom_margin = uimin(y, sc->rows - 1); in iteputchar()
1989 if (sc->inside_margins) in iteputchar()
1991 sc->cury = sc->top_margin; in iteputchar()
1992 sc->curx = 0; in iteputchar()
1993 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
1995 sc->escape = 0; in iteputchar()
2003 *sc->ap = 0; in iteputchar()
2005 if (sc->ap == sc->argbuf) in iteputchar()
2006 sc->ap++; in iteputchar()
2007 for (chp = sc->argbuf; chp < sc->ap; ) in iteputchar()
2013 clr_attr (sc, ATTR_ALL); in iteputchar()
2018 set_attr (sc, ATTR_BOLD); in iteputchar()
2026 clr_attr (sc, ATTR_BOLD); in iteputchar()
2031 clr_attr (sc, ATTR_UL); in iteputchar()
2036 clr_attr (sc, ATTR_BLINK); in iteputchar()
2041 clr_attr (sc, ATTR_INV); in iteputchar()
2052 set_attr (sc, ATTR_UL); in iteputchar()
2057 set_attr (sc, ATTR_BLINK); in iteputchar()
2062 set_attr (sc, ATTR_INV); in iteputchar()
2073 sc->escape = 0; in iteputchar()
2080 sc->escape = 0; in iteputchar()
2086 sc->escape = 0; in iteputchar()
2100 if (sc->ap < sc->argbuf + MAX_ARGSIZE - 1) in iteputchar()
2101 *sc->ap++ = c; in iteputchar()
2106 *sc->ap = 0; in iteputchar()
2107 if (sc->ap == &sc->argbuf[2]) in iteputchar()
2109 if (! strncmp (sc->argbuf, "15", 2)) in iteputchar()
2113 else if (! strncmp (sc->argbuf, "25", 2)) in iteputchar()
2117 else if (! strncmp (sc->argbuf, "26", 2)) in iteputchar()
2121 sc->escape = 0; in iteputchar()
2126 n = ite_zargnum (sc); in iteputchar()
2130 sc->cursor_appmode = (c == 'h'); in iteputchar()
2145 sc->inside_margins = (c == 'h'); in iteputchar()
2146 sc->curx = 0; in iteputchar()
2147 sc->cury = sc->inside_margins ? sc->top_margin : 0; in iteputchar()
2148 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
2152 sc->auto_wrap = (c == 'h'); in iteputchar()
2156 sc->key_repeat = (c == 'h'); in iteputchar()
2160 sc->linefeed_newline = (c == 'h'); in iteputchar()
2164 SUBR_CURSOR(sc, (c == 'h') ? DRAW_CURSOR : ERASE_CURSOR); in iteputchar()
2167 sc->escape = 0; in iteputchar()
2171 sc->escape = 0; in iteputchar()
2178 sc->escape = 0; in iteputchar()
2190 if (sc->linefeed_newline) in iteputchar()
2191 ite_crlf (sc); in iteputchar()
2193 ite_lf (sc); in iteputchar()
2197 ite_cr (sc); in iteputchar()
2201 if (--sc->curx < 0) in iteputchar()
2202 sc->curx = 0; in iteputchar()
2204 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
2208 for (n = sc->curx + 1; n < sc->cols; n++) { in iteputchar()
2209 if (sc->tabs[n]) { in iteputchar()
2210 sc->curx = n; in iteputchar()
2211 SUBR_CURSOR(sc, MOVE_CURSOR); in iteputchar()
2223 sc->GL = &sc->G1; in iteputchar()
2227 sc->GL = &sc->G0; in iteputchar()
2235 sc->escape = 0; /* cancel any escape sequence in progress */ in iteputchar()
2239 sc->escape = 0; /* dito, but see below */ in iteputchar()
2244 sc->escape = ESC; in iteputchar()
2250 ite_lf (sc); in iteputchar()
2254 ite_crlf (sc); in iteputchar()
2258 if (sc->curx < sc->cols) in iteputchar()
2259 sc->tabs[sc->curx] = 1; in iteputchar()
2263 ite_rlf (sc); in iteputchar()
2274 sc->escape = DCS; in iteputchar()
2275 sc->ap = sc->argbuf; in iteputchar()
2279 sc->escape = CSI; in iteputchar()
2280 sc->ap = sc->argbuf; in iteputchar()
2288 sc->escape = OSC; in iteputchar()
2292 sc->escape = PM; in iteputchar()
2296 sc->escape = APC; in iteputchar()
2302 if (sc->imode) in iteputchar()
2303 ite_inchar(sc, 1); in iteputchar()
2304 iteprecheckwrap(sc); in iteputchar()
2306 if ((sc->attribute & ATTR_INV) || attrtest(sc, ATTR_INV)) { in iteputchar()
2307 attrset(sc, ATTR_INV); in iteputchar()
2308 SUBR_PUTC(sc, c, sc->cury, sc->curx, ATTR_INV); in iteputchar()
2310 SUBR_PUTC(sc, c, sc->cury, sc->curx, ATTR_NOR); in iteputchar()
2312 SUBR_PUTC(sc, c, sc->cury, sc->curx, sc->attribute); in iteputchar()
2314 SUBR_CURSOR(sc, DRAW_CURSOR); in iteputchar()
2315 itecheckwrap(sc); in iteputchar()
2321 iteprecheckwrap(struct ite_softc *sc) in iteprecheckwrap() argument
2323 if (sc->auto_wrap && sc->curx == sc->cols) { in iteprecheckwrap()
2324 sc->curx = 0; in iteprecheckwrap()
2325 clr_attr(sc, ATTR_INV); in iteprecheckwrap()
2326 if (++sc->cury >= sc->bottom_margin + 1) { in iteprecheckwrap()
2327 sc->cury = sc->bottom_margin; in iteprecheckwrap()
2328 SUBR_CURSOR(sc, MOVE_CURSOR); in iteprecheckwrap()
2329 SUBR_SCROLL(sc, sc->top_margin + 1, 0, 1, SCROLL_UP); in iteprecheckwrap()
2330 ite_clrtoeol(sc); in iteprecheckwrap()
2332 SUBR_CURSOR(sc, MOVE_CURSOR); in iteprecheckwrap()
2337 itecheckwrap(struct ite_softc *sc) in itecheckwrap() argument
2339 if (sc->curx < sc->cols) { in itecheckwrap()
2340 sc->curx++; in itecheckwrap()
2341 SUBR_CURSOR(sc, MOVE_CURSOR); in itecheckwrap()