readline: fix for terminals that insert newlines automatically

Fixes #2985.
This commit is contained in:
Alex Kocharin 2012-03-23 11:24:06 -07:00 коммит произвёл Nathan Rajlich
Родитель e7792e5d46
Коммит ab518ae50e
1 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -269,7 +269,12 @@ Interface.prototype._insertString = function(c) {
} else {
this.line += c;
this.cursor += c.length;
this.output.write(c);
if (this._getCursorPos().cols === 0) {
this._refreshLine();
} else {
this.output.write(c);
}
// a hack to get the line refreshed if it's needed
this._moveCursor(0);
@ -508,7 +513,7 @@ Interface.prototype._moveCursor = function(dx) {
var newPos = this._getCursorPos();
// check if cursors are in the same line
if (oldPos.rows == newPos.rows && newPos.cols != 0) {
if (oldPos.rows === newPos.rows) {
this.output.moveCursor(this.cursor - oldcursor, 0);
this.prevRows = newPos.rows;
} else {