Move responsibility to decode output encoding to terminal implementation

This commit is contained in:
Iwasaki Yudai 2017-08-26 16:53:17 +09:00
parent 807bcc25a4
commit b2c2db0764
6 changed files with 17 additions and 15 deletions

View file

@ -1,16 +1,19 @@
import * as bare from "xterm";
import { lib } from "libapps"
bare.loadAddon("fit");
export class Xterm {
elem: HTMLElement;
term: bare;
resizeListener: () => void;
decoder: lib.UTF8Decoder;
message: HTMLElement;
messageTimeout: number;
messageTimer: number;
term: bare;
resizeListener: () => void;
constructor(elem: HTMLElement) {
this.elem = elem;
@ -20,7 +23,6 @@ export class Xterm {
this.message.className = "xterm-overlay";
this.messageTimeout = 2000;
this.resizeListener = () => {
this.term.fit();
this.term.scrollToBottom();
@ -33,6 +35,8 @@ export class Xterm {
});
this.term.open(elem, true);
this.decoder = new lib.UTF8Decoder()
};
info(): { columns: number, rows: number } {
@ -40,7 +44,7 @@ export class Xterm {
};
output(data: string) {
this.term.write(data);
this.term.write(this.decoder.decode(data));
};
showMessage(message: string, timeout: number) {