if (this._closed) return;
// Cursor to left edge.
- this.output.write('\x1b[0G');
+ this.output.cursorTo(0);
// Write the prompt and the current buffer content.
this.output.write(this._prompt);
this.output.write(this.line);
// Erase to right.
- this.output.write('\x1b[0K');
+ this.output.clearLine(1);
// Move cursor to original position.
- this.output.write('\x1b[0G\x1b[' + (this._promptLength + this.cursor) + 'C');
+ this.output.cursorTo(this._promptLength + this.cursor);
};
// left arrow
if (this.cursor > 0) {
this.cursor--;
- this.output.write('\x1b[0D');
+ this.output.moveCursor(-1, 0);
}
} else if (b[1] === 91 && b[2] === 67) {
// right arrow
if (this.cursor != this.line.length) {
this.cursor++;
- this.output.write('\x1b[0C');
+ this.output.moveCursor(1, 0);
}
} else if ((b[1] === 91 && b[2] === 72) ||