Add DA and DECID sequences

These sequences are used by the host in order to can detect which kind of
terminal is connected. St will answer like a vt102 terminal with this patch.
---
 st.c |    9 +++++++++
 1 file changed, 9 insertions(+)
This commit is contained in:
Roberto E. Vargas Caballero 2012-10-06 21:19:56 +02:00
parent bffa6e5cc6
commit ffeeb678c5

9
st.c
View file

@ -72,6 +72,8 @@
#define X2COL(x) (((x) - BORDER)/xw.cw) #define X2COL(x) (((x) - BORDER)/xw.cw)
#define Y2ROW(y) (((y) - BORDER)/xw.ch) #define Y2ROW(y) (((y) - BORDER)/xw.ch)
#define VT102ID "\033[?6c"
enum glyph_attribute { enum glyph_attribute {
ATTR_NULL = 0, ATTR_NULL = 0,
ATTR_REVERSE = 1, ATTR_REVERSE = 1,
@ -1510,6 +1512,10 @@ csihandle(void) {
DEFAULT(csiescseq.arg[0], 1); DEFAULT(csiescseq.arg[0], 1);
tmoveto(term.c.x, term.c.y+csiescseq.arg[0]); tmoveto(term.c.x, term.c.y+csiescseq.arg[0]);
break; break;
case 'c': /* DA -- Device Attributes */
if(csiescseq.arg[0] == 0)
ttywrite(VT102ID, sizeof(VT102ID));
break;
case 'C': /* CUF -- Cursor <n> Forward */ case 'C': /* CUF -- Cursor <n> Forward */
case 'a': case 'a':
DEFAULT(csiescseq.arg[0], 1); DEFAULT(csiescseq.arg[0], 1);
@ -1933,6 +1939,9 @@ tputc(char *c, int len) {
} }
term.esc = 0; term.esc = 0;
break; break;
case 'Z': /* DECID -- Identify Terminal */
ttywrite(VT102ID, sizeof(VT102ID));
break;
case 'c': /* RIS -- Reset to inital state */ case 'c': /* RIS -- Reset to inital state */
treset(); treset();
term.esc = 0; term.esc = 0;