fix several escape sequence files

This commit is contained in:
Jörg Breitbart
2019-07-04 17:45:10 +02:00
parent f235d70f30
commit d858022f23
2 changed files with 56 additions and 9 deletions
+14
View File
@@ -540,6 +540,9 @@ export class InputHandler extends Disposable implements IInputHandler {
* Backspace (Ctrl-H).
*/
public backspace(): void {
if (this._terminal.buffer.x >= this._terminal.cols) {
this._terminal.buffer.x = this._terminal.cols - 1;
}
if (this._terminal.buffer.x > 0) {
this._terminal.buffer.x--;
}
@@ -580,6 +583,9 @@ export class InputHandler extends Disposable implements IInputHandler {
* Insert Ps (Blank) Character(s) (default = 1) (ICH).
*/
public insertChars(params: number[]): void {
if (this._terminal.buffer.x >= this._terminal.cols) {
this._terminal.buffer.x = this._terminal.cols - 1;
}
this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).insertCells(
this._terminal.buffer.x,
params[0] || 1,
@@ -845,6 +851,9 @@ export class InputHandler extends Disposable implements IInputHandler {
* Ps = 2 -> Selective Erase All.
*/
public eraseInLine(params: number[]): void {
if (this._terminal.buffer.x >= this._terminal.cols) {
this._terminal.buffer.x = this._terminal.cols - 1;
}
switch (params[0]) {
case 0:
this._eraseInBufferLine(this._terminal.buffer.y, this._terminal.buffer.x, this._terminal.cols);
@@ -886,6 +895,7 @@ export class InputHandler extends Disposable implements IInputHandler {
// this.maxRange();
this._terminal.updateRange(buffer.y);
this._terminal.updateRange(buffer.scrollBottom);
buffer.x = 0; // see https://vt100.net/docs/vt220-rm/chapter4.html - vt220 only?
}
/**
@@ -916,6 +926,7 @@ export class InputHandler extends Disposable implements IInputHandler {
// this.maxRange();
this._terminal.updateRange(buffer.y);
this._terminal.updateRange(buffer.scrollBottom);
buffer.x = 0; // see https://vt100.net/docs/vt220-rm/chapter4.html - vt220 only?
}
/**
@@ -1169,6 +1180,9 @@ export class InputHandler extends Disposable implements IInputHandler {
* [1,1]) (HVP).
*/
public hVPosition(params: number[]): void {
if (params.length < 2) {
params.push(1);
}
if (params[0] < 1) params[0] = 1;
if (params[1] < 1) params[1] = 1;
+42 -9
View File
@@ -105,20 +105,53 @@ if (os.platform() !== 'win32') {
// omit stack trace for escape sequence files
Error.stackTraceLimit = 0;
const files = glob.sync('**/escape_sequence_files/*.in', { cwd: path.join(__dirname, '..')});
// for (let i = 0; i < files.length; ++i) console.debug(i, files[i]);
// only successful tests for now
const skip = [
10, 16, 17, 19, 32, 34, 35, 36, 39,
40, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 54, 55, 56, 57, 58, 59, 60, 61,
63, 68
const skipFilename = [
// 't0008-BS.in',
// 't0014-CAN.in',
// 't0015-SUB.in',
// 't0017-SD.in',
// 't0035-HVP.in',
// 't0050-ICH.in',
// 't0051-IL.in',
// 't0052-DL.in',
// 't0055-EL.in',
't0056-ED.in',
't0060-DECSC.in',
't0061-CSI_s.in',
't0070-DECSTBM_LF.in',
't0071-DECSTBM_IND.in',
't0072-DECSTBM_NEL.in',
't0074-DECSTBM_SU_SD.in',
't0075-DECSTBM_CUU_CUD.in',
't0076-DECSTBM_IL_DL.in',
't0077-DECSTBM_quirks.in',
't0080-HT.in',
't0082-HTS.in',
't0083-CHT.in',
't0084-CBT.in',
// 't0090-alt_screen.in',
't0091-alt_screen_ED3.in',
// 't0092-alt_screen_DECSC.in',
// 't0100-IRM.in',
't0101-NLM.in',
't0103-reverse_wrap.in',
't0504-vim.in'
];
// These are failing on macOS only
if (os.platform() === 'darwin') {
skip.push(3, 7, 11, 67);
// These are failing on macOS only
skipFilename.push(
't0003-line_wrap.in',
't0005-CR.in',
't0009-NEL.in',
't0503-zsh_ls_color.in'
);
}
for (let i = 0; i < files.length; i++) {
if (skip.indexOf(i) >= 0) {
// if (skip.indexOf(i) >= 0) {
// continue;
// }
if (skipFilename.indexOf(files[i].split('/').slice(-1)[0]) >= 0) {
continue;
}
((filename: string) => {