Mercurial > hg > cc > cirrus_work
changeset 240:51bd09d4289e
eof pblms fixed, seems to work
author | Henry S. Thompson <ht@inf.ed.ac.uk> |
---|---|
date | Tue, 01 Oct 2024 15:59:26 +0100 |
parents | 992f59d21832 |
children | 96021cfee209 |
files | lib/python/unpackz.py |
diffstat | 1 files changed, 13 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/python/unpackz.py Sat Sep 28 15:19:05 2024 +0100 +++ b/lib/python/unpackz.py Tue Oct 01 15:59:26 2024 +0100 @@ -18,19 +18,22 @@ z = isal.isal_zlib.decompressobj(31) count = 0 while True: - if z.unused_data == b"": + if z.unused_data == b"": #print('n', obuf_len, file=sys.stderr) + if lastbuf: # buf == b"": + if outfile is None: + print(obuf_len, offset) + else: + outfile.write(b'\000%d\000%d\000'%(obuf_len, offset)) + if count!=0: + print("Unused data: count=%s offset=%s ?"%(count, offset), + file=sys.stderr) + break if nbuf: - obuf_len += BUFSIZE # still no EOS after a full buffer processed + obuf_len += BUFSIZE # still no EOS after a full buffer processed buf = f.read(BUFSIZE) nbuf = True lastbuf = ((truesize:=len(buf)) < BUFSIZE) # will only succeed if now at EOF - if buf == b"": - if outfile is None: - print(count, offset) - else: - outfile.write(b'\000%d\000%d\000'%(count, offset)) - break else: buf_len = len(buf) #print('b', obuf_len, buf_len, len(z.unused_data), len(buf)-len(z.unused_data), @@ -41,6 +44,8 @@ print(count, offset) else: outfile.write(b'\000%d\000%d\000'%(count, offset)) +# if (offset == 1352249): +# breakpoint() offset += count count = 0 buf = z.unused_data @@ -50,8 +55,5 @@ got = z.decompress(buf) if outfile is not None: outfile.write(got) -if count!=0: - print("Unused data: count=%s offset=%s ?"%(count, offset), - file=sys.stderr) if outfile is not None: outfile.close()