Commit d7e74949 authored by Jeremy Hylton's avatar Jeremy Hylton

Fix newTimeStamp() so it works when the first arg is not None.

Replace long multiplies with long shifts in U64() and u64().
parent 34ac0dec
......@@ -89,26 +89,29 @@ t32 = 1L << 32
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:
h=v/t32
v=v%t32
h, v = divmod(v, t32)
return pack(">II", h, v)
def u64(v, unpack=struct.unpack):
"""Unpack an 8-byte string into a 64-bit (or long) integer"""
# XXX this seems to be just a slower version of U64()
h, v = unpack(">ii", v)
if v < 0: v=t32+v
if v < 0:
v = t32 + v
if h:
if h < 0: h=t32+h
v=h*t32+v
if h < 0:
h = t32 + h
v = (h << 32) + 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
v = (h << 32) + v
return v
def cp(f1, f2, l):
......@@ -129,6 +132,7 @@ def newTimeStamp(old=None,
time=time.time, gmtime=time.gmtime):
t=time()
ts=TimeStamp(gmtime(t)[:5]+(t%60,))
if old is not None: return ts.laterThan(than)
if old is not None:
return ts.laterThan(old)
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