diff --git a/src/common/InputHandler.test.ts b/src/common/InputHandler.test.ts index 858019ff0d..09a6a7148c 100644 --- a/src/common/InputHandler.test.ts +++ b/src/common/InputHandler.test.ts @@ -2222,7 +2222,7 @@ describe('InputHandler', () => { }); it('ANSI 2 (keyboard action mode)', async () => { await inputHandler.parseP('\x1b[2$p'); - assert.deepEqual(reportStack.pop(), '\x1b[2;3$y'); // always set + assert.deepEqual(reportStack.pop(), '\x1b[2;4$y'); // always reset }); it('ANSI 4 (insert mode)', async () => { await inputHandler.parseP('\x1b[4$p'); @@ -2236,7 +2236,7 @@ describe('InputHandler', () => { }); it('ANSI 12 (send/receive)', async () => { await inputHandler.parseP('\x1b[12$p'); - assert.deepEqual(reportStack.pop(), '\x1b[12;4$y'); // always reset + assert.deepEqual(reportStack.pop(), '\x1b[12;3$y'); // always set }); it('ANSI 20 (newline mode)', async () => { await inputHandler.parseP('\x1b[20$p'); @@ -2280,7 +2280,7 @@ describe('InputHandler', () => { }); it('DEC privates perma modes', async () => { // [mode number, state value] - const perma = [[3, 0], [8, 3], [1005, 4], [1015, 4], [1048, 1]]; + const perma = [[3, 0], [8, 3], [67, 4], [1005, 4], [1015, 4], [1048, 1]]; for (const [mode, value] of perma) { await inputHandler.parseP(`\x1b[?${mode}$p`); assert.deepEqual(reportStack.pop(), `\x1b[?${mode};${value}$y`); diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts index fa65b93bac..1618b0162c 100644 --- a/src/common/InputHandler.ts +++ b/src/common/InputHandler.ts @@ -2223,9 +2223,9 @@ export class InputHandler extends Disposable implements IInputHandler { const p = params.params[0]; if (ansi) { - if (p === 2) return f(p, V.PERMANENTLY_SET); + if (p === 2) return f(p, V.PERMANENTLY_RESET); if (p === 4) return f(p, b2v(cs.modes.insertMode)); - if (p === 12) return f(p, V.PERMANENTLY_RESET); + if (p === 12) return f(p, V.PERMANENTLY_SET); if (p === 20) return f(p, b2v(opts.convertEol)); return f(p, V.NOT_RECOGNIZED); } @@ -2240,6 +2240,7 @@ export class InputHandler extends Disposable implements IInputHandler { if (p === 25) return f(p, b2v(!cs.isCursorHidden)); if (p === 45) return f(p, b2v(dm.reverseWraparound)); if (p === 66) return f(p, b2v(dm.applicationKeypad)); + if (p === 67) return f(p, V.PERMANENTLY_RESET); if (p === 1000) return f(p, b2v(mouseProtocol === 'VT200')); if (p === 1002) return f(p, b2v(mouseProtocol === 'DRAG')); if (p === 1003) return f(p, b2v(mouseProtocol === 'ANY'));