1 2015-03-03 Sam Varshavchik <mrsam@courier-mta.com>
3 * Replace rfc822_parsedt with rfc822_parsedate_chk(), returning
4 0 for ok, -1 for an error parsing the date string.
6 2015-02-28 Sam Varshavchik <mrsam@courier-mta.com>
8 * Update to courier-unicode 1.2.
10 2013-02-20 Sam Varshavchik <mrsam@courier-mta.com>
12 * rfc2047.c, rfc2047u.c: workaround for invalid utf-8 input making
13 libidn go off the rails.
15 2011-02-12 Sam Varshavchik <mrsam@courier-mta.com>
17 * rfc2047.c (do_encode_words_method): Avoid splitting RFC 2047-encoded
18 works in a middle of a grapheme.
20 2011-02-10 Sam Varshavchik <mrsam@courier-mta.com>
22 * rfc2047.c (rfc2047_encode_callback): Likely bug fixed.
23 (rfc2047_encode_str): Ignore invalid charset sequence when encoding
24 RFC-2047, too much code assumes that encoding always works.
26 2011-01-24 Sam Varshavchik <mrsam@courier-mta.com>
28 * rfc822/rfc2047.c (rfc2047_encode_callback): Rewrite broken logic.
30 2011-01-22 Sam Varshavchik <mrsam@courier-mta.com>
32 * rfc822/encodeautodetect.c (libmail_encode_autodetect): Remove obsolete
33 unicode API. Determine encoding with heuristics based entirely on
34 the content. Remove charset arg, replace with "use7bit", to force
35 qp or base64, instead of 8bit. Take a binaryflag param that gets set
36 to indicate whether base64 was selected based on binary content.
38 * rfc2047.c (rfc2047_encode_str): Removed
39 rfc2047_encode_callback_base64, invoked from rfc2047_encode_str().
40 Rewrite rfc2047_encode_str() to use the new unicode API.
42 * rfc2047u.c: Unicode API updates.
44 2011-01-09 Sam Varshavchik <mrsam@courier-mta.com>
46 * rfc822_parsedt.c: Eliminate the dependency on ctype, replaced
49 2011-01-08 Sam Varshavchik <mrsam@courier-mta.com>
51 * rfc822hdr.c (rfc822hdr_namecmp): Factor out rfc822hdr_namecmp from
52 rfc822hdr_is_addr, and make it usable, generically.
54 2010-06-25 Sam Varshavchik <mrsam@courier-mta.com>
56 * rfc822.c (rfc822_print_common_nameaddr): Prevent segfault if
59 2009-11-22 Sam Varshavchik <mrsam@courier-mta.com>
61 * rfc822.c: Removed rfc822_praddr().
63 * rfc822_getaddr.c (rfc822_getaddr): Implement rfc822_getaddr() by
64 calling rfc822_display_addr_tobuf(), instead of rfc822_praddr().
66 * testsuite.c (doaddr): Remove rfc822_addrlist() and rfc822_namelist().
68 2009-11-21 Sam Varshavchik <mrsam@courier-mta.com>
70 * rfc822_getaddr.c: Remove rfc822_prname() and rfc822_prname_orlist(),
71 replaced by rfc822_display_name() with a NULL character set.
73 * rfc2047u.c (rfc822_display_name): Semantical change -- without
74 an explicit name, display the address as the name. If the requested
75 character set is NULL, do not decode RFC2047-encoded content, return
78 2009-11-17 Sam Varshavchik <mrsam@courier-mta.com>
80 * rfc2047u.c (rfc2047_print_unicodeaddr): Fix several formatting
81 issues with deprecated RFC 822 distribution lists: spurious comma
82 adter the last address, pass the space after the ':' as a separator
85 * rfc2047.c (counts2/save): Fix line-wrapping of encoded addresses.
87 * rfc2047u.c (rfc822_display_addr_tobuf): New function.
89 2009-11-14 Sam Varshavchik <mrsam@courier-mta.com>
91 * rfc822.c (rfc822_print_common): Rewrite.
93 * rfc2047u.c (rfc822_display_name_int): Fixed various rules for
94 encoding names to be more MIME compliant.
95 (rfc822_display_addr_str): Renamed from rfc822_display_addr(), for a
97 (rfc822_display_addr): New function, decode the wire format of a single
98 address. Names are MIME decoded, addresses are IDN-decoded.
99 (rfc2047_print_unicodeaddr): Do not output a dummy name for an
101 (rfc822_display_addr_str_tobuf): New function, version of
102 rfc822_display_addr_str() that collects the output into a buffer.
104 * rfc2047.c (rfc822_encode_domain): New function -- IDN-encode a domain,
105 with an optional "user@".
106 (rfc2047_encode_header_addr): Renamed rfc2047_encode_header(), for a
108 (rfc2047_encode_header_tobuf): New function, encode a header from
109 displayed format to wire format. Names are encoded using RFC 2047,
112 2009-11-08 Sam Varshavchik <mrsam@courier-mta.com>
114 * rfc2047.h: Expose raw RFC 2047 decoding function,
117 * rfc822hdr.c (rfc822hdr_is_addr): New function.
119 * rfc822.c (tokenize): Tweak the logic for collecting RFC 2047 atoms.
121 * rfc2047u.c (rfc822_display_name): New function,
122 replaces rfc2047_print().
123 (rfc822_display_name_tobuf): New function,
124 replaces rfc2047_print().
125 (rfc822_display_namelist): New function,
126 replaces rfc822_namelist().
127 (rfc822_display_addr): New function, replaces rfc2047_print().
128 (rfc2047_print_unicodeaddr): Renamed from rfc2047_print_unicode().
129 (rfc822_display_hdrvalue): New function, replaces rfc2047_decode(),
130 rfc2047_decode_simple(), rfc2047_decode_enhanced().
131 (rfc822_display_hdrvalue_tobuf): New function, ditto.
133 * rfc2047.c: Removed rfc2047_decode(), rfc2047_decode_simple(),
134 rfc2047_decode_enhanced(), rfc2047_print().
136 * Makefile.am: Link against GNU IDN library.
138 2008-11-30 Sam Varshavchik <mrsam@courier-mta.com>
140 * imaprefs.c (dorefcreate): Clean up usage of rfc822_threadsearchmsg().
141 A malloc() failure wasn't checked correctly.
143 2008-06-13 Mr. Sam <mrsam@courier-mta.com>
145 * rfc822_getaddr.c: Backslashed special characters in address names
146 weren't being dequoted correctly by rfc822_getname() and
147 rfc822_getname_orlist().
149 2007-02-25 Mr. Sam <mrsam@courier-mta.com>
151 * rfc822.c (parseaddr): rfc822a_alloc() would corrupt and misparse
152 RFC2047-encoded atoms.
154 2006-01-21 Mr. Sam <mrsam@courier-mta.com>
156 * rfc2047.c (encodebase64): Fix compiler warning.
158 * rfc822.c (parseaddr): Ditto.
160 2005-11-15 Mr. Sam <mrsam@courier-mta.com>
162 * encode.c (quoted_printable): encode spaces that precede a newline.
164 2004-08-29 Mr. Sam <mrsam@courier-mta.com>
166 * imapsubj.c (rfc822_coresubj_keepblobs): New function to strip
167 non-core subject appendages, but keep [blobs].
169 2004-05-29 Mr. Sam <mrsam@courier-mta.com>
171 * rfc2047.c (rfc2047_encode_callback): Use base64 to MIME-encode
172 instead of quoted-printable, where it's more efficient to do so.
174 2004-04-14 Mr. Sam <mrsam@courier-mta.com>
176 * rfc2047.c (rfc2047_encode_callback): Fix bug introduced in 0411.
178 2004-04-11 Mr. Sam <mrsam@courier-mta.com>
180 * rfc2047.c (a_rfc2047_encode_str): Improve compliance with RFC 2047
181 for MIME-encoded recipient lists.
182 (rfc2047_encode_callback): New argument: qp_allow - function that
183 indicates acceptable characters in QP-encoded words.
184 (rfc2047_encode_str): Ditto.
185 (rfc2047_qp_allow_any, rfc2047_qp_allow_comment)
186 (rfc2047_qp_allow_word): Possible arguments to qp_allow for various
189 2004-04-09 Mr. Sam <mrsam@courier-mta.com>
191 * encode.c: Moved rfc2045/rfc2045encode.c here, renamed all functions
192 to use the libmail_ prefix.
194 2003-11-18 Tim Rice <tim@multitalents.net>
196 * configure.in: Fix MSG_WARN.
198 2003-10-20 Mr. Sam <mrsam@courier-mta.com>
200 * rfc2047u.c (rfc2047_print_unicode): Unicode-aware version of
203 2003-07-08 Mr. Sam <mrsam@courier-mta.com>
205 * imaprefs.c (rfc822_threadmsgrefs): New rfc822_threadmsgrefs takes
206 an array of References: headers, instead of a single References:
209 2003-03-20 Mr. Sam <mrsam@courier-mta.com>
211 * rfc2047.c (rfc2047_encode_callback): Fix MIME encoding of "_".
213 2002-12-23 Mr. Sam <mrsam@courier-mta.com>
215 * rfc2047.c (rfc2047_encode_callback): Fix loop on broken
216 locales where isspace(U+0x00A0) is true.
218 2002-09-19 Mr. Sam <mrsam@courier-mta.com>
222 2002-08-08 Mr. Sam <mrsam@courier-mta.com>
224 * rfc2047.c (rfc2047_encode_callback): Fix MIME encoding of words
225 with = and ? characters.
227 2002-05-20 Mr. Sam <mrsam@courier-mta.com>
229 * rfc822_parsedt.c (rfc822_parsedt): Ignore obviously invalid years
230 (someone else can worry about Y10K).
232 2002-04-07 Mr. Sam <mrsam@courier-mta.com>
234 * rfc822_mkdate.c (rfc822_mkdate_buf): Explicit (int) cast gets
235 the file compiled under Cygwin.
237 2002-03-09 Mr. Sam <mrsam@courier-mta.com>
239 * rfc2047.c (rfc2047_encode_callback): Fix MIME-encoding of spaces.
241 2002-03-04 Mr. Sam <mrsam@courier-mta.com>
243 * rfc822.c (rfc822_prname_orlist): Dequote quoted-strings.
245 2001-06-27 Mr. Sam <mrsam@courier-mta.com>
247 * rfc2047.c (a_rfc2047_encode_str): Fix incorrect MIME encoding of
248 address name in old-style RFC-822 format.
250 2001-04-17 Mr. Sam <mrsam@courier-mta.com>
252 * rfc822.c (rfc822t_alloc): Explicitly cast arg to (void *).
254 2000-12-22 Mr. Sam <mrsam@courier-mta.com>
256 * reftest.c: Fix dependency on qsort sorting order of identical keys.
258 2000-12-11 Mr. Sam <mrsam@courier-mta.com>
260 * imapsubj.c (stripsubj): Recode subject stripping.
262 2000-11-18 Mr. Sam <mrsam@gwl.email-scan.com>
264 * imaprefs.c: Update to draft-05.txt-bis (sort top level siblings
267 Mon Apr 5 00:58:37 EDT 1999
269 * Yes, I've decided to start a Change Log. librfc822 now has a life of its
270 own, so it might as well have it.
272 * Courier needs tokens in a link list, not an array. Rewrote most token
275 * Fixed some issues with handling of () comments.
277 * Changed *pr* functions to pass along a caller-provided void, also for
278 courier. librfc822 should now be threadable (like, who cares...)