repl: fix 'terminal' mode autodetection on global repls

Fixes test/simple/test-force-repl.js
This commit is contained in:
Nathan Rajlich
2012-03-26 19:05:32 -07:00
parent aad12d0b26
commit 698e795a5f
2 changed files with 12 additions and 7 deletions

View File

@@ -747,15 +747,18 @@ function Interface(stdin, stdout, args) {
// Two eval modes are available: controlEval and debugEval
// But controlEval is used by default
this.repl = repl.start({
var opts = {
prompt: 'debug> ',
input: this.stdin,
output: this.stdout,
terminal: !parseInt(process.env['NODE_NO_READLINE'], 10),
eval: this.controlEval.bind(this),
useGlobal: false,
ignoreUndefined: true
});
};
if (parseInt(process.env['NODE_NO_READLINE'], 10)) {
opts.terminal = false;
}
this.repl = repl.start(opts);
// Do not print useless warning
repl._builtinLibs.splice(repl._builtinLibs.indexOf('repl'), 1);

View File

@@ -121,12 +121,14 @@
// If -i or --interactive were passed, or stdin is a TTY.
if (process._forceRepl || NativeModule.require('tty').isatty(0)) {
// REPL
var repl = Module.requireRepl().start({
prompt: '> ',
terminal: !parseInt(process.env['NODE_NO_READLINE'], 10),
var opts = {
useGlobal: true,
ignoreUndefined: false
});
};
if (parseInt(process.env['NODE_NO_READLINE'], 10)) {
opts.terminal = false;
}
var repl = Module.requireRepl().start(opts);
repl.on('exit', function() {
process.exit();
});