diff --git a/src/EscapeSequenceParser.ts b/src/EscapeSequenceParser.ts index 7b65624d..197a3657 100644 --- a/src/EscapeSequenceParser.ts +++ b/src/EscapeSequenceParser.ts @@ -353,7 +353,7 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP if (this._oscHandlers[ident] === undefined) { this._oscHandlers[ident] = []; } - const handlerList = this._oscHandlers[ident]; + const handlerList = this._oscHandlers[ident]; handlerList.push(callback); return { dispose: () => { @@ -505,7 +505,8 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP const handlers = this._csiHandlers[code]; let j = handlers ? handlers.length - 1 : -1; for (; j >= 0; j--) { - if (handlers[j](params, collect)) { + // undefined or true means success and to stop bubbling + if (handlers[j](params, collect) !== false) { break; } } @@ -590,7 +591,8 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP const handlers = this._oscHandlers[identifier]; let j = handlers ? handlers.length - 1 : -1; for (; j >= 0; j--) { - if (handlers[j](content)) { + // undefined or true means success and to stop bubbling + if (handlers[j](content) !== false) { break; } } diff --git a/src/InputHandler.ts b/src/InputHandler.ts index 95eab4a3..03b64f5a 100644 --- a/src/InputHandler.ts +++ b/src/InputHandler.ts @@ -419,10 +419,17 @@ export class InputHandler extends Disposable implements IInputHandler { this._terminal.updateRange(buffer.y); } - addCsiHandler(flag: string, callback: (params: number[], collect: string) => boolean): IDisposable { + /** + * Forward addCsiHandler from parser. + */ + public addCsiHandler(flag: string, callback: (params: number[], collect: string) => boolean): IDisposable { return this._parser.addCsiHandler(flag, callback); } - addOscHandler(ident: number, callback: (data: string) => boolean): IDisposable { + + /** + * Forward addOscHandler from parser. + */ + public addOscHandler(ident: number, callback: (data: string) => boolean): IDisposable { return this._parser.addOscHandler(ident, callback); } @@ -1824,7 +1831,9 @@ export class InputHandler extends Disposable implements IInputHandler { * CSI ? Pm r */ public setScrollRegion(params: number[], collect?: string): void { - if (collect) return; + if (collect) { + return; + } this._terminal.buffer.scrollTop = (params[0] || 1) - 1; this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1; this._terminal.buffer.x = 0; @@ -1932,9 +1941,15 @@ export class InputHandler extends Disposable implements IInputHandler { * Designate G3 Character Set (VT300). C = A -> ISO Latin-1 Supplemental. - Supported? */ public selectCharset(collectAndFlag: string): void { - if (collectAndFlag.length !== 2) return this.selectDefaultCharset(); - if (collectAndFlag[0] === '/') return; // TODO: Is this supported? + if (collectAndFlag.length !== 2) { + this.selectDefaultCharset(); + return; + } + if (collectAndFlag[0] === '/') { + return; // TODO: Is this supported? + } this._terminal.setgCharset(GLEVEL[collectAndFlag[0]], CHARSETS[collectAndFlag[1]] || DEFAULT_CHARSET); + return; } /**