Incorporate fix suggested by /Fredrik Lundh in the newsgroup to cope
with trailing garbage generated by some broke uuencoders.
This commit is contained in:
parent
716a89c606
commit
4494101858
15
Lib/uu.py
15
Lib/uu.py
|
@ -121,10 +121,17 @@ def decode(in_file, out_file=None, mode=None):
|
||||||
#
|
#
|
||||||
# Main decoding loop
|
# Main decoding loop
|
||||||
#
|
#
|
||||||
str = in_file.readline()
|
s = in_file.readline()
|
||||||
while str and str != 'end\n':
|
while s and s != 'end\n':
|
||||||
out_file.write(binascii.a2b_uu(str))
|
try:
|
||||||
str = in_file.readline()
|
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:
|
if not str:
|
||||||
raise Error, 'Truncated input file'
|
raise Error, 'Truncated input file'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue