Commit ef219a03 authored by Jim Fulton's avatar Jim Fulton

Added U64 which always returns a long.

Added some comments.
parent 06dabfac
...@@ -88,6 +88,7 @@ import TimeStamp, time, struct ...@@ -88,6 +88,7 @@ import TimeStamp, time, struct
t32 = 1L << 32 t32 = 1L << 32
def p64(v, pack=struct.pack): def p64(v, pack=struct.pack):
"""Pack an integer or long into a 8-byte string"""
if v < t32: h=0 if v < t32: h=0
else: else:
h=v/t32 h=v/t32
...@@ -95,6 +96,7 @@ def p64(v, pack=struct.pack): ...@@ -95,6 +96,7 @@ def p64(v, pack=struct.pack):
return pack(">II", h, v) return pack(">II", h, v)
def u64(v, unpack=struct.unpack): def u64(v, unpack=struct.unpack):
"""Unpack an 8-byte string into a 64-bit (or long) integer"""
h, v = unpack(">ii", v) h, v = unpack(">ii", v)
if v < 0: v=t32+v if v < 0: v=t32+v
if h: if h:
...@@ -102,6 +104,13 @@ def u64(v, unpack=struct.unpack): ...@@ -102,6 +104,13 @@ def u64(v, unpack=struct.unpack):
v=h*t32+v v=h*t32+v
return v return v
def U64(v, unpack=struct.unpack):
"""Same as u64 but always returns a long."""
h, v = unpack(">II", v)
if h:
v=h*t32+v
return v
def cp(f1, f2, l): def cp(f1, f2, l):
read=f1.read read=f1.read
write=f2.write write=f2.write
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment