annotate roundup/rfc2822.py @ 3854:f4e8dc583256

Restored subject parser regexp to the string it was before the... ...implementation of customization of it, i.e., the version from CVS revision 1.184 of mailgw.py. This makes 'testFollowupTitleMatchMultiRe' work again.
author Erik Forsberg <forsberg@users.sourceforge.net>
date Sat, 12 May 2007 16:14:54 +0000
parents 97f9fc0bc0ea
children
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
2273
c77483d2cda4 merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents: 2034
diff changeset
21 CRLF = '\r\n'
c77483d2cda4 merge from maint-0-7
Richard Jones <richard@users.sourceforge.net>
parents: 2034
diff changeset
22
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
23 def base64_decode(s, convert_eols=None):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
24 """Decode a raw base64 string.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
25
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
26 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
27 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
28 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
29 decoding a text attachment.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
30
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
31 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
32 base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
33 level email.Header class for that functionality.
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 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
36 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
37 if not s:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
38 return s
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
39
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
40 dec = a2b_base64(s)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
41 if convert_eols:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
42 return dec.replace(CRLF, convert_eols)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
43 return dec
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
44
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
45 def unquote_match(match):
2005
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
46 """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
47 0xab.
1383
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 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
50 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
51 s = match.group(0)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
52 return chr(int(s[1:3], 16))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
53
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
54 def qp_decode(s):
2005
fc52d57c6c3e documentation cleanup
Richard Jones <richard@users.sourceforge.net>
parents: 1628
diff changeset
55 """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
56
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
57 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
58 quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
59 the high level email.Header class for that functionality.
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 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
62 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
63 s = s.replace('_', ' ')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
64 return re.sub(r'=\w{2}', unquote_match, s)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
65
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
66 def _decode_header(header):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
67 """Decode a message header value without converting charset.
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
68
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
69 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
70 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
71 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
72 set specified in the encoded string.
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 Taken from 'email' module
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
75 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
76 # If no encoding, just return the header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
77 header = str(header)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
78 if not ecre.search(header):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
79 return [(header, None)]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
80
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
81 decoded = []
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
82 dec = ''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
83 for line in header.splitlines():
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
84 # This line might not have an encoding in it
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
85 if not ecre.search(line):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
86 decoded.append((line, None))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
87 continue
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
88
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
89 parts = ecre.split(line)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
90 while parts:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
91 unenc = parts.pop(0)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
92 if unenc:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
93 if unenc.strip():
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
94 decoded.append((unenc, None))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
95 if parts:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
96 charset, encoding = [s.lower() for s in parts[0:2]]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
97 encoded = parts[2]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
98 dec = ''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
99 if encoding == 'q':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
100 dec = qp_decode(encoded)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
101 elif encoding == 'b':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
102 dec = base64_decode(encoded)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
103 else:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
104 dec = encoded
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
105
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
106 if decoded and decoded[-1][1] == charset:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
107 decoded[-1] = (decoded[-1][0] + dec, decoded[-1][1])
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
108 else:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
109 decoded.append((dec, charset))
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
110 del parts[0:3]
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
111 return decoded
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
112
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
113 def decode_header(hdr):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
114 """ Decodes rfc2822 encoded header and return utf-8 encoded string
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
115 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
116 if not hdr:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
117 return None
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
118 outs = u""
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
119 for section in _decode_header(hdr):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
120 charset = unaliasCharset(section[1])
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
121 outs += unicode(section[0], charset or 'iso-8859-1', 'replace')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
122 return outs.encode('utf-8')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
123
2034
be047db3dd3d Eudora can't handle utf-8 headers. We love Eudora. [SF#900046]
Richard Jones <richard@users.sourceforge.net>
parents: 2005
diff changeset
124 def encode_header(header, charset='utf-8'):
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
125 """ Will encode in quoted-printable encoding only if header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
126 contains non latin characters
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
127 """
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
128
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
129 # Return empty headers unchanged
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
130 if not header:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
131 return header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
132
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
133 # return plain header if it is not contains non-ascii characters
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
134 if hqre.match(header):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
135 return header
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
136
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
137 quoted = ''
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
138 #max_encoded = 76 - len(charset) - 7
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
139 for c in header:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
140 # Space may be represented as _ instead of =20 for readability
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
141 if c == ' ':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
142 quoted += '_'
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
143 # These characters can be included verbatim
3639
97f9fc0bc0ea Yet another rfc2822 encoding patch: '?' must be escaped.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3519
diff changeset
144 elif hqre.match(c) and c not in '_=?':
1383
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
145 quoted += c
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
146 # Otherwise, replace with hex value like =E2
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
147 else:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
148 quoted += "=%02X" % ord(c)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
149 plain = 0
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 return '=?%s?q?%s?=' % (charset, quoted)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
152
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
153 def unaliasCharset(charset):
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
154 if charset:
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
155 return charset.lower().replace("windows-", 'cp')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
156 #return charset_table.get(charset.lower(), charset)
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
157 return None
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
158
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
159 def test():
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
160 print encode_header("Contrary, Mary")
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
161 #print unaliasCharset('Windows-1251')
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
162
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
163 if __name__ == '__main__':
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
164 test()
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
165
f19dde90e473 applied unicode patch
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
diff changeset
166 # vim: et

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