Use tty.ReadStream and tty.WriteStream for stdio when appropriate

This commit is contained in:
Bert Belder 2011-01-17 23:28:54 +01:00 коммит произвёл Ryan Dahl
Родитель 87d898929f
Коммит 0b5bf70bff
2 изменённых файлов: 9 добавлений и 3 удалений

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

@ -27,7 +27,7 @@ function Interface(output, completer) {
this.setPrompt('> '); this.setPrompt('> ');
this.enabled = tty.isatty(output.fd); this.enabled = output.isTTY;
if (parseInt(process.env['NODE_NO_READLINE'], 10)) { if (parseInt(process.env['NODE_NO_READLINE'], 10)) {
this.enabled = false; this.enabled = false;

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

@ -554,9 +554,12 @@
var binding = process.binding('stdio'), var binding = process.binding('stdio'),
net = NativeModule.require('net'), net = NativeModule.require('net'),
fs = NativeModule.require('fs'), fs = NativeModule.require('fs'),
tty = NativeModule.require('tty'),
fd = binding.stdoutFD; 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}); stdout = new fs.WriteStream(null, {fd: fd});
} else { } else {
stdout = new net.Stream(fd); stdout = new net.Stream(fd);
@ -577,9 +580,12 @@
var binding = process.binding('stdio'), var binding = process.binding('stdio'),
net = NativeModule.require('net'), net = NativeModule.require('net'),
fs = NativeModule.require('fs'), fs = NativeModule.require('fs'),
tty = NativeModule.require('tty'),
fd = binding.openStdin(); 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}); stdin = new fs.ReadStream(null, {fd: fd});
} else { } else {
stdin = new net.Stream(fd); stdin = new net.Stream(fd);