Commit a35db60b authored by Guido van Rossum's avatar Guido van Rossum

Incorporate fix suggested by /Fredrik Lundh in the newsgroup to cope

with trailing garbage generated by some broke uuencoders.
parent 99aa2641
......@@ -121,10 +121,17 @@ def decode(in_file, out_file=None, mode=None):
#
# Main decoding loop
#
str = in_file.readline()
while str and str != 'end\n':
out_file.write(binascii.a2b_uu(str))
str = in_file.readline()
s = in_file.readline()
while s and s != 'end\n':
try:
data = binascii.a2b_uu(s)
except binascii.Error, v:
# Workaround for broken uuencoders by /Fredrik Lundh
nbytes = (((ord(s[0])-32) & 63) * 4 + 5) / 3
data = binascii.a2b_uu(s[:nbytes])
sys.stderr.write("Warning: %s\n" % str(v))
out_file.write(data)
s = in_file.readline()
if not str:
raise Error, 'Truncated input file'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment