Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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

  • Loading branch information...
commit 860e7a7a5f423704cecfe3057c3282f32a078dd6 1 parent 4fa712c
@ry ry authored
Showing with 14 additions and 3 deletions.
  1. +1 −1  lib/_debugger.js
  2. +13 −2 lib/readline.js
View
2  lib/_debugger.js
@@ -595,7 +595,7 @@ function Interface() {
self.handleSIGINT();
});
- term.on('close', function() {
+ term.on('attemptClose', function() {
self.tryQuit();
});
View
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);
Please sign in to comment.
Something went wrong with that request. Please try again.