Add DA and DECID sequences - st - Simple Terminal
Log
Files
Refs
README
LICENSE
---
commit ffeeb678c5c6c6b895ad494b5b62195dd9893f65
parent bffa6e5cc612dcead2d6ff3803ec72cb69c151bd
Author: Roberto E. Vargas Caballero 
Date:   Sat,  6 Oct 2012 21:19:56 +0200

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(+)
Diffstat:
  st.c                                |       9 +++++++++

1 file changed, 9 insertions(+), 0 deletions(-)
---
diff --git 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  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;