Browse Source

Disable OPOST

Helps when sharing a tty with non-raw mode processes
v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
8874c51d04
  1. 16
      lib/readline.js
  2. 4
      src/node_stdio.cc

16
lib/readline.js

@ -17,19 +17,6 @@ exports.createInterface = function(output, completer) {
return new Interface(output, completer); return new Interface(output, completer);
}; };
function writeFilter(stream) {
if (stream._writeFiltered) return;
stream._writeFiltered = true;
stream._normalWrite = stream.write;
stream.write = function(d) {
var args = Array.prototype.slice.call(arguments);
if (typeof d == 'string') {
args[0] = d.replace(/([^\r])\n|^\n/g, '$1\r\n');
}
// TODO what about buffers?
return stream._normalWrite.apply(stream, args);
}
}
function Interface(output, completer) { function Interface(output, completer) {
if (!(this instanceof Interface)) return new Interface(output, completer); if (!(this instanceof Interface)) return new Interface(output, completer);
@ -49,9 +36,6 @@ function Interface(output, completer) {
if (this.enabled) { if (this.enabled) {
// input refers to stdin // input refers to stdin
writeFilter(this.output);
writeFilter(process.stdout);
// Current line // Current line
this.line = ''; this.line = '';

4
src/node_stdio.cc

@ -43,8 +43,8 @@ static int EnableRawMode(int fd) {
/* input modes: no break, no CR to NL, no parity check, no strip char, /* input modes: no break, no CR to NL, no parity check, no strip char,
* no start/stop output control. */ * no start/stop output control. */
raw.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); raw.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
/* output modes - disable post processing */ /* output modes */
raw.c_oflag &= ~(OPOST); raw.c_oflag |= (ONLCR);
/* control modes - set 8 bit chars */ /* control modes - set 8 bit chars */
raw.c_cflag |= (CS8); raw.c_cflag |= (CS8);
/* local modes - choing off, canonical off, no extended functions, /* local modes - choing off, canonical off, no extended functions,

Loading…
Cancel
Save