aboutsummaryrefslogtreecommitdiff
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)
downloadst-f0ee36878cca03306480e91bc7ac6f5a32fd6d22.tar.gz
st-f0ee36878cca03306480e91bc7ac6f5a32fd6d22.tar.bz2
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;