summaryrefslogtreecommitdiffstats
path: root/rfc822/ChangeLog
blob: 834004e025971edec8f0646e254a9f76f59322fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
2015-03-03  Sam Varshavchik  <mrsam@courier-mta.com>

	* Replace rfc822_parsedt with rfc822_parsedate_chk(), returning
	0 for ok, -1 for an error parsing the date string.

2015-02-28  Sam Varshavchik  <mrsam@courier-mta.com>

	* Update to courier-unicode 1.2.

2013-02-20  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc2047.c, rfc2047u.c: workaround for invalid utf-8 input making
	libidn go off the rails.

2011-02-12  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc2047.c (do_encode_words_method): Avoid splitting RFC 2047-encoded
	works in a middle of a grapheme.

2011-02-10  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Likely bug fixed.
	(rfc2047_encode_str): Ignore invalid charset sequence when encoding
	RFC-2047, too much code assumes that encoding always works.

2011-01-24  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822/rfc2047.c (rfc2047_encode_callback): Rewrite broken logic.

2011-01-22  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822/encodeautodetect.c (libmail_encode_autodetect): Remove obsolete
	unicode API. Determine encoding with heuristics based entirely on
	the content. Remove charset arg, replace with "use7bit", to force
	qp or base64, instead of 8bit. Take a binaryflag param that gets set
	to indicate whether base64 was selected based on binary content.

	* rfc2047.c (rfc2047_encode_str): Removed
	rfc2047_encode_callback_base64, invoked from rfc2047_encode_str().
	Rewrite rfc2047_encode_str() to use the new unicode API.

	* rfc2047u.c: Unicode API updates.

2011-01-09  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822_parsedt.c: Eliminate the dependency on ctype, replaced
	them with macros.

2011-01-08  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822hdr.c (rfc822hdr_namecmp): Factor out rfc822hdr_namecmp from
	rfc822hdr_is_addr, and make it usable, generically.

2010-06-25  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822.c (rfc822_print_common_nameaddr): Prevent segfault if
	address decode fails.

2009-11-22  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822.c: Removed rfc822_praddr().

	* rfc822_getaddr.c (rfc822_getaddr): Implement rfc822_getaddr() by
	calling rfc822_display_addr_tobuf(), instead of rfc822_praddr().

	* testsuite.c (doaddr): Remove rfc822_addrlist() and rfc822_namelist().

2009-11-21  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822_getaddr.c: Remove rfc822_prname() and rfc822_prname_orlist(),
	replaced by rfc822_display_name() with a NULL character set.

	* rfc2047u.c (rfc822_display_name): Semantical change -- without
	an explicit name, display the address as the name. If the requested
	character set is NULL, do not decode RFC2047-encoded content, return
	it as is.

2009-11-17  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc2047u.c (rfc2047_print_unicodeaddr): Fix several formatting
	issues with deprecated RFC 822 distribution lists: spurious comma
	adter the last address, pass the space after the ':' as a separator
	character.

	* rfc2047.c (counts2/save): Fix line-wrapping of encoded addresses.

	* rfc2047u.c (rfc822_display_addr_tobuf): New function.

2009-11-14  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc822.c (rfc822_print_common): Rewrite.

	* rfc2047u.c (rfc822_display_name_int): Fixed various rules for
	encoding names to be more MIME compliant.
	(rfc822_display_addr_str): Renamed from rfc822_display_addr(), for a
	consistent API.
	(rfc822_display_addr): New function, decode the wire format of a single
	address. Names are MIME decoded, addresses are IDN-decoded.
	(rfc2047_print_unicodeaddr): Do not output a dummy name for an
	address without one.
	(rfc822_display_addr_str_tobuf): New function, version of
	rfc822_display_addr_str() that collects the output into a buffer.

	* rfc2047.c (rfc822_encode_domain): New function -- IDN-encode a domain,
	with an optional "user@".
	(rfc2047_encode_header_addr): Renamed rfc2047_encode_header(), for a
	consistent API.
	(rfc2047_encode_header_tobuf): New function, encode a header from
	displayed format to wire format. Names are encoded using RFC 2047,
	addresses using IDN.

2009-11-08  Sam Varshavchik  <mrsam@courier-mta.com>

	* rfc2047.h: Expose raw RFC 2047 decoding function,
	rfc2047_decoder().

	* rfc822hdr.c (rfc822hdr_is_addr): New function.

	* rfc822.c (tokenize): Tweak the logic for collecting RFC 2047 atoms.

	* rfc2047u.c (rfc822_display_name): New function,
	replaces rfc2047_print().
	(rfc822_display_name_tobuf): New function,
	replaces rfc2047_print().
	(rfc822_display_namelist): New function,
	replaces rfc822_namelist().
	(rfc822_display_addr): New function, replaces rfc2047_print().
	(rfc2047_print_unicodeaddr): Renamed from rfc2047_print_unicode().
	(rfc822_display_hdrvalue): New function, replaces rfc2047_decode(),
	rfc2047_decode_simple(), rfc2047_decode_enhanced().
	(rfc822_display_hdrvalue_tobuf): New function, ditto.

	* rfc2047.c: Removed rfc2047_decode(), rfc2047_decode_simple(),
	rfc2047_decode_enhanced(), rfc2047_print().

	* Makefile.am: Link against GNU IDN library.

2008-11-30  Sam Varshavchik  <mrsam@courier-mta.com>

	* imaprefs.c (dorefcreate): Clean up usage of rfc822_threadsearchmsg().
	A malloc() failure wasn't checked correctly.

2008-06-13  Mr. Sam  <mrsam@courier-mta.com>

	* rfc822_getaddr.c: Backslashed special characters in address names
	weren't being dequoted correctly by rfc822_getname() and
	rfc822_getname_orlist().

2007-02-25  Mr. Sam  <mrsam@courier-mta.com>

	* rfc822.c (parseaddr): rfc822a_alloc() would corrupt and misparse
	RFC2047-encoded atoms.

2006-01-21  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (encodebase64): Fix compiler warning.

	* rfc822.c (parseaddr): Ditto.

2005-11-15  Mr. Sam  <mrsam@courier-mta.com>

	* encode.c (quoted_printable): encode spaces that precede a newline.

2004-08-29  Mr. Sam  <mrsam@courier-mta.com>

	* imapsubj.c (rfc822_coresubj_keepblobs): New function to strip
	non-core subject appendages, but keep [blobs].

2004-05-29  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Use base64 to MIME-encode
	instead of quoted-printable, where it's more efficient to do so.

2004-04-14  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Fix bug introduced in 0411.

2004-04-11  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (a_rfc2047_encode_str): Improve compliance with RFC 2047
	for MIME-encoded recipient lists.
	(rfc2047_encode_callback): New argument: qp_allow - function that
	indicates acceptable characters in QP-encoded words.
	(rfc2047_encode_str): Ditto.
	(rfc2047_qp_allow_any, rfc2047_qp_allow_comment)
	(rfc2047_qp_allow_word): Possible arguments to qp_allow for various
	situations.

2004-04-09  Mr. Sam  <mrsam@courier-mta.com>

	* encode.c: Moved rfc2045/rfc2045encode.c here, renamed all functions
	to use the libmail_ prefix.

2003-11-18  Tim Rice <tim@multitalents.net>

	* configure.in: Fix MSG_WARN.

2003-10-20  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047u.c (rfc2047_print_unicode): Unicode-aware version of
	rfc2047_print().

2003-07-08  Mr. Sam  <mrsam@courier-mta.com>

	* imaprefs.c (rfc822_threadmsgrefs): New rfc822_threadmsgrefs takes
	an array of References: headers, instead of a single References:
	string.

2003-03-20  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Fix MIME encoding of "_".

2002-12-23  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Fix loop on broken
	locales where isspace(U+0x00A0) is true.

2002-09-19  Mr. Sam  <mrsam@courier-mta.com>

	* RFC 2231 support.

2002-08-08  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Fix MIME encoding of words
	with = and ? characters.

2002-05-20  Mr. Sam  <mrsam@courier-mta.com>

	* rfc822_parsedt.c (rfc822_parsedt): Ignore obviously invalid years
	(someone else can worry about Y10K).

2002-04-07  Mr. Sam  <mrsam@courier-mta.com>

	* rfc822_mkdate.c (rfc822_mkdate_buf): Explicit (int) cast gets
	the file compiled under Cygwin.

2002-03-09  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (rfc2047_encode_callback): Fix MIME-encoding of spaces.

2002-03-04  Mr. Sam  <mrsam@courier-mta.com>

	* rfc822.c (rfc822_prname_orlist): Dequote quoted-strings.

2001-06-27  Mr. Sam  <mrsam@courier-mta.com>

	* rfc2047.c (a_rfc2047_encode_str): Fix incorrect MIME encoding of
	address name in old-style RFC-822 format.

2001-04-17  Mr. Sam  <mrsam@courier-mta.com>

	* rfc822.c (rfc822t_alloc): Explicitly cast arg to (void *).

2000-12-22  Mr. Sam  <mrsam@courier-mta.com>

	* reftest.c: Fix dependency on qsort sorting order of identical keys.

2000-12-11  Mr. Sam  <mrsam@courier-mta.com>

	* imapsubj.c (stripsubj): Recode subject stripping.

2000-11-18  Mr. Sam  <mrsam@gwl.email-scan.com>

	* imaprefs.c: Update to draft-05.txt-bis (sort top level siblings
	by date.

Mon Apr  5 00:58:37 EDT 1999

* Yes, I've decided to start a Change Log. librfc822 now has a life of its
own, so it might as well have it.

* Courier needs tokens in a link list, not an array.  Rewrote most token
handling code.

* Fixed some issues with handling of () comments.

* Changed *pr* functions to pass along a caller-provided void, also for
  courier.  librfc822 should now be threadable (like, who cares...)

* Added a testsuite