mirror of
https://github.com/romanz/amodem.git
synced 2026-03-17 15:16:00 +08:00
amodem-cli: fix compression logic
This commit is contained in:
19
amodem-cli
19
amodem-cli
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user