Disable OPOST
authorRyan Dahl <ry@tinyclouds.org>
Thu, 23 Dec 2010 07:31:06 +0000 (23:31 -0800)
committerRyan Dahl <ry@tinyclouds.org>
Thu, 30 Dec 2010 09:35:12 +0000 (01:35 -0800)
Helps when sharing a tty with non-raw mode processes

lib/readline.js
src/node_stdio.cc

index 3ae43f4..4a0565a 100644 (file)
@@ -17,19 +17,6 @@ exports.createInterface = function(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) {
   if (!(this instanceof Interface)) return new Interface(output, completer);
@@ -49,9 +36,6 @@ function Interface(output, completer) {
   if (this.enabled) {
     // input refers to stdin
 
-    writeFilter(this.output);
-    writeFilter(process.stdout);
-
     // Current line
     this.line = '';
 
index ad09835..3c4c3b5 100644 (file)
@@ -43,8 +43,8 @@ static int EnableRawMode(int fd) {
   /* input modes: no break, no CR to NL, no parity check, no strip char,
    * no start/stop output control. */
   raw.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
-  /* output modes - disable post processing */
-  raw.c_oflag &= ~(OPOST);
+  /* output modes */
+  raw.c_oflag |= (ONLCR);
   /* control modes - set 8 bit chars */
   raw.c_cflag |= (CS8);
   /* local modes - choing off, canonical off, no extended functions,