From 4494101858cdcc489281c1e22c3172b99ae2cb20 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 5 Jan 1999 18:02:24 +0000 Subject: [PATCH] Incorporate fix suggested by /Fredrik Lundh in the newsgroup to cope with trailing garbage generated by some broke uuencoders. --- Lib/uu.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Lib/uu.py b/Lib/uu.py index ecd76a86282..0ca4ae5f263 100755 --- a/Lib/uu.py +++ b/Lib/uu.py @@ -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'