diff options
author | Plex <thinkplex@riseup.net> | 2021-10-24 23:33:48 +0200 |
---|---|---|
committer | Plex <thinkplex@riseup.net> | 2021-10-24 23:33:48 +0200 |
commit | d937614705989b9e71c366e5fe61751ba0d1a2eb (patch) | |
tree | e75c19227164e960a8b25044ae9945c1acd3104f /mctypes.c | |
parent | dd1779c4c7581b0b863886371f891d9d545d6b27 (diff) |
readValInt
Diffstat (limited to 'mctypes.c')
-rw-r--r-- | mctypes.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -5,7 +5,6 @@ varint writeVarInt(unsigned int x) { - // unsigned int v = x; varint n = malloc(sizeof(u_int8_t)); unsigned int size = 1; while(1) { @@ -14,7 +13,7 @@ varint writeVarInt(unsigned int x) x >>= 7; if(x == 0) return n; - n[size-1] |= 0b10000000; + n[size-1] |= 0x80; size++; } return n; @@ -34,3 +33,15 @@ writeVarInt(varint x, int s) x >>= 7; } } */ + +int readVarInt(varint x) +{ + unsigned int offset = 0; + unsigned int res = 0; + do { + if(offset == 5) exit(EXIT_FAILURE); + res |= x[offset] << offset*7; + offset++; + } while ((x[offset-1] & 0b10000000) != 0); + return (int) res; +} |