summaryrefslogtreecommitdiff
path: root/escape.h
diff options
context:
space:
mode:
Diffstat (limited to 'escape.h')
-rw-r--r--escape.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/escape.h b/escape.h
index 20ec740..d04415d 100644
--- a/escape.h
+++ b/escape.h
@@ -17,6 +17,9 @@
//ESC c
//ESC [ [1-3] J
+//ESCMA-49 mode switch bullshit that may or may not clear the screen
+// ESC [ ? [0-9]* [lh]
+
//ESC [ [1-2] K
//ESC [ m @
// note: these two can't clear im preview b/c of scroll locking
@@ -78,6 +81,8 @@ int out_clr = 0;
//updates c parity depending on cursor store and restore
//if c parity is not NULL
+ // only from ESC 7 and ESC 8, any terminal that implements the CSI
+ // ESC [ s and ESC [ u probably doesn't use the same buffer as above
//sets clr to 1 if it encounters a cursor clear escape sequence
// if clr is not NULL
@@ -171,7 +176,7 @@ enum esc_state update_esc_state(char * buff,unsigned int buff_len,
break;
case CSI_START:
case CSI_MID:
- if (c == 'J') {
+ if (c == 'J' || c == 'h' || c == 'l') {
state = CSI_END;
if (clr != NULL) {
*clr = 1;