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