Lines Matching refs:ip
88 #define SUBR_INIT(ip) (ip)->grf->g_iteinit(ip)
89 #define SUBR_DEINIT(ip) (ip)->grf->g_itedeinit(ip)
90 #define SUBR_PUTC(ip,c,dy,dx,m) (ip)->grf->g_iteputc(ip,c,dy,dx,m)
91 #define SUBR_CURSOR(ip,flg) (ip)->grf->g_itecursor(ip,flg)
92 #define SUBR_CLEAR(ip,sy,sx,h,w) (ip)->grf->g_iteclear(ip,sy,sx,h,w)
93 #define SUBR_SCROLL(ip,sy,sx,count,dir) \
94 (ip)->grf->g_itescroll(ip,sy,sx,count,dir)
119 void iteputchar(int c, struct ite_softc *ip);
202 struct ite_softc *ip;
207 ip = device_private(self);
216 memcpy(&ip->grf, &con_itesoftc.grf,
217 (char *)&ip[1] - (char *)&ip->grf);
219 kbd_ite = ip;
221 ip->grf = gp;
225 printf(": rows %d cols %d", ip->rows, ip->cols);
230 kbd_ite = ip;
231 if (kbd_ite == ip)
234 ip->flags |= ITE_ATTACHED;
314 struct ite_softc *ip;
316 ip = getitesp(cd->cn_dev);
318 ip->flags |= ITE_ACTIVE | ITE_ISCONS;
332 ite_cnfinish(struct ite_softc *ip)
359 struct ite_softc *ip;
362 ip = getitesp(dev);
366 (ip->flags & (ITE_ACTIVE | ITE_INGRF)) != ITE_ACTIVE) {
370 iteputchar(ch, ip);
390 struct ite_softc *ip;
393 ip = getitesp(dev);
394 if (ip->flags & ITE_INITED)
403 ip->cursorx = 0;
404 ip->cursory = 0;
405 if (ip->grf->g_iteinit == NULL)
407 SUBR_INIT(ip);
408 SUBR_CURSOR(ip, DRAW_CURSOR);
409 if (ip->tabs == NULL)
410 ip->tabs = malloc(MAX_TABS * sizeof(u_char),M_DEVBUF,M_WAITOK);
411 ite_reset(ip);
412 ip->flags |= ITE_INITED;
418 struct ite_softc *ip;
427 ip = getitesp(dev);
428 if (ip == NULL)
430 if ((ip->flags & ITE_ATTACHED) == 0)
433 if (ip->tp == NULL) {
434 tp = ip->tp = tty_alloc();
437 tp = ip->tp;
442 if ((ip->flags & ITE_ACTIVE) == 0) {
467 tp->t_winsize.ws_row = ip->rows;
468 tp->t_winsize.ws_col = ip->cols;
534 struct ite_softc *ip;
539 ip = getitesp(dev);
540 tp = ip->tp;
594 error = ite_grf_ioctl(ip, cmd, addr, flag, l);
641 struct ite_softc *ip;
643 ip = getitesp(dev);
647 ip->flags |= ITE_ACTIVE;
648 ip->flags &= ~(ITE_INGRF | ITE_INITED);
652 ip->flags &= ~ITE_INGRF;
653 if ((ip->flags & ITE_ACTIVE) == 0)
656 ip->flags |= ITE_ACTIVE;
657 if (ip->flags & ITE_INGRF)
665 struct ite_softc *ip;
667 ip = getitesp(dev);
669 ip->flags |= ITE_INGRF;
670 if ((ip->flags & ITE_ACTIVE) == 0)
673 (ip->flags & (ITE_INGRF | ITE_ISCONS | ITE_INITED)) == ITE_INITED)
674 SUBR_DEINIT(ip);
677 ip->flags &= ~ITE_ACTIVE;
685 struct ite_softc *ip;
687 ip = getitesp(dev);
688 ip->flags &= ~ITE_INITED;
702 ite_reset(struct ite_softc *ip)
706 ip->curx = 0;
707 ip->cury = 0;
708 ip->attribute = ATTR_NOR;
709 ip->save_curx = 0;
710 ip->save_cury = 0;
711 ip->save_attribute = ATTR_NOR;
712 ip->ap = ip->argbuf;
713 ip->emul_level = 0;
714 ip->eightbit_C1 = 0;
715 ip->top_margin = 0;
716 ip->bottom_margin = ip->rows - 1;
717 ip->inside_margins = 0;
718 ip->linefeed_newline = 0;
719 ip->auto_wrap = ite_default_wrap;
720 ip->cursor_appmode = 0;
721 ip->keypad_appmode = 0;
722 ip->imode = 0;
723 ip->key_repeat = 1;
724 memset(ip->tabs, 0, ip->cols);
725 for (i = 0; i < ip->cols; i++)
726 ip->tabs[i] = ((i & 7) == 0);
1020 alignment_display(struct ite_softc *ip)
1024 for (j = 0; j < ip->rows; j++)
1025 for (i = 0; i < ip->cols; i++)
1026 SUBR_PUTC(ip, 'E', j, i, ATTR_NOR);
1027 attrclr(ip, 0, 0, ip->rows, ip->cols);
1028 SUBR_CURSOR(ip, DRAW_CURSOR);
1032 snap_cury(struct ite_softc *ip)
1034 if (ip->inside_margins)
1036 if (ip->cury < ip->top_margin)
1037 ip->cury = ip->top_margin;
1038 if (ip->cury > ip->bottom_margin)
1039 ip->cury = ip->bottom_margin;
1044 ite_dnchar(struct ite_softc *ip, int n)
1046 n = uimin(n, ip->cols - ip->curx);
1047 if (n < ip->cols - ip->curx)
1049 SUBR_SCROLL(ip, ip->cury, ip->curx + n, n, SCROLL_LEFT);
1050 attrmov(ip, ip->cury, ip->curx + n, ip->cury, ip->curx,
1051 1, ip->cols - ip->curx - n);
1052 attrclr(ip, ip->cury, ip->cols - n, 1, n);
1055 SUBR_PUTC(ip, ' ', ip->cury, ip->cols - n - 1, ATTR_NOR);
1056 SUBR_CURSOR(ip, DRAW_CURSOR);
1060 ite_inchar(struct ite_softc *ip, int n)
1062 n = uimin(n, ip->cols - ip->curx);
1063 if (n < ip->cols - ip->curx)
1065 SUBR_SCROLL(ip, ip->cury, ip->curx, n, SCROLL_RIGHT);
1066 attrmov(ip, ip->cury, ip->curx, ip->cury, ip->curx + n,
1067 1, ip->cols - ip->curx - n);
1068 attrclr(ip, ip->cury, ip->curx, 1, n);
1071 SUBR_PUTC(ip, ' ', ip->cury, ip->curx + n, ATTR_NOR);
1072 SUBR_CURSOR(ip, DRAW_CURSOR);
1076 ite_clrtoeol(struct ite_softc *ip)
1078 int y = ip->cury, x = ip->curx;
1079 if (ip->cols - x > 0)
1081 SUBR_CLEAR(ip, y, x, 1, ip->cols - x);
1082 attrclr(ip, y, x, 1, ip->cols - x);
1083 SUBR_CURSOR(ip, DRAW_CURSOR);
1088 ite_clrtobol(struct ite_softc *ip)
1090 int y = ip->cury, x = uimin(ip->curx + 1, ip->cols);
1091 SUBR_CLEAR(ip, y, 0, 1, x);
1092 attrclr(ip, y, 0, 1, x);
1093 SUBR_CURSOR(ip, DRAW_CURSOR);
1097 ite_clrline(struct ite_softc *ip)
1099 int y = ip->cury;
1100 SUBR_CLEAR(ip, y, 0, 1, ip->cols);
1101 attrclr(ip, y, 0, 1, ip->cols);
1102 SUBR_CURSOR(ip, DRAW_CURSOR);
1108 ite_clrtoeos(struct ite_softc *ip)
1110 ite_clrtoeol(ip);
1111 if (ip->cury < ip->rows - 1)
1113 SUBR_CLEAR(ip, ip->cury + 1, 0, ip->rows - 1 - ip->cury, ip->cols);
1114 attrclr(ip, ip->cury, 0, ip->rows - ip->cury, ip->cols);
1115 SUBR_CURSOR(ip, DRAW_CURSOR);
1120 ite_clrtobos(struct ite_softc *ip)
1122 ite_clrtobol(ip);
1123 if (ip->cury > 0)
1125 SUBR_CLEAR(ip, 0, 0, ip->cury, ip->cols);
1126 attrclr(ip, 0, 0, ip->cury, ip->cols);
1127 SUBR_CURSOR(ip, DRAW_CURSOR);
1132 ite_clrscreen(struct ite_softc *ip)
1134 SUBR_CLEAR(ip, 0, 0, ip->rows, ip->cols);
1135 attrclr(ip, 0, 0, ip->rows, ip->cols);
1136 SUBR_CURSOR(ip, DRAW_CURSOR);
1142 ite_dnline(struct ite_softc *ip, int n)
1146 if (ip->cury < ip->top_margin || ip->cury > ip->bottom_margin)
1149 n = uimin(n, ip->bottom_margin + 1 - ip->cury);
1150 if (n <= ip->bottom_margin - ip->cury)
1152 SUBR_SCROLL(ip, ip->cury + n, 0, n, SCROLL_UP);
1153 attrmov(ip, ip->cury + n, 0, ip->cury, 0,
1154 ip->bottom_margin + 1 - ip->cury - n, ip->cols);
1156 SUBR_CLEAR(ip, ip->bottom_margin - n + 1, 0, n, ip->cols);
1157 attrclr(ip, ip->bottom_margin - n + 1, 0, n, ip->cols);
1158 SUBR_CURSOR(ip, DRAW_CURSOR);
1162 ite_inline(struct ite_softc *ip, int n)
1166 if (ip->cury < ip->top_margin || ip->cury > ip->bottom_margin)
1169 n = uimin(n, ip->bottom_margin + 1 - ip->cury);
1170 if (n <= ip->bottom_margin - ip->cury)
1172 SUBR_SCROLL(ip, ip->cury, 0, n, SCROLL_DOWN);
1173 attrmov(ip, ip->cury, 0, ip->cury + n, 0,
1174 ip->bottom_margin + 1 - ip->cury - n, ip->cols);
1176 SUBR_CLEAR(ip, ip->cury, 0, n, ip->cols);
1177 attrclr(ip, ip->cury, 0, n, ip->cols);
1178 SUBR_CURSOR(ip, DRAW_CURSOR);
1182 ite_lf(struct ite_softc *ip)
1184 ++ip->cury;
1185 if ((ip->cury == ip->bottom_margin+1) || (ip->cury == ip->rows))
1187 ip->cury--;
1188 SUBR_SCROLL(ip, ip->top_margin + 1, 0, 1, SCROLL_UP);
1189 ite_clrline(ip);
1191 SUBR_CURSOR(ip, MOVE_CURSOR);
1192 clr_attr(ip, ATTR_INV);
1196 ite_crlf(struct ite_softc *ip)
1198 ip->curx = 0;
1199 ite_lf (ip);
1203 ite_cr(struct ite_softc *ip)
1205 if (ip->curx)
1207 ip->curx = 0;
1208 SUBR_CURSOR(ip, MOVE_CURSOR);
1213 ite_rlf(struct ite_softc *ip)
1215 ip->cury--;
1216 if ((ip->cury < 0) || (ip->cury == ip->top_margin - 1))
1218 ip->cury++;
1219 SUBR_SCROLL(ip, ip->top_margin, 0, 1, SCROLL_DOWN);
1220 ite_clrline(ip);
1222 SUBR_CURSOR(ip, MOVE_CURSOR);
1223 clr_attr(ip, ATTR_INV);
1238 ite_argnum(struct ite_softc *ip)
1244 if (ip->ap == ip->argbuf)
1246 ch = *ip->ap;
1247 *ip->ap = 0;
1248 n = atoi (ip->argbuf);
1249 *ip->ap = ch;
1255 ite_zargnum(struct ite_softc *ip)
1261 if (ip->ap == ip->argbuf)
1263 ch = *ip->ap;
1264 *ip->ap = 0;
1265 n = atoi (ip->argbuf);
1266 *ip->ap = ch;
1274 struct ite_softc *ip;
1277 ip = getitesp(dev);
1280 if ((ip->flags & (ITE_ACTIVE|ITE_INGRF)) != ITE_ACTIVE)
1283 SUBR_CURSOR(ip, START_CURSOROPT);
1286 iteputchar(s[i], ip);
1287 SUBR_CURSOR(ip, END_CURSOROPT);
1291 iteprecheckwrap(struct ite_softc *ip)
1293 if (ip->auto_wrap && ip->curx == ip->cols) {
1294 ip->curx = 0;
1295 clr_attr(ip, ATTR_INV);
1296 if (++ip->cury >= ip->bottom_margin + 1) {
1297 ip->cury = ip->bottom_margin;
1298 SUBR_CURSOR(ip, MOVE_CURSOR);
1299 SUBR_SCROLL(ip, ip->top_margin + 1, 0, 1, SCROLL_UP);
1300 ite_clrtoeol(ip);
1302 SUBR_CURSOR(ip, MOVE_CURSOR);
1307 itecheckwrap(struct ite_softc *ip)
1310 if (++ip->curx == ip->cols) {
1311 if (ip->auto_wrap) {
1312 ip->curx = 0;
1313 clr_attr(ip, ATTR_INV);
1314 if (++ip->cury >= ip->bottom_margin + 1) {
1315 ip->cury = ip->bottom_margin;
1316 SUBR_CURSOR(ip, MOVE_CURSOR);
1317 SUBR_SCROLL(ip, ip->top_margin + 1, 0, 1, SCROLL_UP);
1318 ite_clrtoeol(ip);
1323 ip->curx--;
1326 if (ip->curx < ip->cols) {
1327 ip->curx++;
1328 SUBR_CURSOR(ip, MOVE_CURSOR);
1334 iteputchar(register int c, struct ite_softc *ip)
1345 if (ip->escape) {
1346 switch (ip->escape) {
1355 ip->escape = 0;
1363 ip->escape = 0;
1367 ip->escape = 0;
1371 ip->escape = 0;
1375 ip->escape = 0;
1379 ip->escape = 0;
1383 ip->escape = 0;
1387 ip->escape = 0;
1391 ip->escape = 0;
1395 ip->escape = 0;
1399 ip->escape = 0;
1403 ip->escape = 0;
1408 ip->escape = ' ';
1416 ip->escape = c;
1445 ip->escape = 0;
1453 ip->GR = ip->G1;
1454 ip->escape = 0;
1457 ip->GL = ip->G2;
1458 ip->escape = 0;
1461 ip->GR = ip->G2;
1462 ip->escape = 0;
1465 ip->GL = ip->G3;
1466 ip->escape = 0;
1469 ip->GR = ip->G3;
1470 ip->escape = 0;
1474 ip->escape = '#';
1478 ite_reset(ip);
1479 SUBR_CURSOR(ip, MOVE_CURSOR);
1480 ip->escape = 0;
1483 ip->save_curx = ip->curx;
1484 ip->save_cury = ip->cury;
1485 ip->save_attribute = ip->attribute;
1486 ip->escape = 0;
1489 ip->curx = ip
1490 ip->cury = ip->save_cury;
1491 ip->attribute = ip->save_attribute;
1492 SUBR_CURSOR(ip, MOVE_CURSOR);
1493 ip->escape = 0;
1496 ip->keypad_appmode = 1;
1497 ip->escape = 0;
1500 ip->keypad_appmode = 0;
1501 ip->escape = 0;
1505 if (ip->emul_level == EMUL_VT100)
1509 ip->escape = 0;
1516 ip->escape = 0;
1522 ip->escape = 0;
1527 ip->eightbit_C1 = 0;
1528 ip->escape = 0;
1531 ip->eightbit_C1 = 1;
1532 ip->escape = 0;
1536 ip->escape = 0;
1544 ip->escape = 0;
1548 ip->escape = 0;
1552 ip->escape = 0;
1556 ip->escape = 0;
1560 alignment_display(ip);
1561 ip->escape = 0;
1564 ip->escape = 0;
1585 if (ip->ap < ip->argbuf + MAX_ARGSIZE)
1586 *ip->ap++ = c;
1595 if (--ip->curx < 0)
1596 ip->curx = 0;
1598 SUBR_CURSOR(ip, MOVE_CURSOR);
1601 *ip->ap = 0;
1602 if (!strncmp(ip->argbuf, "61\"", 3))
1603 ip->emul_level = EMUL_VT100;
1604 else if (!strncmp(ip->argbuf, "63;1\"", 5)
1605 || !strncmp(ip->argbuf, "62;1\"", 5))
1606 ip->emul_level = EMUL_VT300_7;
1608 ip->emul_level = EMUL_VT300_8;
1609 ip->escape = 0;
1612 *ip->ap = 0;
1613 ip->escape = '?';
1614 ip->ap = ip->argbuf;
1617 *ip->ap = 0;
1618 if (ip->argbuf[0] == '>') {
1621 switch (ite_zargnum(ip)) {
1627 if (ip->emul_level
1636 ip->escape = 0;
1639 switch (ite_zargnum(ip)) {
1646 snprintf(ip->argbuf, sizeof(ip->argbuf),
1648 ip->cury + 1, ip->curx + 1);
1649 ite_sendstr(ip->argbuf);
1652 ip->escape = 0;
1655 switch (ite_zargnum(ip)) {
1664 ip->escape = 0;
1667 switch (ite_zargnum(ip)) {
1669 if (ip->curx < ip->cols)
1670 ip->tabs[ip->curx] = 0;
1673 for (n = 0; n < ip->cols; n++)
1674 ip->tabs[n] = 0;
1677 ip->escape = 0;
1681 n = ite_zargnum(ip);
1685 ip->imode = (c == 'h');
1688 ip->linefeed_newline = (c == 'h');
1691 ip->escape = 0;
1694 ite_dnline(ip, ite_argnum(ip));
1695 ip->escape = 0;
1698 ite_inline(ip, ite_argnum(ip));
1699 ip->escape = 0;
1702 ite_dnchar(ip, ite_argnum(ip));
1703 ip->escape = 0;
1706 ite_inchar(ip, ite_argnum(ip));
1707 ip->escape = 0;
1716 *ip->ap = 0;
1717 x = atoi(ip->argbuf);
1720 ip->curx = uimin(x, ip->cols - 1);
1721 ip->escape = 0;
1722 SUBR_CURSOR(ip, MOVE_CURSOR);
1723 clr_attr(ip, ATTR_INV);
1731 *ip->ap = 0;
1732 y = atoi(ip->argbuf);
1735 if (ip->inside_margins)
1736 y += ip->top_margin;
1737 ip->cury = uimin(y, ip->rows - 1);
1738 ip->escape = 0;
1739 snap_cury(ip);
1740 SUBR_CURSOR(ip, MOVE_CURSOR);
1741 clr_attr(ip, ATTR_INV);
1745 *ip->ap = 0;
1746 y = atoi(ip->argbuf);
1748 cp = strchr(ip->argbuf, ';');
1755 if (ip->inside_margins)
1756 y += ip->top_margin;
1757 ip->cury = uimin(y, ip->rows - 1);
1758 ip->curx = uimin(x, ip->cols - 1);
1759 ip->escape = 0;
1760 snap_cury(ip);
1761 SUBR_CURSOR(ip, MOVE_CURSOR);
1762 clr_attr(ip, ATTR_INV);
1765 n = ite_argnum(ip);
1766 n = ip->cury - (n ? n : 1);
1769 if (ip->inside_margins)
1770 n = uimax(ip->top_margin, n);
1771 else if (n == ip->top_margin - 1)
1777 n = ip->top_margin;
1778 ip->cury = n;
1779 ip->escape = 0;
1780 SUBR_CURSOR(ip, MOVE_CURSOR);
1781 clr_attr(ip, ATTR_INV);
1784 n = ite_argnum(ip);
1785 n = ip->cury + (n ? n : 1);
1786 n = uimin(ip->rows - 1, n);
1787 if (ip->inside_margins)
1788 n = uimin(ip->bottom_margin, n);
1789 else if (n == ip->bottom_margin + 1)
1795 n = ip->bottom_margin;
1796 ip->cury = n;
1797 ip->escape = 0;
1798 SUBR_CURSOR(ip, MOVE_CURSOR);
1799 clr_attr(ip, ATTR_INV);
1802 n = ite_argnum(ip);
1804 ip->curx = uimin(ip->curx + n, ip->cols - 1);
1805 ip->escape = 0;
1806 SUBR_CURSOR(ip, MOVE_CURSOR);
1807 clr_attr(ip, ATTR_INV);
1810 n = ite_argnum(ip);
1812 n = ip->curx - n;
1813 ip->curx = n >= 0 ? n : 0;
1814 ip->escape = 0;
1815 SUBR_CURSOR(ip, MOVE_CURSOR);
1816 clr_attr(ip, ATTR_INV);
1819 *ip->ap = 0;
1820 n = ite_zargnum(ip);
1822 ite_clrtoeos(ip);
1824 ite_clrtobos(ip);
1826 ite_clrscreen(ip);
1827 ip->escape = 0;
1830 n = ite_zargnum(ip);
1832 ite_clrtoeol(ip);
1834 ite_clrtobol(ip);
1836 ite_clrline(ip);
1837 ip->escape = 0;
1840 n = ite_argnum(ip) - 1;
1841 n = uimin(n, ip->cols - 1 - ip->curx);
1843 attrclr(ip, ip->cury, ip->curx + n, 1, 1);
1844 SUBR_PUTC(ip, ' ', ip->cury, ip->curx + n, ATTR_NOR);
1846 ip->escape = 0;
1851 ip->escape = 0;
1854 *ip->ap = 0;
1855 x = atoi(ip->argbuf);
1857 y = ip->rows;
1858 cp = strchr(ip->argbuf, ';');
1861 y = y ? y : ip->rows;
1869 y = ip->rows;
1873 ip->top_margin = uimin(x, ip->rows - 1);
1874 ip->bottom_margin = uimin(y, ip->rows - 1);
1875 if (ip->inside_margins) {
1876 ip->cury = ip->top_margin;
1877 ip->curx = 0;
1878 SUBR_CURSOR(ip, MOVE_CURSOR);
1880 ip->escape = 0;
1885 *ip->ap = 0;
1887 if (ip->ap == ip->argbuf)
1888 ip->ap++;
1889 for (_cp = ip->argbuf; _cp < ip->ap;) {
1893 clr_attr(ip, ATTR_ALL);
1898 set_attr(ip, ATTR_BOLD);
1905 clr_attr(ip, ATTR_BOLD);
1910 clr_attr(ip, ATTR_UL);
1915 clr_attr(ip, ATTR_BLINK);
1920 clr_attr(ip, ATTR_INV);
1931 set_attr(ip, ATTR_UL);
1936 set_attr(ip, ATTR_BLINK);
1941 set_attr(ip, ATTR_INV);
1950 ip->escape = 0;
1955 ip->escape = 0;
1958 ip->escape = 0;
1982 if (ip->ap < ip->argbuf + MAX_ARGSIZE - 1)
1983 *ip->ap++ = c;
1986 *ip->ap = 0;
1987 if (ip->ap == &ip->argbuf[2]) {
1988 if (!strncmp(ip->argbuf, "15", 2))
1992 else if (!strncmp(ip->argbuf, "25", 2))
1996 else if (!strncmp(ip->argbuf, "26", 2))
2000 ip->escape = 0;
2004 n = ite_zargnum(ip);
2007 ip->cursor_appmode = (c == 'h');
2021 ip->inside_margins = (c == 'h');
2022 ip->curx = 0;
2023 ip->cury = ip->inside_margins ?
2024 ip->top_margin : 0;
2025 SUBR_CURSOR(ip, MOVE_CURSOR);
2028 ip->auto_wrap = (c == 'h');
2031 ip->key_repeat = (c == 'h');
2034 ip->linefeed_newline = (c == 'h');
2037 SUBR_CURSOR(ip, (c == 'h') ?
2041 ip->escape = 0;
2044 ip->escape = 0;
2049 ip->escape = 0;
2060 if (ip->linefeed_newline)
2061 ite_crlf(ip);
2063 ite_lf(ip);
2066 ite_cr(ip);
2069 if (--ip->curx < 0)
2070 ip->curx = 0;
2072 SUBR_CURSOR(ip, MOVE_CURSOR);
2075 for (n = ip->curx + 1; n < ip->cols; n++) {
2076 if (ip->tabs[n]) {
2077 ip->curx = n;
2078 SUBR_CURSOR(ip, MOVE_CURSOR);
2092 ip->GL = ip->G1;
2095 ip->GL = ip->G0;
2101 ip->escape = 0; /* cancel any escape sequence in progress */
2104 ip->escape = 0; /* dito, but see below */
2108 ip->escape = ESC;
2115 ite_lf(ip);
2119 ite_crlf(ip);
2123 if (ip->curx < ip->cols)
2124 ip->tabs[ip->curx] = 1;
2128 ite_rlf(ip);
2139 ip->escape = DCS;
2140 ip->ap = ip->argbuf;
2144 ip->escape = CSI;
2145 ip->ap = ip->argbuf;
2156 ip->escape = OSC;
2160 ip->escape = PM;
2166 ip->escape = APC;
2171 if (ip->imode)
2172 ite_inchar(ip, 1);
2173 iteprecheckwrap(ip);
2175 if ((ip->attribute & ATTR_INV) || attrtest(ip, ATTR_INV)) {
2176 attrset(ip, ATTR_INV);
2177 SUBR_PUTC(ip, c, ip->cury, ip->curx, ATTR_INV);
2179 SUBR_PUTC(ip, c, ip->cury, ip->curx, ATTR_NOR);
2181 SUBR_PUTC(ip, c, ip->cury, ip->curx, ip->attribute);
2183 SUBR_CURSOR(ip, DRAW_CURSOR);
2184 itecheckwrap(ip);