Reorder and "style-up" names.c..
[s-mailx.git] / ChangeLog.heirloom
blobaf619071da8d9d3285b865b6e1582befa17e7ebd
1 [12.5] as of 7/5/10
2 * The undocumented contenttype-cntrl option works again (patch by
3   Laurent Parenteau).
5 [12.5] as of 6/20/10
6 * Fixed a message corruption that occurred when the "inc" command was used
7   with a mbox format mailbox after encrypted messages had been viewed
8   (reported by Martin Neitzel).
9 * Fixed a condition that caused mailx to hang when looking at a message,
10   copying that message, and issuing a "z" command evaluating an uncached
11   portion of an IMAP folder.
12 * Make it compile with OpenSSL 1.0.0-beta2 (patch by Bernhard Rosenkränzer).
13 * When executing an "account" command, ensure that the values of the "hold",
14   "keepsave", "append", and "emptybox" variables remain those of the previous
15   account for all outstanding operations on that account (bug reported by
16   Jeff Woodall).
17 * Support Gmail IMAP semantics of "delete" turning into "archive". Previously,
18   when mailx was setting the "\Deleted" flag on a message, it did not set any
19   other flags. This caused mails that had been read and then deleted to appear
20   as unread in Gmail's "All Mail". Now, flags besides "\Deleted" are also set,
21   so that they are kept in the archived copy (reported by Jeremy O'Brien).
22 * For RFC 2047 MIME "encoded-word" parts in headers, assume that the end of
23   each word resets the conversion state (Yedidyah Bar-David).
24 * When the ORGANIZATION variable has an empty value, do not generate an
25   "Organization:" header field. Previously, this condition resulted in
26   mailx refusing to send mail (Thomas E. Kammeyer).
27 * When classifying messages with the junk filter, when selecting the most
28   representative tokens, prefer non-junk tokens over junk tokens if both
29   have the same (reversed) probability, in order to avoid false positives.
30 * When calculating the probabilities of tokens that have occurred only in
31   good messages or only in junk messages so far, and these tokens occurred
32   less than ten times, give them slightly less than the minimum/maximum.
33 * Fixed "unignore" and similar commands; they did not work at all so far
34   (http://www.freebsd.org/cgi/query-pr.cgi?pr=146280).
36 [12.4] released 7/29/08
37 * With the "-E" command line option or if the "skipemptybody" variable is
38   set, outgoing messages that contain no text in their first or only part
39   are not sent but silently discarded (contributed by Eygene Ryabinkin).
40 * Support for SMTP AUTH PLAIN has been added (contributed by Joe Feise).
41   Set "smtp-auth=plain" to use it.
42 * When the text of an outgoing message contains illegal byte sequences
43   in non-interactive mode, do not refuse sending it but send it with
44   the "application/octet-stream" content type instead (thanks for the
45   report and further help to Hilko Bengen).
46 * When an attachment that would have a "text/something" content type
47   contains illegal byte sequences, it is now reliably sent out with the
48   "application/octet-stream" content type instead (bugreport by
49   Hilko Bengen).
50 * The values of the "sendcharsets" variable are now separately traversed
51   for each part of a multipart message, so that if e.g. the main body can
52   be represented in ISO-8859-1 but an attachment text needs UTF-8, these
53   two encodings will be chosen, respectively.
54 * Fixed a bug that caused messages to be truncated with IMAP servers that
55   use LF as line ending in message data, such as Google Mail (reported by 
56   Matthew L. Shobe).
57 * Do not run filename expansion for IMAP or POP3 mailboxes names, making
58   it possible to select mailboxes that contain both brackets and spaces
59   in their names (reported by Matthew L. Shobe).
60 * Fixed the format of the timezone in "Date" header fields for zones in
61   the Western Hemisphere whose offsets are not an integral number of hours
62   (patch by Matthew Fischer).
63 * Print an error message when an attempt is made to S/MIME sign a
64   message but no "from" address can be determined (Georgi Stanojevski).
65 * Made the getopt() substitute work with the getopt$UNIX2003() function
66   redirection mechanism on Mac OS X Leopard.
67 * Fixed an incorrect type of enum (patch by Matthew Fischer).
69 [12.3] released 7/15/07
70 * Multibyte characters are now handled correctly when printing texts
71   encoded in base64. Previously, if a multibyte character spanned
72   across a line in the base64-encoded representation, it was not
73   recognized, and substitution characters were printed instead.
74 * In an SMTP exchange, ignore if the server closes the connection
75   following the QUIT command instead of sending a proper response code,
76   fixing a problem with GMail (Dr. Gary E. Rafe).
77 * A null pointer dereference that lead to a segmentation fault when
78   the user hit return at a yes/no question has been fixed (patch by
79   Martin Neitzel).
80 * If no proper boundary is present in a MIME multipart message, print
81   a notification message since otherwise no content is shown at all
82   (problem reported by Thomas Wolff).
83 * When both standard input and standard output refer to a terminal,
84   ignore SIGPIPE since there is no reason why it should ever terminate
85   mailx then. This fixes problems with mailx terminating when reading
86   a message and ^C is typed in the pager under some circumstances
87   (analysis by Stephen Isard and Perry Hutchison).
88 * Build without socket support again (patch by Andreas Niederl).
89 * Fixed a single quote in "makeconfig" that could cause a problem with
90   the C preprocessor (patch by Martin Neitzel).
91 * Building with recent versions of Mozilla NSS is now possible.
93 [12.2] released 1/7/07
94 * When a MIME message part is not of the "text/" content type, always
95   send it in base64 to avoid issues with CRLF conversion (David Ronis).
96 * Character set conversion is now also applied to attachments if they
97   have the "text/" content type. This is necessary because with the
98   "sendcharsets" variable, the character set declaration that becomes
99   effective in the message part is otherwise unpredictable.
100 * Character set conversion is now only applied to message parts that
101   have the "text/" content type. Previously, a message part that did
102   not contain any control characters but was not of type "text/" was
103   converted.
104 * When message file names in a maildir folder do not contain the ":2,"
105   preceding the flags part, append one (Brandon Andrews).
106 * An invalid memory access when determining the current message in
107   threaded mode has been fixed (MJ Ray).
108 * A "STRIP" makefile variable has been introduced to control the strip
109   command at "make install".
110 * The "remove" command no longer causes a core dump because of a null
111   pointer dereference when it is given a name with invalid shell syntax.
112 * Made it compile on UnixWare again (patch by Joe Julian).
113 * Fixes to build with more recent versions of Mozilla NSS.
115 [12.1] released 6/15/06
116 * The base64 encoder also used an invalid encoding for the last unit of
117   data if (bytes_of_input % 3 == 1). As with the previous similar bug,
118   most base64 decoders, including mailx's own, ignore such bits since
119   base64 data is always a multiple of 8-bit bytes. (Patch by
120   Lukasz Stelmach.)
121 * Quotes are now placed around the "protocol" parameter in S/MIME headers
122   in accordance to RFC 2045 (Marco Arioli, Jeffrey Stedfast).
123 * The conversion of messages in state-dependent encodings has been fixed;
124   garbage characters could be inserted because the state was not properly
125   reset when a buffer was enlarged (patch by Matthew Fischer).
126 * A warning about an initalization of an unsigned value to -1 has been
127   eliminated (patch by Matthew Sienkiewicz).
128 * Percent characters in the "prompt" variable are now handled correctly;
129   values of "folder" beginning with an at character and longer than the
130   maximum system path length do not cause a heap overflow anymore (patch
131   by Ulf Harnhammar).
133 [12.0] released 3/4/06
134 * The program has been integrated into the Heirloom project as "mailx". The
135   new project homepage is at <http://heirloom.sourceforge.net/mailx.html>.
136   The name "nail" will persist in some places, and the mailing list will
137   remain with the same address for now. If you want to continue to call
138   the program as "nail", create a symbolic link to "mailx".
139 * Mailx no longer prints a space before the address in "MAIL FROM:<xxx>" and
140   "RCPT TO:<xxx>" in SMTP. This should make it work with Sendmail X (bugs
141   reported by Stephane Lentz and Claus Assmann).
142 * The new "-S variable[=value]" command line option sets the internal option
143   "variable", and, in case of a string option, assigns "value" to it (based
144   on a request by Dmitry Butskoy).
145 * If the "smtp-auth-user" variable is set but neither "smtp-auth-password"
146   nor a matching "smtp-auth-password-user@host" can be found, the user is
147   asked for the SMTP AUTH password on the terminal (proposed by
148   Svend Sorensen).
149 * When a TERM signal is sent to the SMTP transfer child process, it will
150   abort and save the message to the "dead.letter" file (proposed by
151   Perry Hutchison).
152 * Use of the "resend" command with multiple messages at once now works as
153   documented (bug reported by Svend Sorensen).
154 * When the "next" or newline command is typed as the first command after a
155   folder has been opened, the first (new) message is printed even if a
156   folder hook has been executed previously (bugreport by Stephen Isard).
157 * In combination with OpenSSL, when a SIGPIPE was received on an SSL socket
158   during a call to SSL_read() e.g. because an IMAP connection had timed out,
159   a segmentation fault occurred because OpenSSL apparently cannot handle
160   calls to SSL_shutdown() from the signal handler. This has been fixed (bug
161   reported by Svend Sorensen).
162 * Building without socket support works again (Patch by Fernando J. Pereda).
164 [11.25] released 7/29/05
165 * The base64 encoder used an invalid encoding for the last unit of data if
166   (bytes_of_input % 3 == 2); it wrote two encoded bits beyond the last byte
167   then. Most base64 decoders, including nail's own, ignore such bits since
168   base64 data is always a multiple of 8-bit bytes. This might explain why
169   no harm caused by this error has been found for years. (Bug reported by
170   Lukasz Iwaszkiewicz).
171 * When a completely cached IMAP message was copied on a server supporting
172   the UIDPLUS IMAP extension and the message had not been printed during
173   the current session yet, the cached entry for the target message contained
174   the message body twice. This bug has been fixed, but cached messages
175   written by previous nail versions may still suffer from this error. To get
176   rid of them, delete them from the IMAP cache directory. The file README in
177   that directory explains its structure.
178 * When sending messages, input data that lacks a terminating newline is now
179   always encoded in quoted-printable.
180 * Wildcard host names in certificates according to RFC 2595 are now accepted
181   (Bug reported by Svend Sorensen).
182 * The new "maximum-unencoded-line-length" variable allows to configure the
183   limit on the line length that causes an ASCII text message to be sent in
184   quoted-printable if exceeded (on request by Greg Cox).
185 * Since RFC 2595 allows wildcards at other places than RFC 2818 which is
186   implemented by Mozilla NSS, host name verification is now done separately.
187 * The "sort xyz" commands now uncollapse all threads of a previously threaded
188   folder view; messages in collapsed threads were previously not shown when
189   the folder was sorted.
190 * The junk mail filter now also ignores the "X-pstn" header fields generated
191   by "postini" filtering software.
193 [11.24] released 7/14/05
194 * When the 'replyto' variable was set, sending a message resulted in a
195   segmentation fault due to a NULL pointer dereference (Bug reported by
196   Nick Pasich).
197 * An 'imap-list-depth' variable was introduced to control the maximum depth
198   of the folder traversal for the 'folders' command if the folder separator
199   on the IMAP server is not the slash '/'.
200 * If standard output is not a terminal device, the output of the 'folders'
201   command applied to an IMAP account is no longer arranged into columns.
202 * The new '-R' option causes all folders to be opened read-only.
203 * When the From address was changed with '~H', the value obtained from the
204   'from' variable was still used for the SMTP transfer, for generating the
205   Message-Id, and for S/MIME signing. This has been fixed; the changed
206   address is now used throughout.
207 * When reading header fields from a terminal, the input buffer could
208   overflow by one byte (Patch by Ulf Harnhammar).
209 * Only applicable if Mozilla NSS is used for SSL support: If the certificate
210   of the server contains a dNSName, NSS ignores the CN. Thus if the CN
211   contains a name that does not also appear as one of the dNSNames, the
212   certificate is rejected. This case is now verified separately in nail,
213   and the certificate is accepted if the CN matches the host name of the
214   server.
216 [11.23] released 6/28/05
217 * The output for the '~p' tilde escape was extended to include the fields
218   implied by the 'from', 'replyto', 'sender', and 'ORGANIZATION' variables
219   (Proposed by Bob Tennent).
220 * The 'autocc' and 'autobcc' variables are now evaluated before composition
221   of a message begins. The resulting addresses can thus be edited and viewed
222   using the '~b', '~c', '~h', and '~p' tilde escapes, but changing the values
223   of the 'autocc' and 'autobcc' variables using '~:set' has no effect on the
224   currently composed message anymore.
225 * The values of the 'from' and 'replyto' variables can now contain multiple
226   addresses.
227 * A 'sender' variable was introduced to set the content of the 'Sender:'
228   field for outgoing messages.
229 * A '~H' tilde escape was introduced. It allows to set message-specific values
230   for the 'From', 'Reply-To', 'Sender', and 'Organization' header fields.
231   These fields are now also accepted in the editor output with the
232   'editheaders' variable.
233 * The '-r' option now actually disables tilde escapes as documented (Bugreport
234   by Bob Tennent).
235 * The INSTALL file now notes that sendmail must support the '-r' option if
236   the '-r' option of nail is used (Issue reported by Attila Zimler and
237   Allan Peda).
238 * The 'move' command does not anymore mark messages as moved if writing to
239   an IMAP folder fails.
240 * The 'undelete' command now also clears the 'saved' flags of messages that
241   have been moved.
242 * Fixed a crash due to a null pointer dereference that occurred when both
243   control and non-ASCII bytes but no NUL bytes were present in a message
244   body and no content type was defined in a mime.types file.
245 * The ~F and ~M tilde escapes did not work for interpolating messages with
246   binary attachments anymore since version 11.13 (Bugreport by Tivon Luker).
247 * The current message is now shown in the header summary even if it has been
248   killed.
249 * The 'kill' command did not operate correctly on 64-bit big-endian machines.
250 * A notification is now printed when text is saved to dead.letter.
251 * Changing %{prefix} in nail.spec works now for the RPM %install and %files
252   step too (Patch by Allan Peda).
254 [11.22] released 3/20/05
255 * In threaded mode, the thread structure is now shown using line-drawing
256   characters in the header summary. (This looks best on a UTF-8 terminal.)
257 * If a message contains both a 'References' and an 'In-Reply-To' header
258   field, 'In-Reply-To' is now preferred for threading and the ',' address.
259 * When a message part of content-type text/anything is written with the
260   pipe-type/subtype mechanism, it is now converted to the character encoding
261   of the locale (as it was before 11.14 or so).
262 * When using a hostname with a port number attached with SMTP STARTTLS,
263   strip the port number for correct host name verification (Bugreport by
264   Gary E. Rafe).
266 [11.21] released 2/19/05
267 * When mail is sent using SMTP, 'Bcc:' fields are not passed to the
268   server anymore (Bugreport by Matthew Fischer.)
269 * When replying to a message part for which a 'pipe-type/subtype'
270   variable was set, quotes were inserted in the text sent to the pipe
271   instead of in the output received from it (since v. 11.14 or so).
272 * A message that is already marked as answered is not marked again if
273   it is replied to and the 'markanswered' variable is set.
274 * Nail no longer generates an error if renaming a message in a maildir
275   folder fails because both the old and the new link have the same name
276   (i.e. if the rename operation was superfluous).
277 * The new 'sendcharsets' variable was incorrectly named 'charsets' in
278   nail.rc in the last version. If nail 11.20 was the first version of
279   nail you ever installed, you should correct this by hand since the
280   file is not overwritten by 'make install'. (Bugreport by Matthew
281   Fischer.)
282 * Mozilla NSS error reports are more detailed now.
283 * For the 'touch', 'mbox', 'unread', and 'new' commands, a following 'next'
284   command will advance to the next message as if the current one had been
285   printed, as it has been the case with traditional mailx (Bugreport by
286   Michael Sipser).
287 * Files in maildir folders are now read in the order obtained from
288   readdir().
289 * When the variables 'sign' or 'Sign' are set to the empty string, they
290   are treated as if they had been unset for the '~a' or '~A' commands.
292 [11.20] released 1/13/05
293 * A 'forward-as-attachment' variable has been introduced. If it is set,
294   the 'forward' command uses a MIME 'message/rfc822' attachment for the
295   original message instead of including it in the newly created text.
296 * The character set to be used for outgoing messages can now be specified
297   with the 'sendcharsets' variable. It can contain multiple values, with
298   the first appropriate one being used to send the message. The 'charset'
299   variable is still accepted but has been removed from the documentation.
300 * If 'sendcharsets' contains more than one character set name, the '~@'
301   tilde escape now asks about character sets for individual attachments
302   if it is invoked without arguments.
303 * If neither the 'sendcharsets' nor the 'charset' variable is set, the
304   character set for outgoing messages that contain non-ASCII characters is
305   now 'utf-8' instead of 'iso-8859-1'.
306 * When the 'encoding' variable was set to '8bit' and a message contained
307   characters that were not representable in the outgoing character set
308   in its body but not in its header, the characters were replaced by
309   question marks and the message was sent, instead of being rejected
310   (Bugreport by Suresh Ramasubramanian).
311 * When sending messages in 8bit, conversions from a multibyte terminal
312   character set failed because multibyte input characters where split
313   across two conversion buffers if they spanned across buffer boundaries.
314 * A 'reply-in-same-charset' variable has been introduced. If it is set,
315   nail tries to reply in the character set of the original message first.
316 * When the header of an outgoing message contained a non-ASCII character
317   but the body did not, the name of the international character set was
318   used for declaring the content-type of the body too. Us-ascii is now
319   used for the body in such cases.
320 * When the 'fullnames' variable was set and the full name of a recipient
321   was the only string in both header and body of an outgoing message that
322   contained non-ASCII characters, no conversion between terminal character
323   set and outgoing character set was performed for it.
324 * For files that contain ASCII control characters but no NULs, a 'charset'
325   parameter was erroneusly generated even though these are not 'text/plain'
326   according to MIME.
327 * Resolved a symbol conflict with SVR4 systems like Solaris that lead to
328   failed builds because of a redeclaration of 'enum idtype'.
329 * When announcing messages after a folder open or a 'newmail' command, a
330   deleted message can no longer become the current message unless all the
331   messages have been deleted. This applies to message deleted by the
332   'folder-hook' mechanism in particular.
334 [11.19] released 1/2/05
335 * A 'chained-junk-tokens' variable was introduced for the Bayesian junk
336   mail filter. If set, the filter considers two-word tokens as described
337   in Jonathan A. Zdziarski's paper 'Advanced Language Classification using
338   Chained Tokens', <http://www.nuclearelephant.com/papers/chained.html>.
339 * When running in a UTF-8 locale, unprintable characters are now replaced
340   by Unicode control pictures or the Unicode replacement character when
341   printing to a terminal.
342 * The 'show' command now also avoids writing unprintable characters to a
343   terminal. Same for the 'classify' command with the 'verbose' option set.
344 * Only MIME-encode words in header fields if they start with '=?' or end
345   with '?=' (instead of encoding any words containing '?', '=', or '_'),
346   and declare them as 'us-ascii' if they do not contain any bytes with the
347   highest bit set (Bugreport by Suresh Ramasubramanian).
348 * Fixed a junk mail tokenizer bug which caused the remainder of a message
349   to be ignored if a period occurred at the first position following another
350   token boundary.
351 * 'In-Reply-To' fields that refer to multiple message-IDs are now handled;
352   the first matching ID wins for the 'thread' command, and the ',' address
353   selects all referenced messages.
355 [11.18] released 12/9/04
356 * When the 'write' command asks for an attachment filename and a '|' is
357   given as the first character, the attachment is piped to the rest of
358   the string interpreted as a shell command (contributed by Stephen Isard).
359 * The ~p escape now includes recipients that are local files in its output
360   (Bugreport by Bob Tennent).
361 * The 'ungood' and 'unjunk' commands put the wrong marking on the messages
362   they were applied too (regardless of the database update they performed).
363   'Ungood' now marks a message as being junk, and 'unjunk' clears the junk
364   mark.
365 * A 'record-resent' variable has been introduced. If it is set, the 'resend'
366   and 'Resend' commands save messages to the 'record' folder. (Proposed by
367   Bob Tennent.)
368 * 'redirect' and 'Redirect' are available as aliases for 'resend' and
369   'Resend', respectively (proposed by Bob Tennent).
370 * A 'forward' command has been introduced that behaves more like the
371   forwarding mechanisms of other contemporary mail user agents. Along with
372   it, there are 'fwdignore', 'fwdretain', 'unfwdignore', and 'unfwdretain'
373   commands, and a 'fwdheading' variable. The 'forward' command is probably
374   only useful with a 'fwdretain' command executed before. Such a command is
375   executed by default in /etc/nail.rc for new installations; for other sites,
376   it is recommended that it be added manually.
377 * Characters with width 0 (e.g. Unicode combining characters) are now handled
378   correctly in header summaries.
379 * When a message in a multibyte character set like UTF-8 that was encoded
380   as quoted-printable was printed and a multibyte character was separated
381   by a '=' continued line, it was not decoded correctly since release 11.14.
383 [11.17] released 11/18/04
384 * When the 'write' command was used to save attachments in releases after
385   11.14, the output file was not properly closed. Since writes to that file
386   are buffered, data was only completely written when nail was quit.
388 [11.16] released 11/18/04
389 * When a header field line that started and ended with a MIME encoded word
390   followed a line that ended with a MIME encoded word, the newline character
391   preceding the next header field was erroneously omitted when a message was
392   displayed since version 11.14.
393 * If a header fields contains a MIME encoded word and a large string of
394   ASCII characters at another point, the large string is encoded as multiple
395   encoded words to comply to RFC 2047.
396 * The pipe-type/subtype mechanism did not work for MIME contents other than
397   text/anything since release 11.14 (Bugreport by Bob Tennent).
398 * When S/MIME support was built using Mozilla NSS, the verification of an
399   encrypted message that had not yet been downloaded from an IMAP or POP3
400   server failed at the first attempt.
401 * Previous versions refused to write messages or attachments to /dev/null
402   on some Solaris versions.
403 * If the 'from' variable is set to an address that does not contain an '@'
404   character, no (syntactically incorrect) Message-ID is generated anymore.
406 [11.15] released 11/10/04
407 * The compilation process was fixed to work without CPPFLAGS=-D_GNU_SOURCE on
408   Linux/glibc again, although mremap() is not available then. It is therefore
409   recommended to use CPPFLAGS=-D_GNU_SOURCE with Linux/glibc. (Bugreports by
410   Stephen Isard, Laurens Blankers, Bob Tennent.)
411 * The handling of interrupts during IMAP and POP3 operations has been revised
412   as discussed on the mailing list. See the NOTES section in the manual page
413   for a description.
414 * When an editor is invoked using ~e, ~v, 'edit', or 'visual', interrupts are
415   no longer ignored in its process. With most editor implementations, this
416   does not make any difference since they enable interrupts themselves again;
417   however, traditional implementations of 'ed' do not.
418 * The 'forward' command has been renamed to 'resend' for alignment with the
419   terminology of RFC 2822; it is still available under its old name for at
420   least a transition period. Also, 'Resent-From:' and related fields are now
421   prepended to older fields as specified.
422 * A 'seen' command has been introduced; it takes a message list and marks the
423   messages as having been read.
424 * The semantics of the 'unjunk' command have been changed; it is now exactly
425   the opposite of the 'junk' command and undoes its effects. An 'ungood'
426   command has also been introduced to do the same for a previous 'good'
427   command.
428 * Since many versions of Linux do not correctly update the modification time
429   of a file with mmap(), utime() is now called to force an update when the
430   junk mail database is changed.
431 * A mbox-style "From " line is now generated when a "message/rfc822" MIME
432   part is printed.
433 * The 'multipart/digest' MIME content type is now properly handled.
434 * When a malformed MIME multipart message is encountered that contains the
435   boundary string on two immediately following lines, the second line is no
436   longer treated as the begin of a new part.
437 * The makeconfig script and the installation instructions now include support
438   for building nail with Mozilla NSS on Solaris.
439 * Building IMAP GSSAPI authentication with Heimdal Kerberos libraries works
440   again.
442 [11.14] released 11/4/04
443 * A 'Z' command was introduced. It is similar to the 'z' command, but scrolls
444   only to header groups that contain at least one new or flagged message. This
445   is useful for reading large mailing lists.
446 * The attachment decoding functions have been rewritten. As a result, nail is
447   now able to decrypt and display encrypted parts of multipart messages.
448 * For MIME messages of type 'multipart/alternative', only the text/plain part
449   is displayed now if one is present with the 'print'-like commands. The
450   'print-alternatives' variable can be set to print all parts, as it was
451   done previously. The 'Print'-like commands always print all parts.
452 * The ~F and ~M escapes now cause all parts of MIME multipart messages to be
453   included in the message being composed.
454 * A 'show' command was introduced to make the raw MIME-encoded message text
455   visible.
456 * Modifications to messages made using the 'edit' and 'visual' commands do
457   no longer cause changes to the current folder. This is the behavior demanded
458   by POSIX.1-2004. MIME decoding and decryption are now performed before each
459   message is passed to the editor. If you prefer the old behavior, set the new
460   'writebackedited' variable.
461 * When large amounts of messages were deleted on an IMAP server (or many
462   other STORE commands were generated e.g. because many messages were marked
463   as read), nail sent all of these commands asynchronously. This did slow
464   down operation with some servers and eventually lead to a deadlock after
465   some thousand commands were sent. Nail now waits for server responses in
466   defined intervals. (Bugreport by Stephen Isard.)
467 * The handling of read-only compressed mbox format folders was fixed.
468 * In version 11.12, fcntl() read locking was erroneously introduced for files
469   other than system mailboxes too. It is now disabled for such files again.
470 * If the junk mail database is stored in uncompressed format, mmap() is now
471   used to access it if possible.
472 * Recipients that are file names are now removed from the Cc: and Bcc: fields
473   of outgoing mail too, as it was already done for To:.
474 * If S/MIME support was built using OpenSSL and an encrypted message was tried
475   to be decrypted without an appropriate private key, nail dumped core due to
476   a NULL pointer dereference. It now fails sanely.
478 [11.13] released 10/27/04
479 * Backslashes outside a quoted command argument are now handled properly.
480 * For junk mail detection, the characters '_', '#', '&', and '%' are now
481   considered as word constituents. Also the '/' character is kept if it
482   occurs between digits, and the ';' character if a '&' was previously
483   encountered within the same word.
484 * For junk mail detection, fields of MIME part headers are now handled like
485   fields of the main header.
486 * For junk mail detection, most HTML tags are now ignored, similar to the
487   proposal in Paul Graham's 'Better Bayesian Filtering'. Also, the top and
488   bottom probabilities are now adjusted to the number of messages used for
489   building the database.
490 * When the junk mail database is updated, it is now truncated beyond the
491   last byte just written. Previously, stale data could have remained after
492   this point, which was no problem for nail itself, but could make zcat(1)
493   fail on the file.
494 * In the junk mail database, hashes of 56 bits are now used to represent
495   words. A side-effect is that it is possible to test for occurences of
496   given words with a higher certainty.
497 * To take advantage of the changes to the junk mail recognition method,
498   you have to delete your junk mail database and have to create it again.
499 * The new 'probability' command prints the junk statistics for given words.
500 * The 'answered', 'classify, 'draft', 'flag', 'good', 'junk', 'undraft',
501   'unflag', and 'unkill' command now make their argument the current
502   message. This is now also done by the 'score' command unless the new
503   score of the message is negative.
504 * Very old versions of OpenSSL are now detected by the configuration script.
505   OpenSSL code will not be included if the version is too old (Bugreport by
506   Thomas Voegtle).
508 [11.12] released 10/21/04
509 * Blank characters between MIME encoded words in header fields are now
510   discarded for display purposes as demanded by RFC 2047.
511 * Unless the 'fullnames' variable was set, nail did not generate 'To' header
512   fields when replying to messages since version 11.5 (Bugreport by Bob
513   Tennent).
514 * An internal problem in the token scanning for junk mail detection has been
515   fixed; the end of the mail header was not always correctly determined.
516 * Special characters in IMAP or POP3 account strings like 'imap://user@host'
517   can now be escaped using URL notation, e.g. 'foo%2Fbar' for 'foo/bar'. It
518   was previously not possible to use these characters. This is a slightly
519   incompatible change as the '%' character must now also be escaped, as
520   '%25'. (Bugreport by Thomas Wolff.)
521 * The system mailbox is now locked using fcntl(2) for reading too (Problem
522   reported by Thomas Wolff).
523 * When new mail arrives in an IMAP mailbox, the current message is now
524   properly advanced by the 'next' command if it has been printed before.
525 * If neither the host name nor the user's email address can be determined,
526   no Message-ID fields are generated.
527 * The empty string is now accepted as a message subject for sending.
529 [11.11] released 10/13/04
530 * When sending messages that contain ASCII control characters but neither
531   NULs nor non-ASCII characters, the quoted-printable MIME encoding is now
532   used instead of 7bit.
533 * A dangling pointer after a memory reallocation could result in a coredump
534   when the junk mail database was updated by a 'good' or a 'junk' command.
535 * The code for accessing the junk mail database has been made more machine-
536   independent. It will not make a difference on most of the platforms on
537   which nail runs. If your compiler does insert padding into C structs that
538   contain only members of type char, you will have to create the junk mail
539   database from scratch again, though.
541 [11.10] released 10/3/04
542 * The creation of quoted-printable encoded MIME data was broken in 11.9.
543 * Junk mail filter improvement: Do not ignore single-letter words; extract
544   hostnames from URLs and store them separately.
546 [11.9] released 10/2/04
547 * A Bayesian junk mail filter has been added. See the 'EXAMPLES' section of
548   the manual page for an introduction.
549 * Fixed an IMAP response parsing bug which caused nail to hang on messages
550   that contained no text with many IMAP servers.
551 * Empty lines within the command lists for account or macro definitions are
552   now ignored.
553 * An attempt to define a macro twice is now properly detected and results in
554   an error message.
555 * Nail was reported to hang sporadically when sending multipart messages on
556   HP-UX. A possible reason for such problems on systems without /dev/urandom
557   has been eliminated (Bugreport by Patrick Briggs).
558 * Fixed a small internal stack buffer overflow that occured regardless of
559   input data and lead to segmentation faults on some platforms when the
560   header summary was printed, depending on the stack layout.
561 * Nail now builds without socket (networking) support again.
562 * Function declarations and definitions have been converted to ANSI C. This
563   should cause no problems since the code used ANSI C features anyway before.
565 [11.8] released 9/23/04
566 * Support for S/MIME has been added. Introductory documentation is available
567   in the 'EXAMPLES' section of the manual page.
568 * It is now possible to use Mozilla NSS instead of OpenSSL for both S/MIME
569   and SSL/TLS. This makes it possible to use Mozilla to manage the certificate
570   databases. See the INSTALL file for futher details. Note to redistributors:
571   The new file nss.c is governed by the Mozilla Public License (MPL), so make
572   sure that you comply to it (or delete that file and do not use NSS).
573 * Certificate revocation lists (CRLs) can now be used with S/MIME and SSL/TLS
574   in combination with OpenSSL (for NSS, no special support is necessary).
575 * New 'remove' and 'rename' commands for mailboxes are available.
576 * Variable names that contain an '@' are now converted to all-lowercase
577   internally. Thus in variable names like disconnected-user@host,
578   imap-auth-user@host, password-user@host, smtp-auth-user@host, the case
579   of the user@host part does not matter anymore.
581 [11.7] released 9/16/04
582 * A collapsed view of message threads was introduced. See the 'collapse'
583   and 'uncollapse' commands, and the 'autocollapse' variable.
584 * The 'z' command now always shifts the header summary by a full screen
585   of messages and is not disturbed by deleted, hidden, or killed messages
586   anymore.
587 * When an 'account' command was executed and messages were sent to mbox
588   when the old mailbox was quit, the mbox on the new account was used.
589   Messages from the old mailbox now go to the mbox on the old account.
590 * Nail did not properly keep the mark for the current message if messages
591   were expunged on an IMAP server.
592 * The 'move'/'Move' command now sets the current message to the first
593   undeleted message following the last message it moved, like the 'delete'
594   command.
595 * The 'markanswered' variable has been fixed to be effective with the
596   'Reply' command too, and not to mark messages if the reply has been
597   aborted by '~q' or '~x' or if a send error was detected.
598 * If the initial connection setup to an IMAP server is interrupted or if
599   authentication fails, folder hooks are no longer executed.
600 * If the 'inc'/'newmail' commands were executed on an IMAP connection that
601   was already closed by the server, nail did not catch SIGPIPE properly and
602   was terminated.
603 * IMAP or POP3 servers that erroneously send a Unix 'From ' line at the
604   beginning of message headers are now handled gracefully.
606 [11.6] released 9/7/04
607 * An IMAP performance improvement introduced in release 11.5 lead to an
608   inconsistency in the internal states if a command like 'copy' was
609   followed by another command that fetched a message text from the server.
610   Due to an error in the IMAP response parser, this sometimes resulted in
611   core dumps.
612 * Support for the 'maildir' folder format was added.
613 * The 'account' command was changed; its syntax and semantics are similar
614   to the 'define' command now. This change is downwards compatible, and
615   old 'account' definitions are still accepted.
616 * If the account listing generated by the 'account' commands without an
617   argument exceeds the screen height, the pager is invoked now.
618 * It is not an error to 'unset' an undefined variable from within a 'call'
619   command or folder hook now.
620 * A 'defines' command was added to print the currently defined macros.
621 * The header summary that is printed when new mail arrives erroneously
622   included killed messages.
623 * When a message in a multibyte character set like UTF-8 that was encoded
624   as quoted-printable was printed and a multibyte character was separated
625   by a '=' continued line, it was not decoded correctly.
626 * The '&' addressing mode is now recognized in non-threaded mode too,
627   although it has no special effect then.
628 * When the 'thread', 'sort', 'unthread', or 'unsort' commands are called
629   from within a folder hook, they do not print a header summary anymore.
630   Also, the first new message is made the current message correctly now
631   in this situation.
633 [11.5] released 9/5/04
634 ***************************************************************************
635 * A mailing list has been created to discuss future nail developments and *
636 * problem reports. If you like to participate, you can subscribe at       *
637 * <https://lists.sourceforge.net/lists/listinfo/nail-devel>. Regardless   *
638 * of your subscriber state, bug reports etc. should be sent to the list   *
639 * address <nail-devel@lists.sourceforge.net> from now on.                 *
640 ***************************************************************************
641 * A new message addressing mode '(criteria)' is now available. It uses the
642   IMAP SEARCH command if possible, and otherwise performs the equivalent
643   actions locally. This addressing mode is of interest even for those people
644   who do not use IMAP with nail because it adds powerful generic search
645   methods, such as a way to search within message bodies.
646 * The 'folders' command now really works with IMAP accounts. It also accepts
647   an argument to list the subfolders of a specific folder.
648 * The new 'headline' variable allows to customize the columns in the header
649   summary.
650 * The new 'attrlist' variable allows to customize the attributes column in
651   the header summary.
652 * The message flags 'Flagged' (F), 'Answered' (A), and 'Draft' (T) are now
653   available, for IMAP mailboxes as well as for local folders. See the 'flag',
654   'unflag', 'answered', 'unanswered', 'draft', and 'undraft' commands and the
655   'markanswered' variable.
656 * The 'kill'/'unkill'/'score' commands were added to make messages invisible
657   on the user's wish.
658 * It is now possible to define sequences of commands as macros, see the
659   'define', 'call', and 'undef' commands. Macros can also be automatically
660   invoked when a folder is opened using the 'folder-hook' and
661   'folder-hook-fullname' variables.
662 * The new 'move' and 'Move' commands mark messages for deletion when they
663   have been successfully transferred to the target folder.
664 * The new addressing mode '`' selects all messages that were included in the
665   message list to the previous command.
666 * The combination of the previous additions allows a score/filter file to be
667   set up; this is described in the EXAMPLES section of the manual page.
668 * New 'noop' command to send NOOP to POP3 or IMAP servers.
669 * The IMAP UIDPLUS extension (RFC 2359) is now used if available on the
670   server. It speeds up the IMAP cache when copying messages to IMAP folders;
671   the message is copied directly to the cached target folder then and does
672   not need to be downloaded again when it is accessed there.
673 * When an IMAP SELECT command fails and a connection to a folder that is
674   not located on the same server is made afterwards, the connection to
675   the old server is properly terminated now.
676 * Command lines like 'nail -A imap -f @mailbox' now work.
677 * IMAP or POP3 user names that contain an '@' character, such as 'foo@bar'
678   in 'imap://foo@bar@hostname', are now handled (Bugreport by Lars
679   Kellogg-Stedman).
680 * If the 'autoinc'/'newmail' variables are set and new mail arrives in
681   threaded/sorted mode, no summary of old headers is printed anymore.
682 * If new mail arrives and messages are expunged on an IMAP server at the same
683   time, all of the new messages are now announced correctly.
684 * The 'inc'/'newmail' commands now set the current message to the first new
685   message again. This undoes the change made for version 11.1.
686 * When the 'autoinc'/'newmail' variables are set and new mail arrives, the
687   'next' command or enter key prints the next message as usual if the current
688   one has been printed; it printed the current message again in this situation.
689 * IMAP performance improvement: When new mail arrives, or when messages have
690   been expunged, metadata is fetched only for the new messages, instead of
691   fetching it for all messages in the folder again as it was done before.
692 * IMAP performance improvement: If the header of a message was already
693   fetched from an IMAP server, nail now uses 'BODY.PEEK[TEXT]' when
694   fetching the whole message and does not download it again.
695 * IMAP performance improvement: The CLOSE command is now used instead of
696   EXPUNGE when a mailbox is quit.
697 * Cached IMAP performance improvement: When a mailbox is opened and messages
698   are cached, their sizes and internal dates are taken from the cache.
699 * The wcwidth() library function is now used to determine the width of
700   multibyte characters if it is available.
701 * If $MAIL does not exist and 'emptystart' is set, a proper error message
702   is printed now, and a following 'account' command succeeds.
703 * The SSL code compiles with older versions of OpenSSL (e.g. 0.9.6b) again
704   (Bugreport by Lutz Horn).
706 [11.4] released 8/29/04
707 * The SSL/X509 DNS name verification code was fixed; it used incorrect code
708   from a book which sometimes caused segmentation faults (Bugreport by Lars
709   Kellogg-Stedman).
710 * The 'disconnect' command now accepts an optional message list specifying
711   messages to be read into the IMAP cache before the connection is closed.
712 * The new 'cache' command reads a list of messages into the IMAP cache.
713 * IMAP BODY.PEEK[] is now used when fetching messages from the server, and
714   the '\Seen' flag is set when the 'quit' command is executed. Thus an
715   'exit' command does not cause messages marked to be read.
716 * The 'connect'/'online' commands now announce new messages that are found
717   on the server.
718 * The 'replyto' variable can now contain multiple addresses.
719 * If the 'sort' command is used without arguments, the current sorting
720   criterion is printed.
721 * The 'sort', 'thread', 'unsort', and 'unthread' commands now only print a
722   header summary if the 'header' variable is set.
723 * The 'size' command has been fixed to print the full sizes of messages that
724   have not yet been entirely read in IMAP and POP3 folders, instead of the
725   sizes of the already downloaded parts.
726 * Deleted messages remained in the cache until an IMAP folder was accessed
727   a second time since 11.3. They are now deleted immediately when a folder
728   is quit in online mode.
729 * The configuration system now also checks for iconv() in libiconv if it is
730   not found in one of the standard libraries (Matthias Andree).
731 * Specifying LIBS on the make command line does now work with several make
732   implementations of commercial Unices too (Bugreports by Matthias Andree,
733   Matthew Sienkiewicz).
735 [11.3] released 8/18/04
736 * When an IMAP mailbox is opened in threaded/sorted mode and new messages
737   arrive or old ones are deleted, the internal thread structure is now
738   properly rebuilt. The previous failure to do so made nail dump core in
739   most cases.
740 * The 'forward' command was fixed; it used an unitialized variable since
741   release 11.2, possibly leading to segmentation faults (Bugreport by Bob
742   Tennent).
743 * The behavior of the 'autoinc'/'newmail' variables regarding IMAP folders
744   was changed. If both variables are unset, announcements are printed only
745   if messages have been deleted on the server.
746 * The 'new'/'unread' commands now also work with IMAP folders.
747 * When a message is deleted or saved in disconnected mode, its cache entry
748   is not removed until the message is actually removed from the server in
749   online mode. This in particular means that saved or 'mbox'ed messages
750   are still available in IMAP inboxes in disconnected mode until they have
751   reached their target folder in online mode.
752 * When new messages were received in an IMAP mailbox after messages had
753   been deleted in a previously visited IMAP mailbox, 'Expunged x messages'
754   was erroneously printed.
756 [11.2] released 8/15/04
757 * A message thread-oriented mode is now optionally available; cf. the 'thread'
758   and 'unthread' commands, the 'autothread' variable, and addressing changes.
759 * It is also possible to sort messages by various other criteria; cf. the
760   'sort' and 'unsort' commands, the 'autosort' variable, and addressing
761   changes.
762 * New 'fullnames' variable: When replying to a message, full names for the
763   recipients are included if it is set, instead of using the plain email
764   address.
765 * New commands 'disconnect' and 'connect'/'online' to switch to disconnected
766   IMAP mode and back while retaining the current mailbox.
767 * IMAP GSSAPI authentication was implemented; it has been successfully
768   compiled with MIT, Solaris, and HP-UX GSS libraries. See the 'imap-auth'
769   and 'imap-auth-user@host' variables.
770 * CRAM-MD5 authentication was implemented for IMAP and SMTP. See the
771   'imap-auth' and 'smtp-auth' variables.
772 * POP3 APOP authentication is now supported; see 'pop3-use-apop'.
773 * STARTTLS is now also supported for IMAP and POP3; see 'imap-use-starttls'
774   and 'pop3-use-starttls'.
775 * Autodetection of the terminal character set works again (did not work since
776   10.8).
777 * The 'showlast' variable works again; it had no effect since version 11.0.
778 * Made it compile using the HP-UX C compiler again (did not work since 11.0).
779 * Standard input is now redirected to /dev/null in the child process that
780   contacts the MTA. A result is that ssl-verify=ask has the same effect as
781   ssl-verify=strict for SMTP servers, and does not put the terminal in an
782   indeterminable state anymore.
783 * The initial connection to IMAP or POP3 servers is now made before the
784   previous mailbox (if any) is quit. Thus if a server is unreachable, nail
785   keeps the previous mailbox open instead of getting in a mailbox-less
786   state.
787 * Stale cache entries for messages deleted on the server were not removed
788   in some circumstances.
789 * The 'inc'/'newmail' commands are now ignored in disconnected mode and no
790   longer display errors about hidden (uncached) messages.
791 * The cache now compiles and works on systems that lack fchdir(), such as
792   some Cray machines (Thanks to Cray-Cyber.org).
793 * The defaults for /etc/nail.rc have been updated. This will have no effect
794   on existing installations unless the file is copied by hand.
795 * Nail does not hang anymore in disconnected mode if a message addressed
796   with ^ or $ is not cached.
798 [11.1] released 8/8/04
799 * IMAP mailboxes can now be cached locally. See the string variable
800   'imap-cache' in the manual page. The cache can also be used for
801   disconnected operation mode, see 'disconnected' and also the '-D'
802   command line option.
803 * When nail is notified by the server that messages have been expunged,
804   the user is informed about this condition even if new messages have
805   also arrived.
806 * When the group of variables for an 'account' command contains a variable
807   prefixed by 'no...' and the related variable is not set, it is not an
808   error to unset it.
809 * The 'headers' command has been made faster when operating on an IMAP
810   mailbox by bundling IMAP requests.
811 * When a 'folder' command was executed to change from an uncompressed
812   file to a compressed one, the latter was incorrectly detected as
813   being read-only.
814 * Unless one of the 'autoinc' or 'newmail' variables is set, nail does
815   not actively check for new messages in the current IMAP mailbox before
816   each prompt. New messages may nevertheless be detected after any
817   other IMAP command has been issued, so the effect is mostly that
818   not every nail command causes an IMAP command to be sent. Also if
819   'autoinc' or 'newmail' are set to the value "noimap", they are
820   ignored for IMAP mailboxes but still effective for local folders.
821 * The 'inc' and 'newmail' commands now use the same method to determine
822   the location of the current message as the 'folder' command does. That
823   means if there has been new mail before that is still unread when newer
824   mail arrives, the older messages are displayed first.
825 * Nail does not generate 'Sender:' fields anymore.
826 * If OpenSSL is not available, STARTTLS support is not built, and nail
827   compiles again without OpenSSL.
829 [11.0] released 7/30/04
830 * IMAP support has been added. It should considered to be in beta state
831   now, but should not have any disturbing effects on other code unless
832   it is actually used. (So the version jump does not require vendors to
833   continue to ship older releases.)
834   To get started with IMAP, see the manual page for the 'account',
835   'folder', and 'imap' commands, and for the 'folder' variable, as
836   well as the EXAMPLES and NOTES sections.
837 * Support for SMTP AUTH LOGIN was added (contributed by John Fawcett).
838 * It is now possible to encrypt SMTP with SSL/TLS, using the STARTTLS
839   method as well as with the SMTPS variant.
840 * New 'account' command to set groups of variables.
841 * Line and column limits (used e.g. for the header summary) are updated
842   when the size of the terminal is changed (handling SIGWINCH).
843 * If saving an outgoing message to the folder given in the 'record'
844   variable fails, the message is not sent but put in 'dead.letter'
845   instead. This rarely happens with local record folders, but is of
846   concern if 'record' refers to an IMAP mailbox.
847 * For addresses specified with the ~b, ~c, ~h, and ~t tilde escapes
848   or by the 'editheaders' method, if a comma, parenthesis, angle bracket,
849   or quoting character appears, only the comma is accepted as an address
850   separator. Otherwise, whitespace separates addresses as elsewhere. This
851   allows the insertion of comments in recipient addresses and more closely
852   matches the behavior of System V mailx. (Thanks to Ryan Lovett and Hilko
853   Bengen.)
854 * An internal version of getopt() is now used to properly work around
855   system defects such as the option reordering on GNU libc based
856   systems. If you really prefer the libc version, remove getopt.o from
857   the list of objects in the Makefile. (Note that nail already worked
858   around the glibc problem, so unless _your_ patches changed its
859   behavior, use the new internal getopt() to remain compatible.)
860 * The undocumented facility to pass sendmail options on the command
861   line of nail has been removed because it was not compatible with
862   POSIX and System V. If you need to pass options to sendmail, create
863   a shell script which invokes it appropriately and let the nail
864   variable 'sendmail' point to its location.
865 * Fixed the text of some usage messages (thanks to Christian Reiber).
867 [10.8] released 6/28/04
868 * Support for IPv6 is not built by default anymore. There are just too
869   many hosts on which it doesn't work while the IPv4 functions work
870   fine. If you have use for IPv6 support and know that it works, enable
871   it in the Makefile.
872 * autoconf and automake are no longer used for building. See the file
873   'INSTALL' which describes the transition of existing build setups.
874 * The --enable-all-chars configuration option is no longer available. A
875   run-time nail option variable 'print-all-chars' has been introduced
876   instead.
877 * Nail can now handle folders in compressed mbox format. If a file name
878   given on the command line or with the 'folder', 'copy', and 'save'
879   commands ends with '.gz' or '.bz2', gzip(1) or bzip2(1) are executed
880   when reading and writing to it. Likewise, if a folder 'name' does not
881   exist, but either 'name.gz' or 'name.bz2' are found, the compressed
882   folder is used. To make use of compressed folders, just compress the
883   respective mbox format file.
884 * If the variable SHELL is not set, the default shell is now /bin/sh
885   instead of csh.
886 * If the variable EDITOR is not set, the default editor is now 'ed', as
887   specified by SUSv3.
888 * Introduced an 'ssl-verify-user@host' variable as an account-specific
889   variant of 'ssl-verify'.
890 * Introduced an 'ssl-method-user@host' variable as an account-specific
891   variant of 'ssl-method'.
893 [10.7] released 3/19/04
894 * The IEEE and The Open Group have granted permission to use parts of
895   the POSIX standard text for the documentation of 'nail'. See the
896   file 'COPYING' for general terms. The manual page has been updated
897   accordingly.
898 * If the variable 'sendwait' is set and the mail transfer agent returns
899   a non-zero exit status, the exit status of nail will also be non-zero
900   (Christian Reiber).
901 * For the first (textual) part of a multipart message, create a
902   'Content-Disposition: inline' header field to make it clear to other
903   MUAs that this part should be displayed directly (suggested by
904   Alexandros Gougousoudis).
905 * Base64 encoded messages were not decoded correctly on machines where
906   the 'char' type is unsigned by default (Fix by Benjamin C. W. Sittler,
907   reported by Hilko Bengen).
908 * Any address that contains a '@' character is treated as an internet
909   mail address (even if it contains a '/' character before).
910 * Fixed the 'autocc' and 'autobcc' variables to really accept address
911   lists instead of single names.
912 * If a message is sent to both addressed recipients and local folders,
913   don't pass the file names with the SMTP client.
914 * The ~w command appends the message text to an existing file instead
915   of refusing to write, as POSIX.2 states (Bugreport by Bob Tennent).
916 * Escape sequences in quoted arguments to the alias, unset, chdir, cd,
917   source, set, group, ungroup, unalias, file, folder, if, else, endif,
918   alternates, ignore, discard, retain, saveignore, savediscard, saveretain,
919   unignore, unretain, unsaveignore, unsaveretain, shortcut, and unshortcut
920   commands are no longer handled specially. This is for compatibility with
921   System V mailx and POSIX standards.
922 * The echo command accepts the same escape sequences as specified for
923   echo(1) in recent Open Group standards.
924 * Only the \t and \n sequences are handled for the ~a, ~A and ~i tilde
925   commands and the insertion of the MAILX_HEAD and MAILX_TAIL strings
926   (Thanks to Bob Tennent).
927 * Solaris: When the MAILX_TAIL variable was set and a ~p command was
928   issued before the message was sent, parts of the text were sent twice.
929 * Introduced a 'hostname' variable to override the value obtained from
930   uname(2) and getaddrinfo(3) (William Bader).
932 [10.6] released 11/15/03
933 * A nested MIME multipart message with a sub-part piped through an external
934   program (such as HTML with w3m) caused nail to abort after SIGPIPE if the
935   PAGER command terminated before reading the whole message.
936 * A 'next' command following a 'hold' command displays the next message
937   after the one the 'hold' applies to (Bugreport by Mike Sipser). This 
938   might not be exactly what POSIX specifies, but it makes sense and is
939   consistent with traditional behavior. If you actually favor 'next'
940   not to advance after 'hold', contact me and I'll add a configuration
941   option for this.
942 * If the value of the 'record' variable started with an environment
943   variable reference such as '$HOME' or with a tilde and the 'outfolder'
944   variable was set, it was not expanded correctly (Bugreport by Volker
945   Kuhlmann).
947 [10.5] released 4/27/03
948 * A command line argument specifying a To-address can contain multiple
949   recipients separated by commas (Werner Fink).
950 * 'showname' variable (based on code contributed by Stephen Isard).
951 * Display nonprintable characters in mail addresses as question marks.
952 * Fixed MIME encoding of user's From address with respect to quoted
953   characters.
954 * 'autobcc' and 'autocc' variables.
955 * The effects of the 'bsdcompat' variable are now individually configurable.
956   This introduces the 'bsdflags', 'bsdheadline', 'bsdset', 'bsdannounce',
957   'askatend', 'bsdorder', and 'bsdmsgs' variables.
958 * The current message pointer could be garbled when 'newmail' was set and
959   new messages appeared (Fix by Stephen Isard).
961 [10.4] released 1/19/03
962 * A missing #ifdef HAVE_ICONV caused build errors on platforms without
963   iconv() support (J.A. Neitzel, Jens Schleusener, Lars Kellogg-Stedman,
964   Felicia Neff, Chris Pinnock).
965 * Extraction of parts from header fields with more than 2560 characters
966   fixed (Lukasz Sznuk, William Cherry).
967 * Source archive name in nail.spec corrected (Didar Hussain).
968 * Fixed segmentation violation when encountering multipart header fields
969   that contain no ':' character (William Cherry).
970 * Respect the 'allnet' variable when comparing strings in message lists.
971 * IPv6 support (Jun-ichiro itojun Hagino).
973 [10.3] released 11/29/02
974 * Fixed a buffer overflow that occured with iconv() support disabled (Stan
975   Tobias).
976 * MIME encoding of '(non-ASCII-string' comment strings in address fields
977   fixed (non-ASCII-string immediately following the opening parenthesis).
978 * Convert header fields to outgoing character set even if the body contains
979   ASCII characters only.
980 * Build properly on platforms without socket support (J.A. Neitzel).
981 * Don't require towupper() with mbtowc() (J.A. Neitzel). Searches for
982   wide characters in subject fields are not case-insensitive without
983   towupper().
984 * Some OpenBSD and NetBSD versions don't adjust the kernel file offset
985   properly after a 'fflush(); rewind()' sequence, violating POSIX.1.
986   This caused empty mails to be sent if the 'record' variable was set.
987   The code now works around the problem (Thanks to J.A. Neitzel).
988 * NetBSD lacks gethostent(), causing the configure check for socket
989   support to fail. gethostbyname() is now used instead (Thanks to J.A.
990   Neitzel).
992 [10.2] released 11/23/02
993 * Fixed a NULL pointer dereference that occured if the 'showto' variable
994   was used without the 'alternates' command (Bugreport by Bob Tennent).
995 * POP3 client with SSL/TLS support. See the description of the 'folder'
996   command, the 'EXAMPLES' and 'NOTES' sections in the manual page, and
997   the description of the new variables 'password-user@host,
998   'pop3-keepalive', 'ssl-no-default-ca', 'ssl-v2-allow', 'ssl-verify',
999   'ssl-ca-dir', 'ssl-ca-file', 'ssl-cert', 'ssl-cert-user@host',
1000   'ssl-key', 'ssl-key-user@host', 'ssl-method', 'ssl-cipher-list'
1001   'ssl-rand-egd', 'ssl-rand-file'. You need to execute './configure
1002   --with-openssl' to compile with SSL support.
1003 * Respect assignments to the MAIL variable in startup scripts.
1004 * Secondary mailboxes with %:folder (see the 'folder' command).
1005 * 'shortcut' and 'unshortcut' commands.
1006 * NAIL_EXTRA_RC variable.
1007 * ',' address (matches the parent of the current message).
1008 * ';' address (matches the message that was previously the current message).
1009 * Recognize MIME in header field searches with '/'.
1010 * The 'save' and 'copy' commands use the mbox file if invoked without
1011   an argument.
1012 * Use wordexp() to expand special characters in filenames if available.
1013   $SHELL-specific metacharacters are thus no longer recognized.
1014 * The output of the 'from' command is piped through the pager if it exceeds
1015   the screen height.
1016 * 'datefield' variable.
1017 * 'editheaders' variable (contributed by Stephen Isard).
1018 * '-t' command line option.
1019 * 'term' condition for 'if' command (contributed by Stephen Isard).
1020 * Don't prepend a message with a blank line when saving if a blank line 
1021   is already present at the end of the file.
1022 * Fixed quoting for command argument of 'pipe' (Stephen Isard).
1023 * 'save' and 'copy' commands accept quoted file names with embedded whitespace.
1024 * Allow '|shell-cmd' (Stephen Isard).
1025 * 'piperaw' variable (Stephen Isard).
1026 * If 'askcc' or 'askbcc' are set and 'bsdcompat' is not set, the user is
1027   asked for additional recipients before composing the message starts.
1028 * Don't append an additional newline to filenames in recipient lists.
1029 * Message lines starting with '>' were truncated by the 'forward' command.
1030 * Don't rename old Resent-xxx fields when creating new ones.
1031 * Deletion of attachments with '~@' fixed.
1032 * Don't mark the saved copy of an unread message as read.
1033 * Fixed use of a char variable for getc() (Arthur Korn).
1035 [10.1] released 10/14/02
1036 * POSIX.2 leaves the characters following 'From ' unspecified, so the
1037   presence of sender or date strings is no longer required to separate
1038   messages in a folder.
1039 * 'inc' and 'newmail' commands, 'autoinc' and 'newmail' variables.
1040 * Don't use iconv() if a message contains us-ascii characters only
1041   (Problem reported by Thomas Fieseler).
1042 * Don't report 'Held n messages in mailfile' if n == 0.
1043 * Don't report a 'Fatal error in process' with '!' unless bsdcompat is set.
1044 * Missing fflush() caused empty mails with some GNU libc versions to be
1045   sent, unless SMTP was used (Problem reported by Thomas Fieseler).
1047 [10.0] released 9/29/02
1048 * Base64 decoding was calling malloc(0) which caused "Out of memory"
1049   errors on some platforms (Bugreport by Stan Tobias).
1050 * Install nail.rc in the place specified with --with-rcfile (Bugreport by
1051   Jeffrey Neitzel)
1052 * Code cleanup in send.c (Contribution by Stan Tobias).
1053 * When writing attachment data, the 'w' command will no longer append to
1054   a file, but truncate and overwrite it.
1055 * Extract filenames from obsolete 'Content-Type: ...; name=file' fields (Stan
1056   Tobias).
1057 * Delete directory components from attachment filenames before saving (Fix by
1058   Stan Tobias).
1059 * NAILRC variable (based on a suggestion by Stan Tobias).
1060 * "bsdcompat" and "prompt" variables; prompt defaults to "? ".
1061 * "allnet", "debug", "flipr", "outfolder", "sendwait", and "showto" variables
1062 * "bang" variable. NOTE: Previous versions behaved as if this variable
1063    had been set.
1064 * ~a and ~A tilde escapes with standard semantics.
1065 * -F command line option, "Mail", "followup", "Followup", "Copy" and "Save"
1066   commands.
1067   NOTE: This changes the abbreviation of the "folder" command to "fold".
1068 * "set nofoo" unsets the variable "foo". The variables "nosave" and "noheader"
1069   have therefore changed in their positive counterparts and are now set by
1070   default.
1071 * The pg command is now the default pager unless bsdcompat is set.
1072 * Line and character counts are printed for copy and save commands.
1073 * MAILX_HEAD and MAILX_TAIL variables.
1074 * LC_MESSAGES support.
1075 * -I option prints 'Newsgroups:' field in header summary now. NOTE: The
1076   functionality of the old -I option, "interactive", is no longer available
1077   as an option. Use something like "env interactive= nail ..." instead. If
1078   only tilde escapes in send mode are needed, the new -~ option can be used.
1079 * The optional name argument in combination with the -f option is now
1080   evaluated as a separate operand, not as an argument to -f. This enables
1081   usage as "nail -fin name", but "nail -f name -in" is no longer valid.
1082 * Pipe the output of ~p through the PAGER if the text is long (Bugreport
1083   by Stan Tobias).
1084 * The output format of the "set" command is changed to 'variable="value"'
1085   if bsdcompat is not set.
1086 * Pipe the output of the "set" command through the PAGER if it is long.
1087 * Headers are not printed automatically after executing a "folder" command
1088   if bsdcompat is not set.
1089 * The "next" command was fixed according to the remark in the POSIX
1090   rationale not to skip a message e. g. after "delete".
1091 * -B, -h and -~ command line options.
1092 * Lines in message files can now be of arbitrary length and can contain
1093   NUL characters.
1094 * -r disables tilde escapes; -r flag and address is passed to sendmail.
1095 * followupall, followupsender, replyall, replysender, respondall, and
1096   respondsender commands.
1097 * New, new, and Unread commands (are all aliases to unread command).
1098 * unalias command implemented (had been documented since 4.4BSD).
1099 * unignore, unretain, unsaveignore, and unsaveretain commands.
1100 * If data from standard input contains NUL characters, no character
1101   conversions are performed and it is sent in base64 encoding.
1102 * Non-binary data with long lines is sent in quoted-printable encoding.
1103 * Fixed segmentation violation when using the "folder" command after
1104   an interrupt signal was catched.
1105 * Resent-Reply-To: header field is no longer generated for conformance
1106   with RFC 2822.
1107 * Fixed -u user option and %user special file name not to ignore 'user'.
1108 * The 'Reply' command uses the 'Reply-To:' header field in favor of
1109   'From:'; the 'reply' command adds recipients given in the 'To:' and
1110   'Cc:' fields if a 'Reply-To:' field was present in the message. This
1111   means that 'Reply-To:' just overrides 'From:' without a special effect
1112   on the 'reply' and 'Reply' commands.
1113 * When grabbing headers e. g. with the '~h' command, a comma is printed
1114   between names if bsdcompat is not set.
1115 * RPM spec file (contributed by Didar Hussain).
1117 [9.31] released 6/18/02
1118 * New editing mechanism for attachment list: ~@ tilde escape.
1119 * The ~a tilde escape is obsoleted by ~@ and has been removed.
1120 * Header fields starting with =? are only interpreted as RFC 2047 fields
1121   if they are entirely valid (Bugreport by Russell Kroll).
1122 * Sender addresses in message lists (as in 'delete from@host') match only
1123   the exact from address.
1124 * Added ~x tilde escape (abort message composition without saving dead.letter).
1125 * Fixed recognition of RFC 2045 parameter attributes (Bugreport by Russell
1126   Kroll).
1127 * The "for" command now inserts an intact "Resent-Reply-To:" header field.
1129 [9.30] released 2/20/02
1130 * Avoid to prepend quote prefix twice when replying to multipart messages.
1131 * Fixed a problem with empty Content-type fields in multipart messages.
1132 * Allow name lists for -b and -c command line options (Bugreport by Winfried
1133   Szukalski).
1134 * Added a --with-rcfile option to configure for nail.rc.
1135 * Added the "showlast" option (Contributed by Jay Nospam).
1136 * Properly respect TMPDIR; create a new name for each temporary file.
1138 [9.29] released 12/10/01
1139 * Fixed a SIGPIPE problem concerning the PAGER.
1140 * Avoid to display parts of next message when encountering masked From lines
1141   (Bugreport by Russell Kroll).
1142 * Implemented pipe-content/subcontent MIME display mechanism (based on a
1143   suggestion by Bob Tennent).
1144 * Respect continued MIME quoted-printable lines in non-text content.
1146 [9.28] released 10/23/01
1147 * Fixed a crash occuring at unterminated RFC 2047 header parts (Bugreport by
1148   Bruno Haible).
1149 * Fixed a crash that occured when replying to a message with empty subject
1150   (Bugreport by Russell Kroll).
1151 * Send attachments in base64 encoding if a line exceeds 950 characters
1152   (Bugreport by Rolf Jakob).
1154 [9.27] released 5/13/01
1155 * Check addresses when they are entered and drop invalid ones.
1156 * Supress glibc's getopt(3) argument reordering.
1157 * Fix handling of last entry on a mime.types file line (bug introduced in 9.24)
1158   (Bugreport by Allan Peda).
1159 * Improved handling of proprietary character set names on SVr4 iconv.
1161 [9.26] released 2/17/01
1162 * Avoid to prepend or append multiple newline characters to the record folder.
1163 * Handle unquoted multipart boundaries again (Bugreport by Bob Tennent).
1164 * Help texts are compiled into the binary. Old files can be deleted (based on
1165   a comment by Christian Weisgerber).
1166 * nail.rc gets installed in /etc and is not overwritten if it exists.
1167 * Check for iswprint() before using wide character code (Bugreport by
1168   Hubertus Krogmann).
1169 * Use a non-zero exit status if a message could not get formatted in send mode
1170   (Bugreport by Allan Peda).
1172 [9.25] released 1/25/01
1173 * Fixed the problems some people had when viewing multipart messages (Bugreport
1174   by Thomas Fieseler and Russell Kroll).
1175 * Added the -r startup option to specify a From address.
1176 * Make fallback paths for csh, more, ex and vi configureable (Suggested by
1177   Arthur Korn).
1178 * Remove fcntl lock of mailbox while waiting for dot lock (Problem reported by
1179   Arthur Korn).
1181 [9.24] released 1/18/01
1182 * Use nl_langinfo to get the terminal's character set.
1183 * Add an In-Reply-To header field in replies.
1184 * Correct user's mime type file to ~/.mime.types as documented (Bugreport by
1185   Allan Peda).
1186 * Build even if no sendmail installation is detected (Bugreport by Gabor Z.
1187   Papp).
1188 * Adjust string length if an invalid multibyte character was replaced by '?'.
1189 * Properly display lines that contain an invalid multibyte character sequence.
1190 * Handle tabulators in MIME headers correctly (Bugreport by Russell Kroll).
1191 * Drop invalid entries for the References field instead of refusing to send
1192   (Bugreport by Bob Tennent).
1193 * Do not refuse valid domain literals in addresses (Bugreport by Bob Tennent).
1195 [9.23] released 11/15/00
1196 * Added the ~<! and ~i tilde escapes.
1197 * Honor the MAILRC environment variable.
1198 * Added the -e startup option.
1199 * Do not remove quotes when skinning names.
1201 [9.22] released 2000-09-29
1202 * Use iconv() and setlocale() only if appropriate header files are found
1203   (Problem reported by Gabor Z. Papp)
1204 * Clean UTF-8 decoding of continued quoted-printable lines
1205 * Quote base64-encoded texts correctly
1206 * Never perform RFC 1522 encodings of "Re: " in subject fields
1207 * Quoted-printable encoder will not generate empty continued lines anymore
1208 * Do not generate dupes when new mail arrives while old mail is deleted
1209   (Bugreport by Bob Tennent)
1210 * Multipart sections without MIME declaration are correctly handled as text
1212 [9.21] released 2000-08-21
1213 * Always add a dot to a line that starts with one in SMTP mode.
1214 * Fixed a core dump that occured on glibc 2.0 if the subject line was empty
1215   (Bugreport by Gelu G. Lupas)
1216 * Removed some (up to now, harmless) namespace conflicts on Solaris.
1217 * Fixed a problem with isprint() on Solaris (Bugreport by Thomas Fieseler).
1218 * Support a few iconv naming conventions on Solaris.
1219 * Corrected charset declaration of 7bit messages.
1221 [9.20] released 2000-08-08
1222 * Initialize the 'in_quote' variable in mime.c
1223 * Better mailbox locking.
1224 * Use LC_CTYPE locale setting to determine printable characters.
1225 * Use iconv(3) to convert between character sets.
1226 * Introduced the 'ttycharset' variable.
1227 * Changed child process handling (Problem reported by Thomas Fieseler).
1228 * Can handle addresses with embedded comments.
1229 * Use base64 encoding for header fields containing many 8bit characters.
1230 * Fixed a bug that could cause too long lines in quoted-printable.
1231 * Proper handling of newlines at the end of multipart sections.
1233 [9.14] released 2000-06-26
1234 * Generate `User-Agent:' header fields instead of `X-Mailer:'
1235 * Addresses in SMTP commands are surrounded with angle brackets
1236 * Do not send an empty envelope From if using SMTP without given `from' (Problem
1237   reported by Gabor Z. Papp)
1238 * Add a From: line even without a given `from' variable if using SMTP
1239 * Removed wrong structure reference in tty.c (Bugreport by Steve Harris)
1240 * Interpret all commands beginning with `#' as comments (Suggested by
1241   Gabor Z. Papp and Steve Harris)
1242 * Insert an empty line after `xyz wrote:' in replies
1243 * Fixed a possible buffer overflow in address allocation routines (Bugreport
1244   by James Sneeringer)
1245 * The `z' command now accepts a number that specifies a window
1247 [9.13] released 2000-05-30
1248 * Changed _PATH_ to PATH_ in defines
1249 * Fixed RFC 1522 encoding of header fields (important!) (Bugreport by Bob
1250   Tennent)
1251 * Check syntax of addresses before sending
1253 [9.12] released 2000-05-29
1254 * Do not print the indentprefix if a line to quote is being continued
1255   in quoted-printable
1256 * Omit the "No mail for ..." message if variable `emptystart' is set
1257 * Implemented handling of message/rfc822 format
1258 * Added SMTP client code
1259 * Added the `Forward' command
1260 * Avoid doubling line breaks when printing long addresses in header
1262 [9.11] released 2000-05-15
1263 * Do a fflush() before executing a ~| command (Bugreport by Edward V. Popkov)
1264 * Make a backup copy of an already installed nail.rc file (problem reported
1265   by Gabor Z. Papp)
1266 * The `write' command has a more consistent user interface
1267 * Added the `forward' command (Suggested by Bob Tennent)
1268 * Added the `emptystart' option
1270 [9.10] released 2000-05-02
1271 * Added the `-q' option
1272 * Convert a subject given on the command line from RFC 1522 format
1273 * The variable `srbuf' is now of type sigjmp_buf (Bugreport by Edward
1274   V. Popkov)
1275 * Introduced GNU autoconf support (Contributed by Jacob Moorman)
1276 * Corrected RFC1522-encoding of headers to respect word boundaries
1277 * Use gethostbyname() to include the FQDN in message ids
1278 * Use base36 to get shorter message ids and multipart boundaries
1279 * Use data from /dev/urandom in message ids and boundaries if available
1280 * Added the `pipe' command (Suggested by Bob Tennent)
1281 * readline() should no longer fail if libsafe is used (Bugreport by Bob
1282   Tennent)
1283 * Added the `-V' option
1284 * Limit the `References' header field to 21 entries
1286 [9.04] released 2000-04-17
1287 * Some fixes for machines where chars are unsigned by default (Bugreport by
1288   Marcel Oliver)
1289 * Merged the Mail.1 and nail.1 manual pages and added some missing
1290   features from `The Mail Reference Manual'
1291 * Print attachment names correctly in ~p escape
1292 * Use sprintf() if snprintf() is not available
1294 [9.03] released 2000-04-11
1295 * Some fixes to compile on FreeBSD 4.0 (Thanks to Anders Andersson)
1296 * Check for write permission before dot-locking mail files (Bugreport by Bob
1297   Tennent)
1298 * Do not accept an attachment list with unreadable files (Bugreport by Bob
1299   Tennent)
1300 * Do not send a message if a file could not get attached or if the input could
1301   not get read; save dead.letter instead (Bugreport by Bob Tennent)
1302 * Do not include Linux domainnames in the message id anymore
1303 * Merged the Red Hat nopanic and nullchar patches (Thanks to Bob Tennent)
1304 * Include a signature file if option `signature' is set
1305 * Generate our own `Date:' header field for better local message archiving
1306 * Made the `quote' option configurable (Suggested by Bob Tennent)
1307 * Fixed segfault if a message to reply to had no message id
1308 * Removed all `register' declarations of variables
1309 * The code is intended to be POSIX.1 compatible now, except for the
1310   tempnam() and getopt() functions the system must provide in addition
1311 * Removed the base64 encoding option for texts
1312 * Perform CRLF translation when decoding base64
1313 * Added the `emptybox' variable
1314 * Splitted send.c to sendout.c
1316 [9.02] relased 2000-04-05
1317 * Include the domainname in the message id only if there is one
1318 * Added the `stealthmua' option (based on a suggestion by Gabor Z. Papp)
1319 * Fixed decoding of base64 when lines are not multiples of 4 characters
1320 * Fixed erroneous recognition of message boundaries
1321 * Whitespace at the end of a line is now encoded in quoted-printable
1323 [9.01] released 2000-03-25
1324 * Added the `Organization:' stuff
1325 * Handle unknown encodings as application/octet stream for MIME conformance
1326 * Generate a `Reference:' header line in replies
1327 * Handle addresses in the `from' and `replyto' variables as if they were in
1328   the alternates list
1329 * Added a message count to the generated message-id to ensure it is unique
1330   even when more than one message is sent per second
1331 * Mbox format: Mask `^From ' lines inside messages with '>'
1332 * Proper handling of nested multipart messages implemented
1333 * We now ignore the MIME-Version header field and look at the Content-Type
1334   field instead
1335 * Can now compile on SVR4 systems using -lucb
1336 * Changed generation of multipart boundaries
1337 * Sending MIME messages to files now works
1338 * Fixed core dump if variable `encoding' was unset (Bugreport by Alexander
1339   Shelkovich)
1341 [9.0] released 2000-03-20
1342 * Initial release