diff options
author | rodri <rgl@antares-labs.eu> | 2021-08-04 19:23:46 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2021-08-04 19:23:46 +0000 |
commit | 854f2430801958cdbd14c86715814a9d9a097ac4 (patch) | |
tree | a81e8f1e963e6513f70f4c7a5dd055ea61b0a264 /pack.c | |
parent | 1059aa8707299a104a0ba556d293436d960e0006 (diff) | |
download | musw-854f2430801958cdbd14c86715814a9d9a097ac4.tar.gz musw-854f2430801958cdbd14c86715814a9d9a097ac4.tar.bz2 musw-854f2430801958cdbd14c86715814a9d9a097ac4.zip |
implemented keyboard key send/recv procedures.
Diffstat (limited to 'pack.c')
-rw-r--r-- | pack.c | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -21,6 +21,7 @@ static int vpack(uchar *p, int n, char *fmt, va_list a) { uchar *p0 = p, *e = p+n; + ulong k; FPdbleword d; Point2 P; @@ -45,6 +46,16 @@ vpack(uchar *p, int n, char *fmt, va_list a) goto err; pack(p, n, "ddd", P.x, P.y, P.w), p += 3*8; + + break; + case 'k': + k = va_arg(a, ulong); + + if(p+4 > e) + goto err; + + put4(p, k), p += 4; + break; } } @@ -56,6 +67,7 @@ static int vunpack(uchar *p, int n, char *fmt, va_list a) { uchar *p0 = p, *e = p+n; + ulong k; FPdbleword d; Point2 P; @@ -78,6 +90,16 @@ vunpack(uchar *p, int n, char *fmt, va_list a) unpack(p, n, "ddd", &P.x, &P.y, &P.w), p += 3*8; *va_arg(a, Point2*) = P; + + break; + case 'k': + if(p+4 > e) + goto err; + + k = get4(p), p += 4; + *va_arg(a, ulong*) = k; + + break; } } err: |