diff --git a/lib/textParsers.js b/lib/textParsers.js index f4e35dc..c8811be 100644 --- a/lib/textParsers.js +++ b/lib/textParsers.js @@ -119,9 +119,32 @@ var parseInterval = function(val) { }; var parseByteA = function(val) { - return new Buffer(val.replace(/\\([0-7]{3})/g, function (full_match, code) { - return String.fromCharCode(parseInt(code, 8)); - }).replace(/\\\\/g, "\\"), "binary"); + if(/^\\x/.test(val)){ + // new 'hex' style response (pg >9.0) + return new Buffer(val.substr(2), 'hex'); + }else{ + out = "" + i = 0 + while(i < val.length){ + if(val[i] != "\\"){ + out += val[i] + ++i + }else{ + if(val.substr(i+1,3).match(/[0-7]{3}/)){ + out += String.fromCharCode(parseInt(val.substr(i+1,3),8)) + i += 4 + }else{ + backslashes = 1 + while(i+backslashes < val.length && val[i+backslashes] == "\\") + backslashes++ + for(k=0; k