Commit Diff


commit - a90662fdcf4adf365ad91cfa3c18b28f9041712a
commit + f0ee36878cca03306480e91bc7ac6f5a32fd6d22
blob - ba44b1ccf7f04c0238d65652d6b3404aadd555c5
blob + 85b0b5901f8d3d6b2fe8b96cce81f1d27cf75949
--- st.c
+++ 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;