single arg for DCS and ESC handler registration

This commit is contained in:
Jörg Breitbart
2018-05-01 21:07:13 +02:00
parent 89cf45c514
commit 9a32852e61
3 changed files with 36 additions and 38 deletions
+9 -11
View File
@@ -278,11 +278,11 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
this._csiHandlerFb = callback;
}
setEscHandler(collect: string, flag: string, callback: (collect: string, flag: number) => void): void {
this._escHandlers[collect + flag] = callback;
setEscHandler(collectAndFlag: string, callback: () => void): void {
this._escHandlers[collectAndFlag] = callback;
}
clearEscHandler(collect: string, flag: string): void {
if (this._escHandlers[collect + flag]) delete this._escHandlers[collect + flag];
clearEscHandler(collectAndFlag: string): void {
if (this._escHandlers[collectAndFlag]) delete this._escHandlers[collectAndFlag];
}
setEscHandlerFallback(callback: (...params: any[]) => void): void {
this._escHandlerFb = callback;
@@ -298,11 +298,11 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
this._oscHandlerFb = callback;
}
setDcsHandler(collect: string, flag: string, handler: IDcsHandler): void {
this._dcsHandlers[collect + flag] = handler;
setDcsHandler(collectAndFlag: string, handler: IDcsHandler): void {
this._dcsHandlers[collectAndFlag] = handler;
}
clearDcsHandler(collect: string, flag: string): void {
if (this._dcsHandlers[collect + flag]) delete this._dcsHandlers[collect + flag];
clearDcsHandler(collectAndFlag: string): void {
if (this._dcsHandlers[collectAndFlag]) delete this._dcsHandlers[collectAndFlag];
}
setDcsHandlerFallback(handler: IDcsHandler): void {
this._dcsHandlerFb = handler;
@@ -336,7 +336,6 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
let params = this.params;
const table: Uint8Array | number[] = this.transitions.table;
let dcsHandler: IDcsHandler | null = this._activeDcsHandler;
let ident: string = ''; // ugly workaround for ESC and DCS lookup keys
let callback: Function | null = null;
// process input string
@@ -459,8 +458,7 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
dcs = -1;
break;
case ParserAction.DCS_HOOK:
ident = collect + String.fromCharCode(code);
dcsHandler = this._dcsHandlers[ident];
dcsHandler = this._dcsHandlers[collect + String.fromCharCode(code)];
if (!dcsHandler) dcsHandler = this._dcsHandlerFb;
dcsHandler.hook(collect, params, code);
break;