diff --git a/lib/readline.js b/lib/readline.js index c85d2410ad..bb22feb785 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -27,7 +27,7 @@ function Interface(output, completer) { this.setPrompt('> '); - this.enabled = tty.isatty(output.fd); + this.enabled = output.isTTY; if (parseInt(process.env['NODE_NO_READLINE'], 10)) { this.enabled = false; diff --git a/src/node.js b/src/node.js index 413c4de464..345bfb494a 100644 --- a/src/node.js +++ b/src/node.js @@ -554,9 +554,12 @@ var binding = process.binding('stdio'), net = NativeModule.require('net'), fs = NativeModule.require('fs'), + tty = NativeModule.require('tty'), fd = binding.stdoutFD; - if (binding.isStdoutBlocking()) { + if (binding.isatty(fd)) { + stdout = new tty.WriteStream(fd); + } else if (binding.isStdoutBlocking()) { stdout = new fs.WriteStream(null, {fd: fd}); } else { stdout = new net.Stream(fd); @@ -577,9 +580,12 @@ var binding = process.binding('stdio'), net = NativeModule.require('net'), fs = NativeModule.require('fs'), + tty = NativeModule.require('tty'), fd = binding.openStdin(); - if (binding.isStdinBlocking()) { + if (binding.isatty(fd)) { + stdin = new tty.ReadStream(fd); + } else if (binding.isStdinBlocking()) { stdin = new fs.ReadStream(null, {fd: fd}); } else { stdin = new net.Stream(fd);