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
def read(self, size):
data = self.stream.read(size)
if data:
data = self.obj.compress(data)
elif self.obj:
data = self.obj.flush()
self.obj = None
return data
while True:
data = self.stream.read(size)
if data:
result = self.obj.compress(data)
if not result: # compression is too good :)
continue # try again (since falsy data = EOF)
elif self.obj:
result = self.obj.flush()
self.obj = None
else:
result = '' # EOF marker
return result
class Decompressor(object):