summaryrefslogtreecommitdiff
path: root/js/ansi/newlines.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/ansi/newlines.js')
-rw-r--r--js/ansi/newlines.js71
1 files changed, 0 insertions, 71 deletions
diff --git a/js/ansi/newlines.js b/js/ansi/newlines.js
deleted file mode 100644
index 4e37a0a..0000000
--- a/js/ansi/newlines.js
+++ /dev/null
@@ -1,71 +0,0 @@
-
-/**
- * Accepts any node Stream instance and hijacks its "write()" function,
- * so that it can count any newlines that get written to the output.
- *
- * When a '\n' byte is encountered, then a "newline" event will be emitted
- * on the stream, with no arguments. It is up to the listeners to determine
- * any necessary deltas required for their use-case.
- *
- * Ex:
- *
- * var cursor = ansi(process.stdout)
- * , ln = 0
- * process.stdout.on('newline', function () {
- * ln++
- * })
- */
-
-/**
- * Module dependencies.
- */
-
-var assert = require('assert')
-var NEWLINE = '\n'.charCodeAt(0)
-
-function emitNewlineEvents (stream) {
- if (stream._emittingNewlines) {
- // already emitting newline events
- return
- }
-
- var write = stream.write
-
- stream.write = function (data) {
- // first write the data
- var rtn = write.apply(stream, arguments)
-
- if (stream.listeners('newline').length > 0) {
- var len = data.length
- , i = 0
- // now try to calculate any deltas
- if (typeof data == 'string') {
- for (; i<len; i++) {
- processByte(stream, data.charCodeAt(i))
- }
- } else {
- // buffer
- for (; i<len; i++) {
- processByte(stream, data[i])
- }
- }
- }
-
- return rtn
- }
-
- stream._emittingNewlines = true
-}
-module.exports = emitNewlineEvents
-
-
-/**
- * Processes an individual byte being written to a stream
- */
-
-function processByte (stream, b) {
- assert.equal(typeof b, 'number')
- if (b === NEWLINE) {
- stream.emit('newline')
- }
-}