Browse Source

debugger: don't hang on ^d and ^c

v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
860e7a7a5f
  1. 2
      lib/_debugger.js
  2. 15
      lib/readline.js

2
lib/_debugger.js

@ -595,7 +595,7 @@ function Interface() {
self.handleSIGINT();
});
term.on('close', function() {
term.on('attemptClose', function() {
self.tryQuit();
});

15
lib/readline.js

@ -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);

Loading…
Cancel
Save