amodem-cli: fix compression logic

This commit is contained in:
Roman Zeyde
2015-01-16 11:32:15 +02:00
parent fe1714a0bc
commit 2727ff014a

View File

@@ -34,13 +34,18 @@ class Compressor(object):
self.stream = stream self.stream = stream
def read(self, size): def read(self, size):
data = self.stream.read(size) while True:
if data: data = self.stream.read(size)
data = self.obj.compress(data) if data:
elif self.obj: result = self.obj.compress(data)
data = self.obj.flush() if not result: # compression is too good :)
self.obj = None continue # try again (since falsy data = EOF)
return data elif self.obj:
result = self.obj.flush()
self.obj = None
else:
result = '' # EOF marker
return result
class Decompressor(object): class Decompressor(object):