From 1c8e6d702cf07515bedcb56dce55e62459c52ba8 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Sun, 3 Sep 2017 13:28:45 -0600 Subject: [PATCH] Fix one off bug causing ansi badness --- core/ansi_escape_parser.js | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/core/ansi_escape_parser.js b/core/ansi_escape_parser.js index b5a0bc73..7e777618 100644 --- a/core/ansi_escape_parser.js +++ b/core/ansi_escape_parser.js @@ -95,6 +95,7 @@ function ANSIEscapeParser(options) { start = pos; self.column = 1; + self.positionUpdated(); break; @@ -103,20 +104,19 @@ function ANSIEscapeParser(options) { start = pos; self.row += 1; + self.positionUpdated(); break; default : - if(self.column > self.termWidth) { - self.emit('literal', text.slice(start, pos)); - start = pos; + if(self.column === self.termWidth) { + self.emit('literal', text.slice(start, pos + 1)); + start = pos + 1; self.column = 1; self.row += 1; - self.positionUpdated(); - //self.emit('literal', text.slice(pos - 1, pos)); - //start = pos; + self.positionUpdated(); } else { self.column += 1; } @@ -126,17 +126,19 @@ function ANSIEscapeParser(options) { ++pos; } + // + // Finalize this chunk + // if(self.column > self.termWidth) { - self.emit('literal', text.slice(start, pos - 1)); - start = pos - 1; - self.column = 1; self.row += 1; - self.positionUpdated(); + + self.positionUpdated(); + } - self.emit('literal', text.slice(start, pos)); - } else { - self.emit('literal', text.slice(start)); + const rem = text.slice(start); + if(rem) { + self.emit('literal', rem); } }