Use tty.ReadStream and tty.WriteStream for stdio when appropriate
This commit is contained in:
Родитель
87d898929f
Коммит
0b5bf70bff
|
@ -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;
|
||||||
|
|
10
src/node.js
10
src/node.js
|
@ -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);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче