|
|
@ -314,6 +314,17 @@ Interface.prototype._historyPrev = function() { |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
Interface.prototype._attemptClose = function() { |
|
|
|
if (this.listeners('attemptClose').length) { |
|
|
|
// User is to call interface.close() manually.
|
|
|
|
this.emit('attemptClose'); |
|
|
|
} else { |
|
|
|
this.close(); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// handle a write from the tty
|
|
|
|
Interface.prototype._ttyWrite = function(b) { |
|
|
|
switch (b[0]) { |
|
|
@ -324,13 +335,13 @@ Interface.prototype._ttyWrite = function(b) { |
|
|
|
this.emit('SIGINT'); |
|
|
|
} else { |
|
|
|
// default behavior, end the readline
|
|
|
|
this.close(); |
|
|
|
this._attemptClose(); |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
case 4: // control-d, delete right or EOF
|
|
|
|
if (this.cursor === 0 && this.line.length === 0) { |
|
|
|
this.close(); |
|
|
|
this._attemptClose(); |
|
|
|
} else if (this.cursor < this.line.length) { |
|
|
|
this.line = this.line.slice(0, this.cursor) + |
|
|
|
this.line.slice(this.cursor + 1, this.line.length); |
|
|
|