diff options
author | Roberto E. Vargas Caballero | 2012-10-06 21:19:56 +0200 |
---|---|---|
committer | Roberto E. Vargas Caballero | 2012-10-06 21:19:56 +0200 |
commit | ffeeb678c5c6c6b895ad494b5b62195dd9893f65 (patch) | |
tree | 64f1c395cf45815587c022baba586e7f7de84e44 | |
parent | bffa6e5cc612dcead2d6ff3803ec72cb69c151bd (diff) | |
download | st-ffeeb678c5c6c6b895ad494b5b62195dd9893f65.tar.gz st-ffeeb678c5c6c6b895ad494b5b62195dd9893f65.tar.xz st-ffeeb678c5c6c6b895ad494b5b62195dd9893f65.zip |
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(+)
-rw-r--r-- | st.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -72,6 +72,8 @@ #define X2COL(x) (((x) - BORDER)/xw.cw) #define Y2ROW(y) (((y) - BORDER)/xw.ch) +#define VT102ID "\033[?6c" + enum glyph_attribute { ATTR_NULL = 0, ATTR_REVERSE = 1, @@ -1510,6 +1512,10 @@ csihandle(void) { DEFAULT(csiescseq.arg[0], 1); tmoveto(term.c.x, term.c.y+csiescseq.arg[0]); break; + case 'c': /* DA -- Device Attributes */ + if(csiescseq.arg[0] == 0) + ttywrite(VT102ID, sizeof(VT102ID)); + break; case 'C': /* CUF -- Cursor <n> Forward */ case 'a': DEFAULT(csiescseq.arg[0], 1); @@ -1933,6 +1939,9 @@ tputc(char *c, int len) { } term.esc = 0; break; + case 'Z': /* DECID -- Identify Terminal */ + ttywrite(VT102ID, sizeof(VT102ID)); + break; case 'c': /* RIS -- Reset to inital state */ treset(); term.esc = 0; |