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);
if (this.enabled) {
// input refers to stdin
- writeFilter(this.output);
- writeFilter(process.stdout);
-
// Current line
this.line = '';
/* 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,