Merge remote-tracking branch 'ups/master' into 207_selection_manager

This commit is contained in:
Daniel Imms
2017-06-06 14:35:06 -07:00
9 changed files with 226 additions and 116 deletions
+2 -1
View File
@@ -181,7 +181,7 @@ export class Parser {
*
* @param data The data to parse.
*/
public parse(data: string) {
public parse(data: string): ParserState {
let l = data.length, j, cs, ch, code, low;
this._position = 0;
@@ -564,6 +564,7 @@ export class Parser {
break;
}
}
return this._state;
}
/**
+2
View File
@@ -77,6 +77,8 @@ export function pasteHandler(ev: ClipboardEvent, term: ITerminal) {
text = prepareTextForTerminal(text, term.browser.isMSWindows);
term.handler(text);
term.textarea.value = '';
term.emit('paste', text);
return term.cancel(ev);
};
+7 -1
View File
@@ -1262,7 +1262,13 @@ Terminal.prototype.innerWrite = function() {
this.refreshStart = this.y;
this.refreshEnd = this.y;
this.parser.parse(data);
// HACK: Set the parser state based on it's state at the time of return.
// This works around the bug #662 which saw the parser state reset in the
// middle of parsing escape sequence in two chunks. For some reason the
// state of the parser resets to 0 after exiting parser.parse. This change
// just sets the state back based on the correct return statement.
var state = this.parser.parse(data);
this.parser.setState(state);
this.updateRange(this.y);
this.refresh(this.refreshStart, this.refreshEnd);