explicit arguments for fallback handlers

This commit is contained in:
Jörg Breitbart
2018-05-06 23:02:54 +02:00
parent 108aa5ab31
commit 551ccc0f2f
4 changed files with 42 additions and 42 deletions
+18 -18
View File
@@ -110,18 +110,18 @@ let state: any;
// parser with Uint8Array based transition table
let parserUint = new TestEscapeSequenceParser(VT500_TRANSITION_TABLE);
parserUint.setPrintHandler(testTerminal.print.bind(testTerminal));
parserUint.setCsiHandlerFallback((...params: any[]) => {
testTerminal.actionCSI(params[0], params[1], String.fromCharCode(params[2]));
parserUint.setCsiHandlerFallback((collect: string, params: number[], flag: number) => {
testTerminal.actionCSI(collect, params, String.fromCharCode(flag));
});
parserUint.setEscHandlerFallback((...params: any[]) => {
testTerminal.actionESC(params[0], String.fromCharCode(params[1]));
parserUint.setEscHandlerFallback((collect: string, flag: number) => {
testTerminal.actionESC(collect, String.fromCharCode(flag));
});
parserUint.setExecuteHandlerFallback((...params: any[]) => {
testTerminal.actionExecute(String.fromCharCode(params[0]));
parserUint.setExecuteHandlerFallback((code: number) => {
testTerminal.actionExecute(String.fromCharCode(code));
});
parserUint.setOscHandlerFallback((...params: any[]) => {
if (params[0] === -1) testTerminal.actionOSC(params[1]); // handle error condition silently
else testTerminal.actionOSC(params[0] + ';' + params[1]);
parserUint.setOscHandlerFallback((identifier: number, data: string) => {
if (identifier === -1) testTerminal.actionOSC(data); // handle error condition silently
else testTerminal.actionOSC('' + identifier + ';' + data);
});
parserUint.setDcsHandlerFallback(new DcsTest());
@@ -135,18 +135,18 @@ for (let i = 0; i < VT500_TRANSITION_TABLE.table.length; ++i) {
// parser with array based transition table
let parserArray = new TestEscapeSequenceParser(VT500_TRANSITION_TABLE_ARRAY);
parserArray.setPrintHandler(testTerminal.print.bind(testTerminal));
parserArray.setCsiHandlerFallback((...params: any[]) => {
testTerminal.actionCSI(params[0], params[1], String.fromCharCode(params[2]));
parserArray.setCsiHandlerFallback((collect: string, params: number[], flag: number) => {
testTerminal.actionCSI(collect, params, String.fromCharCode(flag));
});
parserArray.setEscHandlerFallback((...params: any[]) => {
testTerminal.actionESC(params[0], String.fromCharCode(params[1]));
parserArray.setEscHandlerFallback((collect: string, flag: number) => {
testTerminal.actionESC(collect, String.fromCharCode(flag));
});
parserArray.setExecuteHandlerFallback((...params: any[]) => {
testTerminal.actionExecute(String.fromCharCode(params[0]));
parserArray.setExecuteHandlerFallback((code: number) => {
testTerminal.actionExecute(String.fromCharCode(code));
});
parserArray.setOscHandlerFallback((...params: any[]) => {
if (params[0] === -1) testTerminal.actionOSC(params[1]); // handle error condition silently
else testTerminal.actionOSC(params[0] + ';' + params[1]);
parserArray.setOscHandlerFallback((identifier: number, data: string) => {
if (identifier === -1) testTerminal.actionOSC(data); // handle error condition silently
else testTerminal.actionOSC('' + identifier + ';' + data);
});
parserArray.setDcsHandlerFallback(new DcsTest());
+12 -12
View File
@@ -227,10 +227,10 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
// fallback handlers
protected _printHandlerFb: (data: string, start: number, end: number) => void;
protected _executeHandlerFb: (...params: any[]) => void;
protected _csiHandlerFb: (...params: any[]) => void;
protected _escHandlerFb: (...params: any[]) => void;
protected _oscHandlerFb: (...params: any[]) => void;
protected _executeHandlerFb: (code: number) => void;
protected _csiHandlerFb: (collect: string, params: number[], flag: number) => void;
protected _escHandlerFb: (collect: string, flag: number) => void;
protected _oscHandlerFb: (identifier: number, data: string) => void;
protected _dcsHandlerFb: IDcsHandler;
protected _errorHandlerFb: (state: IParsingState) => IParsingState;
@@ -243,10 +243,10 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
// set default fallback handlers and handler lookup containers
this._printHandlerFb = (data, start, end): void => { };
this._executeHandlerFb = (...params: any[]): void => { };
this._csiHandlerFb = (...params: any[]): void => { };
this._escHandlerFb = (...params: any[]): void => { };
this._oscHandlerFb = (...params: any[]): void => { };
this._executeHandlerFb = (code: number): void => { };
this._csiHandlerFb = (collect: string, params: number[], flag: number): void => { };
this._escHandlerFb = (collect: string, flag: number): void => { };
this._oscHandlerFb = (identifier: number, data: string): void => { };
this._dcsHandlerFb = new DcsDummy();
this._errorHandlerFb = (state: IParsingState): IParsingState => state;
this._printHandler = this._printHandlerFb;
@@ -272,7 +272,7 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
clearExecuteHandler(flag: string): void {
if (this._executeHandlers[flag.charCodeAt(0)]) delete this._executeHandlers[flag.charCodeAt(0)];
}
setExecuteHandlerFallback(callback: (...params: any[]) => void): void {
setExecuteHandlerFallback(callback: (code: number) => void): void {
this._executeHandlerFb = callback;
}
@@ -282,7 +282,7 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
clearCsiHandler(flag: string): void {
if (this._csiHandlers[flag.charCodeAt(0)]) delete this._csiHandlers[flag.charCodeAt(0)];
}
setCsiHandlerFallback(callback: (...params: any[]) => void): void {
setCsiHandlerFallback(callback: (collect: string, params: number[], flag: number) => void): void {
this._csiHandlerFb = callback;
}
@@ -292,7 +292,7 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
clearEscHandler(collectAndFlag: string): void {
if (this._escHandlers[collectAndFlag]) delete this._escHandlers[collectAndFlag];
}
setEscHandlerFallback(callback: (...params: any[]) => void): void {
setEscHandlerFallback(callback: (collect: string, flag: number) => void): void {
this._escHandlerFb = callback;
}
@@ -302,7 +302,7 @@ export class EscapeSequenceParser implements IEscapeSequenceParser {
clearOscHandler(ident: number): void {
if (this._oscHandlers[ident]) delete this._oscHandlers[ident];
}
setOscHandlerFallback(callback: (...params: any[]) => void): void {
setOscHandlerFallback(callback: (identifier: number, data: string) => void): void {
this._oscHandlerFb = callback;
}
+8 -8
View File
@@ -119,17 +119,17 @@ export class InputHandler implements IInputHandler {
/**
* custom fallback handlers
*/
this._parser.setCsiHandlerFallback((...params: any[]) => {
this._terminal.error('Unknown CSI code: ', params);
this._parser.setCsiHandlerFallback((collect: string, params: number[], flag: number) => {
this._terminal.error('Unknown CSI code: ', collect, params, String.fromCharCode(flag));
});
this._parser.setEscHandlerFallback((...params: any[]) => {
this._terminal.error('Unknown ESC code: ', params);
this._parser.setEscHandlerFallback((collect: string, flag: number) => {
this._terminal.error('Unknown ESC code: ', collect, String.fromCharCode(flag));
});
this._parser.setExecuteHandlerFallback((...params: any[]) => {
this._terminal.error('Unknown EXECUTE code: ', params);
this._parser.setExecuteHandlerFallback((code: number) => {
this._terminal.error('Unknown EXECUTE code: ', code);
});
this._parser.setOscHandlerFallback((...params: any[]) => {
this._terminal.error('Unknown OSC code: ', params);
this._parser.setOscHandlerFallback((identifier: number, data: string) => {
this._terminal.error('Unknown OSC code: ', identifier, data);
});
/**
+4 -4
View File
@@ -483,19 +483,19 @@ export interface IEscapeSequenceParser {
setExecuteHandler(flag: string, callback: () => void): void;
clearExecuteHandler(flag: string): void;
setExecuteHandlerFallback(callback: (...params: any[]) => void): void;
setExecuteHandlerFallback(callback: (code: number) => void): void;
setCsiHandler(flag: string, callback: (params: number[], collect: string) => void): void;
clearCsiHandler(flag: string): void;
setCsiHandlerFallback(callback: (...params: any[]) => void): void;
setCsiHandlerFallback(callback: (collect: string, params: number[], flag: number) => void): void;
setEscHandler(collectAndFlag: string, callback: () => void): void;
clearEscHandler(collectAndFlag: string): void;
setEscHandlerFallback(callback: (...params: any[]) => void): void;
setEscHandlerFallback(callback: (collect: string, flag: number) => void): void;
setOscHandler(ident: number, callback: (data: string) => void): void;
clearOscHandler(ident: number): void;
setOscHandlerFallback(callback: (...params: any[]) => void): void;
setOscHandlerFallback(callback: (identifier: number, data: string) => void): void;
setDcsHandler(collectAndFlag: string, handler: IDcsHandler): void;
clearDcsHandler(collectAndFlag: string): void;