Skip to content

Commit

Permalink
Merge remote-tracking branch 'ups/v3' into 847_proper_scrollback_value
Browse files Browse the repository at this point in the history
  • Loading branch information
Tyriar committed Aug 16, 2017
2 parents 996eb1b + aa438c8 commit 9dd1083
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 7 deletions.
11 changes: 11 additions & 0 deletions src/Buffer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,17 @@ describe('Buffer', () => {
});
});
});

describe('row and column increased', () => {
it('should resize properly', () => {
buffer.fillViewportRows();
buffer.resize(INIT_COLS + 5, INIT_ROWS + 5);
assert.equal(buffer.lines.length, INIT_ROWS + 5);
for (let i = 0; i < INIT_ROWS + 5; i++) {
assert.equal(buffer.lines.get(i).length, INIT_COLS + 5);
}
});
});
});

describe('alt buffer', () => {
Expand Down
6 changes: 4 additions & 2 deletions src/Buffer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,10 @@ export class Buffer implements IBuffer {
if (this._terminal.cols < newCols) {
const ch: CharData = [this._terminal.defAttr, ' ', 1]; // does xterm use the default attr?
for (let i = 0; i < this._lines.length; i++) {
// TODO: This should be removed, with tests setup for the case that was
// causing the underlying bug, see https://github.com/sourcelair/xterm.js/issues/824
if (this._lines.get(i) === undefined) {
this._lines.set(i, this._terminal.blankLine());
this._lines.set(i, this._terminal.blankLine(undefined, undefined, newCols));
}
while (this._lines.get(i).length < newCols) {
this._lines.get(i).push(ch);
Expand All @@ -134,7 +136,7 @@ export class Buffer implements IBuffer {
} else {
// Add a blank line if there is no buffer left at the top to scroll to, or if there
// are blank lines after the cursor
this._lines.push(this._terminal.blankLine());
this._lines.push(this._terminal.blankLine(undefined, undefined, newCols));
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export interface ITerminal extends IEventEmitter {
log(text: string): void;
reset(): void;
showCursor(): void;
blankLine(cur?: boolean, isWrapped?: boolean): LineData;
blankLine(cur?: boolean, isWrapped?: boolean, cols?: number): LineData;
}

/**
Expand Down
7 changes: 5 additions & 2 deletions src/Terminal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2082,8 +2082,10 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT
* Return the data array of a blank line
* @param {boolean} cur First bunch of data for each "blank" character.
* @param {boolean} isWrapped Whether the new line is wrapped from the previous line.
* @param {boolean} cols The number of columns in the terminal, if this is not
* set, the terminal's current column count would be used.
*/
public blankLine(cur?: boolean, isWrapped?: boolean): LineData {
public blankLine(cur?: boolean, isWrapped?: boolean, cols?: number): LineData {
const attr = cur ? this.eraseAttr() : this.defAttr;

const ch: CharData = [attr, ' ', 1]; // width defaults to 1 halfwidth character
Expand All @@ -2095,7 +2097,8 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT
(<any>line).isWrapped = isWrapped;
}

for (let i = 0; i < this.cols; i++) {
cols = cols || this.cols;
for (let i = 0; i < cols; i++) {
line[i] = ch;
}

Expand Down
5 changes: 3 additions & 2 deletions src/utils/TestUtils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,10 @@ export class MockTerminal implements ITerminal {
showCursor(): void {
throw new Error('Method not implemented.');
}
blankLine(cur?: boolean, isWrapped?: boolean): LineData {
blankLine(cur?: boolean, isWrapped?: boolean, cols?: number): LineData {
const line: LineData = [];
for (let i = 0; i < this.cols; i++) {
cols = cols || this.cols;
for (let i = 0; i < cols; i++) {
line.push([0, ' ', 1]);
}
return line;
Expand Down

0 comments on commit 9dd1083

Please sign in to comment.