X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=lbs.py;h=712b07287be07fc073979f06f9ce13df1c439988;hb=d3c10b747ecec0acc14863fc12db9661c3f88128;hp=7a391c7c033ff0baf4daa1829c5f585089020b45;hpb=020917702127ad12881c8868bb649a685c561def;p=cumulus.git diff --git a/lbs.py b/lbs.py index 7a391c7..712b072 100644 --- a/lbs.py +++ b/lbs.py @@ -136,6 +136,10 @@ class ObjectStore: @staticmethod def parse_ref(refstr): + m = re.match(r"^zero\[(\d+)\+(\d+)\]$", refstr) + if m: + return ("zero", None, None, (int(m.group(1)), int(m.group(2)))) + m = re.match(r"^([-0-9a-f]+)\/([0-9a-f]+)(\(\S+\))?(\[(\d+)\+(\d+)\])?$", refstr) if not m: return @@ -206,6 +210,9 @@ class ObjectStore: (segment, object, checksum, slice) = self.parse_ref(refstr) + if segment == "zero": + return "\0" * slice[1] + data = self.load_object(segment, object) if checksum is not None: