From c202d93e0ebadfe9d1d61dbfa0b43a32a81cf9aa Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Sat, 28 Sep 2002 21:02:51 +0000 Subject: Use True/False everywhere, and other code cleanups. --- Lib/email/base64MIME.py | 20 +++++++++++++------- Lib/email/quopriMIME.py | 28 +++++++++++++++++----------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/Lib/email/base64MIME.py b/Lib/email/base64MIME.py index f177586..56e44e1 100644 --- a/Lib/email/base64MIME.py +++ b/Lib/email/base64MIME.py @@ -41,6 +41,12 @@ EMPTYSTRING = '' # See also Charset.py MISC_LEN = 7 +try: + True, False +except NameError: + True = 1 + False = 0 + # Helpers @@ -56,8 +62,8 @@ def base64_len(s): -def header_encode(header, charset='iso-8859-1', keep_eols=0, maxlinelen=76, - eol=NL): +def header_encode(header, charset='iso-8859-1', keep_eols=False, + maxlinelen=76, eol=NL): """Encode a single header line with Base64 encoding in a given charset. Defined in RFC 2045, this Base64 encoding is identical to normal Base64 @@ -69,7 +75,7 @@ def header_encode(header, charset='iso-8859-1', keep_eols=0, maxlinelen=76, End-of-line characters (\\r, \\n, \\r\\n) will be automatically converted to the canonical email line separator \\r\\n unless the keep_eols - parameter is set to true (the default is false). + parameter is True (the default is False). Each line of the header will be terminated in the value of eol, which defaults to "\\n". Set this to "\\r\\n" if you are using the result of @@ -106,7 +112,7 @@ def header_encode(header, charset='iso-8859-1', keep_eols=0, maxlinelen=76, lines = [] for line in base64ed: # Ignore the last character of each line if it is a newline - if line[-1] == NL: + if line.endswith(NL): line = line[:-1] # Add the chrome lines.append('=?%s?b?%s?=' % (charset, line)) @@ -117,13 +123,13 @@ def header_encode(header, charset='iso-8859-1', keep_eols=0, maxlinelen=76, -def encode(s, binary=1, maxlinelen=76, eol=NL): +def encode(s, binary=True, maxlinelen=76, eol=NL): """Encode a string with base64. Each line will be wrapped at, at most, maxlinelen characters (defaults to 76 characters). - If binary is false, end-of-line characters will be converted to the + If binary is False, end-of-line characters will be converted to the canonical email end-of-line sequence \\r\\n. Otherwise they will be left verbatim (this is the default). @@ -143,7 +149,7 @@ def encode(s, binary=1, maxlinelen=76, eol=NL): # BAW: should encode() inherit b2a_base64()'s dubious behavior in # adding a newline to the encoded string? enc = b2a_base64(s[i:i + max_unencoded]) - if enc[-1] == NL and eol <> NL: + if enc.endswith(NL) and eol <> NL: enc = enc[:-1] + eol encvec.append(enc) return EMPTYSTRING.join(encvec) diff --git a/Lib/email/quopriMIME.py b/Lib/email/quopriMIME.py index 1559c0e..18ddd89 100644 --- a/Lib/email/quopriMIME.py +++ b/Lib/email/quopriMIME.py @@ -38,17 +38,23 @@ MISC_LEN = 7 hqre = re.compile(r'[^-a-zA-Z0-9!*+/ ]') bqre = re.compile(r'[^ !-<>-~\t]') +try: + True, False +except NameError: + True = 1 + False = 0 + # Helpers def header_quopri_check(c): - """Return true if the character should be escaped with header quopri.""" - return hqre.match(c) and 1 + """Return True if the character should be escaped with header quopri.""" + return hqre.match(c) and True def body_quopri_check(c): - """Return true if the character should be escaped with body quopri.""" - return bqre.match(c) and 1 + """Return True if the character should be escaped with body quopri.""" + return bqre.match(c) and True def header_quopri_len(s): @@ -92,8 +98,8 @@ def quote(c): -def header_encode(header, charset="iso-8859-1", keep_eols=0, maxlinelen=76, - eol=NL): +def header_encode(header, charset="iso-8859-1", keep_eols=False, + maxlinelen=76, eol=NL): """Encode a single header line with quoted-printable (like) encoding. Defined in RFC 2045, this `Q' encoding is similar to quoted-printable, but @@ -114,7 +120,7 @@ def header_encode(header, charset="iso-8859-1", keep_eols=0, maxlinelen=76, End-of-line characters (\\r, \\n, \\r\\n) will be automatically converted to the canonical email line separator \\r\\n unless the keep_eols - parameter is set to true (the default is false). + parameter is True (the default is False). Each line of the header will be terminated in the value of eol, which defaults to "\\n". Set this to "\\r\\n" if you are using the result of @@ -151,10 +157,10 @@ def header_encode(header, charset="iso-8859-1", keep_eols=0, maxlinelen=76, -def encode(body, binary=0, maxlinelen=76, eol=NL): +def encode(body, binary=False, maxlinelen=76, eol=NL): """Encode with quoted-printable, wrapping at maxlinelen characters. - If binary is false (the default), end-of-line characters will be converted + If binary is False (the default), end-of-line characters will be converted to the canonical email end-of-line sequence \\r\\n. Otherwise they will be left verbatim. @@ -213,7 +219,7 @@ def encode(body, binary=0, maxlinelen=76, eol=NL): # Now at end of line.. if prev and prev in ' \t': # Special case for whitespace at end of file - if lineno+1 == len(lines): + if lineno + 1 == len(lines): prev = quote(prev) if len(encoded_line) + len(prev) > maxlinelen: encoded_body += encoded_line + '=' + eol + prev @@ -283,7 +289,7 @@ def decode(encoded, eol=NL): if i == n: decoded += eol # Special case if original string did not end with eol - if encoded[-1] <> eol and decoded[-1] == eol: + if not encoded.endswith(eol) and decoded.endswith(eol): decoded = decoded[:-1] return decoded -- cgit v0.12