From 6e1dfd3003ab762a59a70203f45939f9463533d3 Mon Sep 17 00:00:00 2001 From: "Ryan X. Charles" Date: Wed, 17 Sep 2014 15:41:30 -0700 Subject: [PATCH] allow bufferreader.read to specify length ...to be more symmetric with the write function of bufferwriter --- lib/bufferreader.js | 4 +++- test/bufferreader.js | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/bufferreader.js b/lib/bufferreader.js index ffac561..375ed3f 100644 --- a/lib/bufferreader.js +++ b/lib/bufferreader.js @@ -28,7 +28,9 @@ BufferReader.prototype.buffer = function(len) { return buf; }; -BufferReader.prototype.read = function() { +BufferReader.prototype.read = function(len) { + if (len) + return this.buffer(len); var buf = this.buf.slice(this.pos); this.pos = this.buf.length; return buf; diff --git a/test/bufferreader.js b/test/bufferreader.js index 650389f..57ed76f 100644 --- a/test/bufferreader.js +++ b/test/bufferreader.js @@ -58,6 +58,16 @@ describe('BufferReader', function() { br.read().toString('hex').should.equal(buf.toString('hex')); }); + it('should return a buffer of this length', function() { + var buf = new Buffer(10); + buf.fill(0); + var br = new BufferReader(buf); + var buf2 = br.read(2); + buf2.length.should.equal(2); + br.eof().should.equal(false); + br.pos.should.equal(2); + }); + }); describe('#readUInt8', function() {