Comparing version 0.2.8 to 0.2.9
36
imap.js
@@ -137,3 +137,3 @@ var util = require('util'), net = require('net'), | ||
if (self._state.curExpected === 0) { | ||
if (data.indexOf(CRLF) === -1) { | ||
if (bufferIndexOf(data, CRLF) === -1) { | ||
if (self._state.curData) | ||
@@ -202,3 +202,3 @@ self._state.curData = bufferAppend(self._state.curData, data); | ||
parseFetch(curReq._desc + restDesc[1], curReq._headers, curReq._msg); | ||
data = self._state.curData.slice(self._state.curData.indexOf(CRLF) | ||
data = self._state.curData.slice(bufferIndexOf(self._state.curData, CRLF) | ||
+ 2); | ||
@@ -221,7 +221,7 @@ curReq._done = false; | ||
self._state.curExpected = parseInt(literalInfo[2], 10); | ||
var idxCRLF = data.indexOf(CRLF), | ||
var idxCRLF = bufferIndexOf(data, CRLF), | ||
curReq = self._state.requests[0], | ||
type = /BODY\[(.*)\](?:\<\d+\>)?/.exec(strdata.substring(0, idxCRLF)), | ||
msg = new ImapMessage(), | ||
desc = strdata.substring(data.indexOf('(')+1, idxCRLF).trim(); | ||
desc = strdata.substring(bufferIndexOf(data, '(')+1, idxCRLF).trim(); | ||
msg.seqno = parseInt(literalInfo[1], 10); | ||
@@ -244,3 +244,3 @@ type = type[1]; | ||
var endsInCRLF = (data[data.length-2] === 13 && data[data.length-1] === 10); | ||
data = data.split(CRLF); | ||
data = bufferSplit(data, CRLF); | ||
@@ -1629,6 +1629,6 @@ // Defer any extra server responses found in the incoming data | ||
Buffer.prototype.split = function(str) { | ||
function bufferSplit(buf, str) { | ||
if ((typeof str !== 'string' && !Array.isArray(str)) | ||
|| str.length === 0 || str.length > this.length) | ||
return [this]; | ||
|| str.length === 0 || str.length > buf.length) | ||
return [buf]; | ||
var search = !Array.isArray(str) | ||
@@ -1640,10 +1640,10 @@ ? str.split('').map(function(el) { return el.charCodeAt(0); }) | ||
while ((pos = this.indexOf(search, start)) > -1) { | ||
ret.push(this.slice(start, pos)); | ||
while ((pos = bufferIndexOf(buf, search, start)) > -1) { | ||
ret.push(buf.slice(start, pos)); | ||
start = pos + searchLen; | ||
} | ||
if (!ret.length) | ||
ret = [this]; | ||
else if (start < this.length) | ||
ret.push(this.slice(start)); | ||
ret = [buf]; | ||
else if (start < buf.length) | ||
ret.push(buf.slice(start)); | ||
@@ -1653,4 +1653,4 @@ return ret; | ||
Buffer.prototype.indexOf = function(str, start) { | ||
if (str.length > this.length) | ||
function bufferIndexOf(buf, str, start) { | ||
if (str.length > buf.length) | ||
return -1; | ||
@@ -1662,7 +1662,7 @@ var search = !Array.isArray(str) | ||
ret = -1, i, j, len; | ||
for (i=start||0,len=this.length; i<len; ++i) { | ||
if (this[i] == search[0] && (len-i) >= searchLen) { | ||
for (i=start||0,len=buf.length; i<len; ++i) { | ||
if (buf[i] == search[0] && (len-i) >= searchLen) { | ||
if (searchLen > 1) { | ||
for (j=1; j<searchLen; ++j) { | ||
if (this[i+j] != search[j]) | ||
if (buf[i+j] != search[j]) | ||
break; | ||
@@ -1669,0 +1669,0 @@ else if (j == searchLen-1) { |
{ "name": "imap", | ||
"version": "0.2.8", | ||
"version": "0.2.9", | ||
"author": "Brian White <mscdex@mscdex.net>", | ||
@@ -4,0 +4,0 @@ "description": "An IMAP module for node.js that makes communicating with IMAP servers easy", |
90312