mirror of
https://github.com/danbulant/node-x11
synced 2026-05-21 21:39:13 +00:00
Merge pull request #28 from santigimeno/fix_unpack_bufferx
Add support for signed data in unpackbuffer
This commit is contained in:
commit
877d263a93
2 changed files with 23 additions and 19 deletions
|
|
@ -488,7 +488,7 @@ module.exports = {
|
|||
},
|
||||
function(buf)
|
||||
{
|
||||
var res = buf.unpack('LSS');
|
||||
var res = buf.unpack('Lss');
|
||||
ext = {};
|
||||
ext.child = res[0];
|
||||
ext.destX = res[1];
|
||||
|
|
@ -682,7 +682,7 @@ module.exports = {
|
|||
|
||||
PolyText8: [
|
||||
function(drawable, gc, x, y, items) {
|
||||
var format = 'CxSLLSS';
|
||||
var format = 'CxSLLss';
|
||||
var numItems = items.length;
|
||||
var reqLen = 16;
|
||||
var args = [74, 0, drawable, gc, x, y];
|
||||
|
|
@ -801,7 +801,7 @@ module.exports = {
|
|||
},
|
||||
function(buff)
|
||||
{
|
||||
var res = buff.unpack('LSSSSSx');
|
||||
var res = buff.unpack('LssSSSx');
|
||||
var ext = {};
|
||||
ext.windowid = res[0]
|
||||
ext.xPos = res[1];
|
||||
|
|
@ -821,7 +821,7 @@ module.exports = {
|
|||
|
||||
SetScreenSaver: [
|
||||
function(timeout, interval, preferBlanking, allowExposures) {
|
||||
return [ 'CxSSSCCxx', [107, 3, timeout, interval, preferBlanking, allowExposures]];
|
||||
return [ 'CxSssCCxx', [107, 3, timeout, interval, preferBlanking, allowExposures]];
|
||||
}
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -22,27 +22,31 @@ module.exports.addUnpack = function(Buffer)
|
|||
{
|
||||
var arg = format[current_arg];
|
||||
switch (arg) {
|
||||
case 'C':
|
||||
data.push(this[offset++]);
|
||||
case 'C':
|
||||
data.push(this.readUInt8(offset++));
|
||||
break;
|
||||
case 'c':
|
||||
data.push(this.readInt8(offset++));
|
||||
break;
|
||||
case 'S':
|
||||
case 's': //TODO: 16bit signed unpack
|
||||
var b1 = this[offset++];
|
||||
var b2 = this[offset++];
|
||||
data.push(b2*256+b1);
|
||||
data.push(this.readUInt16LE(offset));
|
||||
offset += 2;
|
||||
break;
|
||||
case 's':
|
||||
data.push(this.readInt16LE(offset));
|
||||
offset += 2;
|
||||
break;
|
||||
case 'n':
|
||||
var b1 = this[offset++];
|
||||
var b2 = this[offset++];
|
||||
data.push(b1*256+b2);
|
||||
data.push(this.readUInt16BE(offset));
|
||||
offset += 2;
|
||||
break;
|
||||
case 'L':
|
||||
case 'l': //TODO: 32bit signed unpack
|
||||
var b1 = this[offset++];
|
||||
var b2 = this[offset++];
|
||||
var b3 = this[offset++];
|
||||
var b4 = this[offset++];
|
||||
data.push(((b4*256+b3)*256 + b2)*256 + b1);
|
||||
data.push(this.readUInt32LE(offset));
|
||||
offset += 4;
|
||||
break;
|
||||
case 'l':
|
||||
data.push(this.readInt32LE(offset));
|
||||
offset += 4;
|
||||
break;
|
||||
case 'x':
|
||||
offset++;
|
||||
|
|
|
|||
Loading…
Reference in a new issue