From 5a96c3611d8d42e933ca75ffb8f09d7ff177a563 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 12 Jul 2013 00:08:36 -0500 Subject: [PATCH] misc. remove old code. --- lib/program.js | 66 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/lib/program.js b/lib/program.js index d671bb3..a579f95 100644 --- a/lib/program.js +++ b/lib/program.js @@ -39,6 +39,8 @@ function Program(options) { this.x = 0; this.y = 0; + this.savedX = 0; + this.savedY = 0; this.cols = this.output.columns || 1; this.rows = this.output.rows || 1; @@ -48,18 +50,22 @@ function Program(options) { this.terminal = options.terminal || process.env.TERM || 'xterm'; + // if (!Program.global) { + // Program._write = process.stdout.write; + // process.stdout.write = function() {}; + // process.stderr.write = function() {}; + // Program.global = this; + // } + + if (!Program.global) { + Program.global = this; + } + if (options.tput) { this.setupTput(); } this.listen(); - - //if (!Program.global) { - // Program._write = process.stdout.write; - // process.stdout.write = function() {}; - // process.stderr.write = function() {}; - // Program.global = this; - //} } Program.prototype.__proto__ = EventEmitter.prototype; @@ -123,15 +129,6 @@ Program.prototype.listen = function() { // Input this.input.on('keypress', function(ch, key) { key = key || 0; - if (key.ctrl && key.name === 'c') { - if (process.listeners('SIGINT').length) { - process.emit('SIGINT'); - } - if (self.listeners('SIGINT').length) { - self.emit('SIGINT'); - } - // return; - } if (key.name === 'undefined' && key.code === '[M') { // A mouse sequence. The readline module doesn't understand these. return; @@ -698,11 +695,11 @@ Program.prototype.receive_ = function(text, callback) { Program.prototype.write = Program.prototype.echo = function(text, attr) { - //if (this.output === process.stdout) { - // return attr - // ? Program._write.call(this.output, this.text(text, attr)) - // : Program._write.call(this.output, text); - //} + // if (this.output === process.stdout) { + // return attr + // ? Program._write.call(this.output, this.text(text, attr)) + // : Program._write.call(this.output, text); + // } return attr ? this.output.write(this.text(text, attr)) : this.output.write(text); @@ -764,7 +761,7 @@ Program.prototype.repeat = function(ch, i) { //Program.prototype.pad = Program.prototype.nul = function() { - //if (this.tput) return this.put.nul(); + //if (this.tput) return this.put.pad(); return this.write('\0'); }; @@ -796,7 +793,7 @@ Program.prototype.ht = Program.prototype.tab = function() { this.x += 8; this._ncoords(); - if (this.tput) return this.put.ht(); // or `tab` + if (this.tput) return this.put.ht(); return this.write('\t'); }; @@ -863,7 +860,7 @@ Program.prototype.nextLine = function() { // ESC c Full Reset (RIS). Program.prototype.reset = function() { - //this.x = this.y = 0; + this.x = this.y = 0; if (this.tput) return this.put.rs1 ? this.put.rs1() : this.put.ris(); return this.write('\x1bc'); }; @@ -2850,6 +2847,27 @@ Program.prototype.deleteColumns = function() { return this.write('\x1b[' + Array.prototype.slice.call(arguments).join(';') + ' ~'); }; +/** + * A workaround to output sequences without writing to a stream. + */ + +Program.prototype._owrite = function(data) { + this._odata = data; +}; + +Program.prototype.out = function(name) { + var args = Array.prototype.slice.call(arguments, 1); + var write = this.write; + this.write = this._owrite; + var receive = this.receive; + this.receive = this._owrite; + this._odata = ''; + this[name].apply(this, args); + this.write = write; + this.receive = receive; + return this._odata; +}; + /** * Expose */