Fix clear function when buffer is <= rows

This commit is contained in:
Daniel Imms
2016-09-17 04:07:36 -07:00
parent 852dac4d62
commit 26fc53990b
2 changed files with 15 additions and 2 deletions
+1 -1
View File
@@ -3062,10 +3062,10 @@ Terminal.prototype.clear = function() {
// Don't clear if it's already clear
return;
}
this.lines = [this.lines[this.ybase + this.y]];
this.ydisp = 0;
this.ybase = 0;
this.y = 0;
this.lines = [this.lines[this.lines.length - 1]];
for (var i = 1; i < this.rows; i++) {
this.lines.push(this.blankLine());
}
+14 -1
View File
@@ -51,7 +51,20 @@ describe('xterm.js', function() {
assert.equal(xterm.lines.length, xterm.rows);
assert.deepEqual(xterm.lines[0], promptLine);
for (var i = 1; i < xterm.rows; i++) {
assert.deepEqual(xterm.lines[0], xterm.blankLine());
assert.deepEqual(xterm.lines[i], xterm.blankLine());
}
});
it('should not break the prompt when cleared twice', function() {
var promptLine = xterm.lines[xterm.ybase + xterm.y];
xterm.clear();
xterm.clear();
assert.equal(xterm.y, 0);
assert.equal(xterm.ybase, 0);
assert.equal(xterm.ydisp, 0);
assert.equal(xterm.lines.length, xterm.rows);
assert.deepEqual(xterm.lines[0], promptLine);
for (var i = 1; i < xterm.rows; i++) {
assert.deepEqual(xterm.lines[i], xterm.blankLine());
}
});
});