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