fix: signed 13 and 32 bit ints (l and s formats)

This commit is contained in:
Andrey Sidorov 2014-03-31 14:05:51 +11:00
parent a930aa4d13
commit 33005e8f76

View file

@ -245,13 +245,23 @@ UnpackStream.prototype.pack = function(format, args)
var n = args[arg++]; var n = args[arg++];
buf[offset++] = n; buf[offset++] = n;
break; break;
case 's': // TODO: implement signed INT16!!! case 's':
var n = args[arg++];
buf.writeInt16LE(n, offset);
offset += 2;
break;
case 'S': case 'S':
var n = args[arg++]; var n = args[arg++];
buf[offset++] = n & 0xff; buf[offset++] = n & 0xff;
buf[offset++] = (n >> 8) & 0xff; buf[offset++] = (n >> 8) & 0xff;
break; break;
case 'l': // TODO: implement signed INT32!!! case 'l':
var n = args[arg++];
buf.writeInt32LE(n, offset);
offset += 4;
break;
case 'L': case 'L':
var n = args[arg++]; var n = args[arg++];
buf[offset++] = n & 0xff; buf[offset++] = n & 0xff;