diff --git a/include/VT100.js b/include/VT100.js index 6a325e1..f1b5708 100644 --- a/include/VT100.js +++ b/include/VT100.js @@ -697,6 +697,11 @@ VT100.prototype.write = function(stuff) this.esc_state_ = 2; this.debug("write:: set escape state: 2"); break; + case ']': + case 'P': + this.esc_state_ = 7; + this.debug("write:: set escape state: 7"); + break; case '=': /* Set keypade mode (ignored) */ this.debug("write:: set keypade mode: ignored"); @@ -903,6 +908,28 @@ VT100.prototype.write = function(stuff) this.esc_state_ = 0; this.debug("write:: set escape state: 0"); break; + case 7: // DCS, OSC + switch (ch) { + case '\x07': // BEL + case '\x9c': // ST + this.esc_state_ = 0; + this.debug("write:: set escape state: 0"); + break; + case '\x1b': // ST + this.esc_state = 8; + this.debug("write:: set escape state: 8"); + break; + } + case 8: // Maybe in ST + switch (ch) { + case '\x5c': + this.esc_state = 0; + this.debug("write:: set escape state: 0"); + break; + default: + this.esc_state = 7; + break; + } } } this.refresh();