summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2012-10-06 21:19:56 +0200
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2012-10-06 21:19:56 +0200
commitf0ee36878cca03306480e91bc7ac6f5a32fd6d22 (patch)
tree64f1c395cf45815587c022baba586e7f7de84e44
parenta90662fdcf4adf365ad91cfa3c18b28f9041712a (diff)
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.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/st.c b/st.c
index ba44b1c..85b0b59 100644
--- a/st.c
+++ b/st.c
@@ -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;