annotate roundup/rfc2822.py @ 2119:cc4667ef3f12

Added the ability to toggle where error messages go. They either go to the user (default, for backwards compatibility), the dispatcher, or both. These are able to be toggled via settings in config.py. Please refer to upgrading.txt for more details. (And Richard, let me know if I've done anything wrong with this checkin. :))
author Eddie Parker <eparker@users.sourceforge.net>
date Thu, 25 Mar 2004 19:27:15 +0000
parents be047db3dd3d
children 443fce9e92ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2005
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
1 """Some rfc822 functions taken from the new (python2.3) "email" module.
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
2 """
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
3 __docformat__ = 'restructuredtext'
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
4
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
5 import re
1628
ea1afeb64b45 more pedantic rfc2822 header qp encoding
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1439
diff changeset
6 from string import letters, digits
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
7 from binascii import b2a_base64, a2b_base64
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
8
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
9 ecre = re.compile(r'''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
10 =\? # literal =?
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
11 (?P<charset>[^?]*?) # non-greedy up to the next ? is the charset
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
12 \? # literal ?
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
13 (?P<encoding>[qb]) # either a "q" or a "b", case insensitive
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
14 \? # literal ?
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
15 (?P<encoded>.*?) # non-greedy up to the next ?= is the encoded string
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
16 \?= # literal ?=
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
17 ''', re.VERBOSE | re.IGNORECASE)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
18
1628
ea1afeb64b45 more pedantic rfc2822 header qp encoding
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1439
diff changeset
19 hqre = re.compile(r'^[A-z0-9!"#$%%&\'()*+,-./:;<=>?@\[\]^_`{|}~ ]+$')
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
20
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
21 def base64_decode(s, convert_eols=None):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
22 """Decode a raw base64 string.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
23
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
24 If convert_eols is set to a string value, all canonical email linefeeds,
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
25 e.g. "\\r\\n", in the decoded text will be converted to the value of
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
26 convert_eols. os.linesep is a good choice for convert_eols if you are
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
27 decoding a text attachment.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
28
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
29 This function does not parse a full MIME header value encoded with
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
30 base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
31 level email.Header class for that functionality.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
32
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
33 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
34 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
35 if not s:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
36 return s
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
37
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
38 dec = a2b_base64(s)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
39 if convert_eols:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
40 return dec.replace(CRLF, convert_eols)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
41 return dec
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
42
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
43 def unquote_match(match):
2005
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
44 """Turn a match in the form ``=AB`` to the ASCII character with value
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
45 0xab.
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
46
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
47 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
48 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
49 s = match.group(0)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
50 return chr(int(s[1:3], 16))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
51
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
52 def qp_decode(s):
2005
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
53 """Decode a string encoded with RFC 2045 MIME header 'Q' encoding.
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
54
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
55 This function does not parse a full MIME header value encoded with
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
56 quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
57 the high level email.Header class for that functionality.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
58
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
59 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
60 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
61 s = s.replace('_', ' ')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
62 return re.sub(r'=\w{2}', unquote_match, s)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
63
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
64 def _decode_header(header):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
65 """Decode a message header value without converting charset.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
66
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
67 Returns a list of (decoded_string, charset) pairs containing each of the
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
68 decoded parts of the header. Charset is None for non-encoded parts of the
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
69 header, otherwise a lower-case string containing the name of the character
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
70 set specified in the encoded string.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
71
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
72 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
73 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
74 # If no encoding, just return the header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
75 header = str(header)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
76 if not ecre.search(header):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
77 return [(header, None)]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
78
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
79 decoded = []
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
80 dec = ''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
81 for line in header.splitlines():
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
82 # This line might not have an encoding in it
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
83 if not ecre.search(line):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
84 decoded.append((line, None))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
85 continue
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
86
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
87 parts = ecre.split(line)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
88 while parts:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
89 unenc = parts.pop(0)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
90 if unenc:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
91 if unenc.strip():
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
92 decoded.append((unenc, None))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
93 if parts:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
94 charset, encoding = [s.lower() for s in parts[0:2]]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
95 encoded = parts[2]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
96 dec = ''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
97 if encoding == 'q':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
98 dec = qp_decode(encoded)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
99 elif encoding == 'b':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
100 dec = base64_decode(encoded)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
101 else:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
102 dec = encoded
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
103
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
104 if decoded and decoded[-1][1] == charset:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
105 decoded[-1] = (decoded[-1][0] + dec, decoded[-1][1])
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
106 else:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
107 decoded.append((dec, charset))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
108 del parts[0:3]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
109 return decoded
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
110
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
111 def decode_header(hdr):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
112 """ Decodes rfc2822 encoded header and return utf-8 encoded string
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
113 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
114 if not hdr:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
115 return None
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
116 outs = u""
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
117 for section in _decode_header(hdr):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
118 charset = unaliasCharset(section[1])
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
119 outs += unicode(section[0], charset or 'iso-8859-1', 'replace')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
120 return outs.encode('utf-8')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
121
2034
be047db3dd3d Eudora can't handle utf-8 headers. We love Eudora. [SF#900046]
Richard Jones <richard@users.sourceforge.net>
parents: 2005
diff changeset
122 def encode_header(header, charset='utf-8'):
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
123 """ Will encode in quoted-printable encoding only if header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
124 contains non latin characters
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
125 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
126
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
127 # Return empty headers unchanged
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
128 if not header:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
129 return header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
130
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
131 # return plain header if it is not contains non-ascii characters
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
132 if hqre.match(header):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
133 return header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
134
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
135 quoted = ''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
136 #max_encoded = 76 - len(charset) - 7
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
137 for c in header:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
138 # Space may be represented as _ instead of =20 for readability
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
139 if c == ' ':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
140 quoted += '_'
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
141 # These characters can be included verbatim
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
142 elif hqre.match(c):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
143 quoted += c
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
144 # Otherwise, replace with hex value like =E2
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
145 else:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
146 quoted += "=%02X" % ord(c)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
147 plain = 0
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
148
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
149 return '=?%s?q?%s?=' % (charset, quoted)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
150
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
151 def unaliasCharset(charset):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
152 if charset:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
153 return charset.lower().replace("windows-", 'cp')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
154 #return charset_table.get(charset.lower(), charset)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
155 return None
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
156
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
157 def test():
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
158 print encode_header("Contrary, Mary")
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
159 #print unaliasCharset('Windows-1251')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
160
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
161 if __name__ == '__main__':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
162 test()
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
163
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
164 # vim: et

Roundup Issue Tracker: http://roundup-tracker.org/