[BACK]Return to utils.py CVS log [TXT][DIR] Up to [contributed] / MumbleDicebot

Annotation of MumbleDicebot/utils.py, Revision 1.1

1.1     ! rubenllo    1: def parse_varint(data):
        !             2:     barray = bytearray(data[:10])
        !             3:     byte = barray.pop(0)
        !             4:     if byte >> 7 == 0:
        !             5:         varint, rem = byte & 127, 0
        !             6:     elif byte >> 6 == 2:
        !             7:         varint, rem = byte & 63, 1
        !             8:     elif byte >> 5 == 6:
        !             9:         varint, rem = byte & 31, 2
        !            10:     elif byte >> 4 == 14:
        !            11:         varint, rem = byte & 15, 3
        !            12:     elif byte >> 2 == 60:
        !            13:         varint, rem = 0, 4
        !            14:     elif byte >> 2 == 61:
        !            15:         varint, rem = 0, 8
        !            16:     elif byte >> 2 == 62:
        !            17:         varint, data = parse_varint(data[1:])
        !            18:         return -varint, data
        !            19:     elif byte >> 2 == 63:
        !            20:         varint, rem = ~byte | 0xFC, 0
        !            21:
        !            22:     for i in range(rem):
        !            23:         varint <<= 8
        !            24:         varint += barray.pop(0)
        !            25:
        !            26:     return varint, data[rem+1:]

CVSweb