Changes from 0.50 => 0.51
---------------------------
[New] ``noop'' function to unbind keys (e.g., "bind m noop main-menu")

[New] From: Brandon Long <blong@uiuc.edu> and ME
string history to recall previously entered strings.  The var $history
(default: 10) controls how many lines of history are remembered.

[New] ``folder-hook'' command to specify a muttrc command to execute when
reading a specific mailbox

[New] ``save-hook'' muttrc command to specify a default pathname to save
messages from, to or cc a specific address

- attach-menu now allows access to parts of a message/rfc822 body

- threads are now sorted by date before creating pseudo threads

- reverse_alias now always ignores the existing personal name if one exists
  for the matched alias

- you can now quote a character with backslash (\) inside the
  *-pattern/limit functions (e.g.: 'a string with spaces and a \' in it')

- fixed bug with batchmode dumping core on call to endwin()

- fixed bug with limit "new"

- fixed bug where saving a message untagged ALL messages

- configure now checks for BSD-ish systems and adds "-lm -ltermlib" to
  $LIBS if using SLang

- strerror() is now used instead of accessing sys_errlist directly, where
  available

- the url-menu removed the last character of URLs if it was a digit

- add_alias() now converts tabs to spaces before calling rfc822_parse_adrlist()

- added the "replied" and "old" keywords to the pattern functions

- no error should be printed if the user does not have a ~/.muttrc

- fixed coredump when deleting all messages from a mailbox and keep_empty is
  unset

- added ``[Replied]'' to %S in $pager_fmt for replied-to messages

- configure now checks for ncurses.h again.  Apparently this actually works
  on some systems.  with the addition of the check for /usr/include/ncurses
  in 0.50, this should probably take care of the problems under RedHat Linux
  3.0.3

- a single quote (') can now be used to delineate a string in a "set"
  command in addition to the double quote (")

From: rhh@ct.picker.com (Randall Hopper)
- you can now use "%s" in the $editor variable to specify the filename

From: Thomas Parmelan@efrei.fr
- fixed some bugs in the random signature code

Changes from 0.49 => 0.50
---------------------------
[New] ``popport'' and ``poppass'' muttrc vars

[New] ``search-reverse'' function (default: "ESC /")

[New] ``tag-prefix'' function (default: ";") to make the next function
apply to tagged messages in the main-menu.  This currently works for:
delete-message, undelete-message, save-message, copy-message,
forward-message, reply, group-reply and list-reply.  It is silently ignored
for other commands.

- the --with-slang=DIR option did not like --with-slang=/usr/local to
  specify where libslang is installed.  There is now a special check for
  DIR/include/slang for the slang header files (the location under RedHat
  Linux 4.0)

- removed --with-curseslib=DIR and --with-cursesinclude=DIR in favor of a
  single --with-curses=DIR option, since we will likely want DIR/include and
  DIR/lib anyway.  There is a special check for /usr/include/ncurses if
  -lncurses is found (only if DIR==/usr)

- newkey() renamed to allocKey() to avoid conflict with a SCO 5 function.

- mutt_checkpoint_mailbox() did not properly reset the file access and
  modification times.

- fixed error in pop.c where CI_password should have been M_PASS

- fixed coredump when recalling postponed messages which are replies or have
  attachments.

- keypad was not enabled after resizing the screen (slang)

- mutt_close_mailbox() reported that messages were moved even if they
  weren't.

- the ``new'' and ``tagged'' members were not updated when synchronizing a
  mailbox

- fixed segfault when synchronizing a mailbox with all messages deleted

- fixed segfault in batch send if the user had a ``mono'' command in their
  muttrc

- changed some arrays from 2-dimensional to a single dimension because it
  was unnecessary to have 2 dimensions (this should reduce memory use a bit)

- if using slang, check to make sure that ``unix'' is defined by the
  compiler (needed to compile with slang under HP-sUX) before including
  slang.h

- endwin() was not called before PGP signing or encrypting a message

- modified handling of boolean variables to use an array of unsigned chars,
  and to define the options using a enum statement.  this will allow easy
  addition of new boolean vars without having to worry about the length of
  the vector used to store them in

- suspension did not work properly under ncurses or slang

- configure no longer checks for ncurses.h because ncurses is usually broken
  if we find it

- fixed infinite loop when trying to PGP encrypt a message

- message_id member moved to the ENVELOPE structure

- mutt now generates message-id fields itself (so that fcc'd copies have the
  same as the sent message)

- fixed segfault when searching with the same pattern again and the pattern
  is bogus

- added mutt_perror() to print system error messages

- fixed bug in ``mime_fwd'' handling

- increased size of temp buffer in edit_address_list() [send.c] from 5kB to
  10kB so that long alias lists (Hi, Clint! :-) don't get truncated as
  easily

- fixed bug where the screen would not be redrawn after exiting the
  alias-menu

- ``search'' now detects simple searches and substitutes
	~t 'STRING'|~s 'STRING'
  to emulate ELM behavior

From: Ollivier Robert <roberto@keltia.freenix.fr>
- fixed several typos in the documentation

From: davidn@sdev.usn.blaze.net.au (David Nugent)
- signature.c needs <unistd.h> for prototype for mktemp()
- fixed segfault in send-attach-menu if you hit 's' with no attachments
- fixed check for sendmail in configure.in which generated invalid sh syntax
  under some implementations of sh

From: olsenc@ichips.intel.com (Clint Olsen)
- resize.c needs to include <sys/ioctl.h> under AIX

Changes from 0.48.1 => 0.49
---------------------------
[New] %>X and %|X sequences in ``hdr_format,'' ``status_fmt'' and
``pager_fmt'' to right justify and pad to end of line, respectively

[New] you can now query whether boolean variables are set by prefixing the
variable name with a question mark (e.g., "set ?allow_8bit")

[New] press TAB at a To:, Cc:, or Bcc: prompt to bring up the alias menu
where you can add one or more aliases the the list.

[New] ``verify_sig'' variable to control when  PGP signatures are checked
Valid values are "yes" (always verify), "no" (never verify), or "ask" (query
whether to check to sig)

[New] From: Christophe Kalt <kalt@hugo.int-evry.fr>
New hdr_format sequence ``%t'' to get the appropriate character from the
``tochars'' string.

[New] ``save_name'' variable (default: unset) which causes an fcc to a
folder specified by the address you are sending to, but only if that file
already exists.

[New] ``tilde'' variable (default: unset) to emulate vi/less and print a ~
at the beginning of each blank line on the screen which is not really a part
of the message.  You can configure the color of the tilde using
	color tilde <fg> <bg>

[New] ``mime_fwd'' variable (default: unset) to cause forwarded message to
be inlcuded as a separate MIME attachment.

[New] ``unalias'' command to remove aliases

[New] ``-a'' command line option to include attachments

[New] total rewrite of the keybinding mechanism to allow for binding of key
sequences (more than a single keystroke).  New is the \e sequence for escape.
So you can now do:
	bind "\e<" first-message main-menu
	bind "\e>" last-message main-menu

[New] --with-slang configure option to use slang instead of curses/ncurses.
You MUST get ftp://space.mit.edu/pub/davis/slang0.99-35.tar.gz AND apply my
patch (ftp://cs.hmc.edu/pub/me/slang0.99-35me.diff) OR pick up a patched
copy (ftp://cs.hmc.edu/pub/me/slang0.99-35me.tar.gz)

[New] ``unmy_hdr'' command to remove user defined header fields

[New] total rewrite of the pattern function (limit/*-pattern) to allow for
more complex patterns: NOT(!), OR(|), AND(implicit) and parentheses for
grouping.  You can also use regular expressions instead of plain strings for
keywords which require an argument (like ~t, ~f, ~c and ~s).  This means
that patterns like:
	!(~t mutt|~c mutt) ~f me@.*
are now supported

[New] you can now specify Date ranges in the limit/*-pattern functions.
RTFM for details.

- wrapped threads did not have their subject displayed (missing M_FORCESUBJ
  flag)

- added a few missing #define values to the ``mutt -v'' output

- made changes to mutt_sync_mailbox (now called mutt_checkpoint_mailbox)
  which will speed up the sync-mailbox function by updating the in-memory
  HEADER structures instead of reparsing the entire mailbox.  This also had
  the desirable side-effect that limits are now kept when using
  sync-mailbox, and the mutt_close_mailbox() function now prints "N kept, N
  moved, N deleted" (if spool mailbox) or just "N kept, N deleted"

- you can now view more than one URL before leaving the url-menu

- fixed infinite loop when a PGP key could not be found

- if Mutt can't find a PGP key for one of the recipients, it will now prompt
  the user to input the keyID, mailbox name, or real name.

- added the yes/no/ask variable type (trioption) and supporting routines

- signature was appended when recalling a postponed message

- fixed bugs where next-new always went to the _first_ new message and
  always exited the internal-pager

- added missing binding for view-attachments from the internal-pager

- fixed bug where attachments could be labeled as "x-unknown" MIME type.

- is_local_site() modified so that it takes into account how long the rest
  of the string is after a '*' and then only tries to match that many
  characters at the end of each address (so that something like "*.fr" will
  work)

- xterm mouse support has been removed (SLsmg and ncurses are not compatible
  as far as mouse support)

- rewrite of the color handling to be much simpler by starting curses before
  parsing the .muttrc

- mutt_yesorno() can now return -1 on abort

- fixed segfault if the user deleted the From: field while editing an
  outgoing message

- help always displays the full bindings for a menu.  With the ability to
  bind a key sequence, it is now difficult to find help for a single key.

- configure now checks for -lnsl and -lsocket (needed for POP support under
  Solaris)

- added support for B-encoding in rfc1522.c.  Used if it is more compact than
  Q-encoding (only if charset is not us-ascii or iso-8859-*)

- rewrote Q-encoder in rfc1522.c to be simpler and to comply with the standard
  and not create encoded words longer than 75 chars

- entering an alias with the same name as an existing one will override the
  previous value instead of creating a new alias which never gets used

- gen_keymap fixed to not assume a location for perl and to just find it in
  the user's path

From: oota toshiya <oota@pes.com1.fc.nec.co.jp>
- patch for "JST" timezone in parse_date()

Changes from 0.48 => 0.48.1
---------------------------
- read_rfc822_header() was _way_ slow due to use of strncpy()

- fixed coredump when resuming a postponed message

- fixed coredump when on the last message in main-menu and you do a search

- fixed memory leak in parse_content_type()

- searching in the internal-pager was broken

- fixed mispelling of INSTALL in Makefile.in

- fixed buffer overrun in envelope_defaults() in a call to
  mutt_make_string()

Changes from 0.47 => 0.48
-------------------------
[New] ``hide-quoted'' function in internal-pager to toggle display of quoted
text (default: T)

[New] ``Pager_fmt'' variable controls the info displayed at the top of the
screen in the pager (mutt_make_string() is the pride and joy of Mutt!)

[New] From: David Jeske
- %p sequence for # of postponed message in ``status_fmt''  [03.postponed]
- ``askrecall'' variable to control whether you are prompted to recall a
  message when composing a new message (default: set).

[New] ``unlists'' command to remove a token from the list of mailing-lists

[New] display-address function to display the full address of the sender in
main-menu (default: %)

[New] ``alias_file'' variable to specify the default file in which to save
aliases created by the ``create-alias'' function

[New] Preliminary DSN support.  use --enable-dsn with configure, and see
the ``dsn_notify'' and ``dsn_return'' vars.

[New] support for -B flag to sendmail (used to set -B8BITMIME when needed)
Use --enable-8bitmime to compile with support for this

[New] ``autoinclude'' variable to bypass prompt for including a message in
a reply

[New] ``localsite'' and ``unlocalsite'' muttrc command to specify which hosts
are really local.  This is analagous to the ``alternates'' command, except that
it specifies which addresses are considered part of your local organization.

[New] From: Brandon Long <blong@uiuc.edu>
Man page now installed with mutt

[New] ``popdelete'' variable to control whether messages are deleted from
the POP server after successful download (default: unset).

[New] ``next-new'' (default: <tab>) and ``next-unread'' (unbound)
These functions replace the jump-new and jump-unread functions.  They also
will wrap around to the top if a new/unread message is not found
before hitting the end of the mailbox.  If you want the old jump-new
functionality, you can still get it by creating a macro like:
	bind 'J' main-menu next-new
	macro main-menu '\t' 1^MJ
which jumps to the first message and then to the first new.

[New] ``thread'' keyword in the *-pattern functions (e.g., limit,
tag-pattern)

- configure was not defining HAVE_REGCOMP if regcomp() was found. [02.regcomp]

- screen was not redrawn properly if a limit failed [06]

- subject was not shown for a thread that overlapped a page boundary if the
  current message is the first message on the page [06]

- default value of ``quote_regexp'' is now ``^[|:}#>] *''

- it was impossible to answer ``no'' to the ``No subject, send message
  anyway?'' prompt in send-menu [11.send]

- major changes to the main-menu code to remove the ->current field from the
  global Context.  This allows Mutt to remain open after syncing a mailbox
  which has all message deleted

- changed (o)rder to (u)nsorted in the sort-mailbox function

- return now aborts the sort-mailbox function

- help screen was not cleared when exiting back to the internal-pager

- it was impossible to sort by reverse-date-received from the sort-mailbox
  function [10.sort]

- deleted/saved messages are now automatically untagged [09.selected]

- fetch-mail did not delete the messages on the POP3 server

- ran out of bits in the Options vector, so converted options into two vectors
  and added support routines to set/unset

- configure now checks for the length of ``long'' and ``int'' so that pop.c can
  use the correct length variable for network addresses.

- major overhaul of internal-pager.  wrapped lines are now handled much better.
  ``floating_prompt'' variable removed (needed for simpler handing of wrapped
  lines on the last line of the screen)

- user defined headers were moved to the ENVELOPE struct, and the METAENV
  struct was removed.  user headers are now maintained as a LIST instead of
  a fixed size array

- completion was not enabled for the edit-fcc function

- if the last character in an extracted URL is not alphanumeric, assume it is
  punctutation and remove it.

- ``Tochars'' now has an extra field to specify the character to display when
  the message was sent by you (default: F)

- format of mime.types change to be in line with metamail and netscape
	<content-type>	<extension> [ <extension> ... ]

- change-folder now checks to see if the current mailbox was modified, and
  if so asks if you would like to save changes (it just assumed yes before)

- major changes to use the same routine to parse RFC822 headers for both
  reading a mailbox and when reading a postponed message or with
  ``edit_hdrs.''  This involed using the ENVELOPE structure inside of the
  HEADER structure.

- emergency_exit() did not call endwin() before exiting.

- fixed ``bug'' where mutt would exit saying that the folder had been modified
  if the mtime of a mailbox of zero length had changed.

- when autoedit is set and you compose a new mail, the remotesignature (if set)
  will be included instead of the localsignature.

- endwin() was not called before including a PGP message in a reply.

- application/x-pgp-message is now recongized as a PGP message.

- mutt_add_to_list() now checks to make sure the item to be added is not
  already on the list.

- trying to complete a zero-length filename will now produce the first
  ``real'' file/directory instead of ``.''

- added additional debugging info to mutt_sync_mailbox() to try and track
  down the bug where deleted messages aren't always deleted

- mutt now rotates old debug logs instead of just writing over them
  (.muttdebug0, ..., .muttdebug4)

- 8BIT CTE is now only used for TEXT/* type messages

- fixed bug where 8BIT encoding was not propogated to the top-level
  Content-Transfer-Encoding if the main body of the message was 8BIT and no
  8BIT attachments

- prettied up the auxillary menus to use color (alias/folder/attach/send)

- no error message was printed if copy_message() failed while syncrhonizing
  a folder

- writemsginc now only prints messages for messages which are actually
  written to disk instead of for all messages in the mailbox

- ``mutt -v'' now shows #undef options

- changed calls to strdup() in pgp.c to safe_strdup()

- whitespace was not allowed between the keyword and the equal sign in the
  "set" command

- fixed compilation warnings caused by addstr() not having a "const char *"
  argument on some systems

From: Christophe Kalt <kalt@hugo.int-evry.fr>
- fixed bug in mutt_make_string() which added an extra % when using %F
- %F will now look for mailing lists if the message is from you

From: David DeSimone <fox@mikey.convex.com>
- the ``mono'' command was broken [07.mono]

From: John Capo <jc@irbs.com>
- fixed coredump with no subject on batch send [04.emptysubject]

From: pms@romance.kaist.ac.kr (Park Myeong Seok)
- fixed ci_enter_string() to allow entering of multi-byte
  chinese/japanese/korean characters (it got messed up when I removed the
  init_ch argument) [08.enterstring]
- fixed search command to restore last search string and to wrap to the top
  if a match is not found before the end of the mailbox

From: Thomas Parmelan <tom@ankh.fr.eu.org>
- fix to allow binding of the tab key [12.misc]

From: Ollivier Robert <roberto@roberto@keltia.freenix.fr>
- fixed bug in mutt_complete() which did not handle a single slash in the
  pathname correctly [13.complete]

From: aric@fore.com (Aric D. Blumer)
- alias_reverse_lookup() did not correctly handle group aliases

From: leitner@math.fu-berlin.de
- submitted a more complete sample mime.types file

Changes from 0.46 => 0.47
-------------------------
[New] ``quote_regexp'' variable to specify a regular expression to match
quoted text in the body of a message.

[New] keyboard macros
Works similar to the ``map'' command of vi:
	macro main-menu 'O' oD # change sort method to reverse-date-sent

[New] optionally print non-zero variables in status_bar
``%?02n new?'' will print ``XX new'' if there are new messages in the mailbox,
otherwise, it is ignored

[New] added a ``--with-curseslib=DIR'' option to configure so that mere mortals
can install with ncurses

[New] ``status_on_top'' variable to control whether the status_bar is printed
on the bottom of the screen (default) or the top.  This variable is ignored
if ``xterm_mouse'' is set.

- forgot to clear screen before drawing the send-menu

- "main_loop" tag was only defined if PGP support was enabled

- ~/Mailbox was being displayed as =ox in the status bar

- mark-as-new caused the ``new message count'' in the status bar to always
  increase

- ``tag count'' in status bar was not updated when tagging a message

- index was not redrawn to update deleted message when saving

- added flag M_NOSORT to mutt_open_mailbox() to avoid sorting the mailbox after
  opening it (used for getting postponed messages)

- the value of Sort was invalid if the user typed an invalid sorting method

- fixed coredump when invoking recall-message when there are no messages in the
  mailbox

- aborting a save/copy will no longer move to the next message

- displaying an OLD message decreased the new count, which it should not.

- user was still prompted for a URL after exiting (aborting) the url-menu

- the messages generated by setting ``readmsginc'' and ``writemsginc'' now
  start from 1 instead of 0 (what do you mean only computer scientists count
from 0!! :-)

- added descriptions for the generic menu functions

- added mutt_remove_duplicates() to remove duplicate addresses from a list.

- configure now checks for setegid() since HP-UX does not have it

- ``keepsave'' variable removed (it had no effect anyway) since keys can be
  remapped.

- fixed bug in alternative_handler where no parts were ever displayed

- previous search pattern was erased when aborting the search prompt

- new macros REGCOMP() and REGEXEC() [mutlib.h] to serve as a interface for
  pattern matching.

- fixed some bugs in the content-type parser

- parse_multipart did not check for NULL boundary before using it

- messages displayed by metamail were not marked as read

- the subject of threads that overlap a page boundary is now printed for the
  first message on the new page.

- force_name was cauing the whole pathname of the mailbox to save a copy in
  to be converted to lower case instead of just the filename

- mutt_bounce_message() was using fclose() instead of pclose() on a FILE
  descriptor that was opened with popen().  This caused zombie children when
  bouncing a message.

- improved check for subject change in the middle of a thread

- fixed some documentation errors

From: Fefe <leitner@math.fu-berlin.de>
- mutt_unlink() was being called at the end of ci_send_message() which could
  remove the message before sendmail had a chance to deliver it.

From: David Jeske
- fixed bug in muttrc command substitution
- print "Sorting mailbox..." in mutt_sort_headers()

From: Clint Olsen <olsenc@ichips.intel.com>
- the "bright" member of the color_def struct was still used even if HAVE_COLOR
  is not defined
- hacked the alias code to prevent alias loops in a smart manner by keeping
  track of which aliases have already been expanded.

Changes from 0.45 => 0.46
-------------------------
[NEW] From: Christophe Kalt <kalt@hugo.int-evry.fr>
-p command line option to recall postponed messages

[NEW] function recall-message to recall postponed messages (default: R)

[NEW] "status_format" variable and status line.  See
htmldoc/config.html#status_format.  NOTE: this variable makes the "show_host"
variable obsolete

[NEW] "mono" command to set object attributes on mono terminals.  This
complements the "color" command.

Removed all subwindow curses code.  This is in preparation for using the S-Lang
library as an alternative to ncurses.

configure was not defining USE_SETGID in config.h when needed
[03.configure.PATCH]

The message header included in a reply when the variable "header" is set was
not quoted using the "indentprefix"

If the Date: field is missing or can not be parsed, use the date received
(converted to UTC).  This will at least make the message appear in the
general vicinity of where it belongs.

Changed the sort-mailbox function so that you only need to type a single letter
to resort the mailbox instead of scrolling through all the possibilities.  Use
<shift> + <key> to sort in reverse.

Changed the case of [NEW] and [OLD] to [New] and [Old] when displaying a
message.  It now will also print [Tagged] and [Flagged] when appropriate.

Sorting the mailbox no longer causes an implicit "limit all" (this has the
side effect that new mail received while the display is limited will not be
seen until all messages are shown).

Now possible to change the normal/default color of text ("normal"), error
messages ("error"), and the thread tree ("tree").  [supercedes
04.configure-color.PATCH, 06.normal.PATCH and 11.treecolor.patch]

Changed "lines" from "short" to "unsigned short" in type HEADER (muttlib.h)

Fixed a line wrapping problem in write_address_list() [sendlib.c]

ci_enter_string() no longer returns -1 when the user presses enter with no
input.  -1 is only returned when the user aborts (^G) the prompt.

Documentation was converted to SGML so that I can make text, html, info and
postscript versions from the same source using the linuxdoc-sgml package.

Fixed bug in find_mailing_lists() [sendlib.c] which was corrupting the
envelope structure by mixing up the TO and CC lists.  This was
apparently causing list-reply to hang mutt in some instances.

read_rfc822_header() now takes note of the in-reply-to header and uses the
first message-id found in it to create a fake reference if none exist.

Changed readmsginc => msginc.  It now prints messages both when reading AND
writing.

The meaning of ``-z'' has been reversed, so that "mutt -z" will exit
immediately if there are no messages.

From: jc@irbs.com (John Capo)
dot locking was not used on the spool mailbox if HOMESPOOL was defined.

From: roberto@keltia.freenix.fr (Ollivier Robert)
-fixed coredump in pager on search [08.search.PATCH]
-mutt will coredump on unknown keywords in the muttrc [10.keyword.PATCH]

From: leitner@math.fu-berlin.de (Felix von Leitner)
added status message to configure.in about location of curses.h

From: kalt@hugo.int-evry.fr (Christophe Kalt)
fixed %F in hdr_format to support field widths [07.format.patch]

Changes from 0.44 => 0.45
-------------------------
[NEW] Added "new", "unread" and "important" criteria to the
ci_pattern_function() to complement the "tagged" criterion.

[NEW] mailbox-order sort method

[NEW] --disable-domain option to configure.  Inhibits qualification of local
addresses.

[NEW] From: kalt@hugo.int-evry.fr (Christophe Kalt)
Added the "tochars" variable (from ELM 2.5alpha).  See
htmldoc/config.html#tochars for an explanation.

[NEW] From: Brandon Long <blong@uiuc.edu>
Added the `...` command escape which substitues the output of the command on
the line.

[NEW] variable "askbcc" which controls whether you are initially prompted
for BCC recipients.

[NEW] variable "autoedit" which skips the initial send-menu prompts if
"edit_hdrs" is also set.

Default header info is now fully displayed when replying, group-replying or
forwarding.

Added a break statement to a default label in snprintf.c to satisfy picky
compilers.

ci_enter_string() no longer uses the initch arg.  I now use ungetch().

Forgot the reset the current message number when the jump-new function fails
to find a new message.

mutt_parse_mailbox() will now print "Reading messages..." if readmsginc is 0,
so the user gets some indication of what is happening.

The pathnames of attachments are now displayed in send-menu.

Fixed bug in read_rfc822_header() where the value returned by safe_strdup()
was not checked for NULL before using it.

Composed messages are now aborted if no recipients are entered in the initial
TO prompt.

Fixed display problem when bouncing a message.

Pressing ^G in a yes/no prompt is now interpreted as "no".

Default function key bindings for internal-pager were logically inconsistent.

Fixed bug where echo was not restored when exiting.

":sort" now displays the current sorting method rather than printing
"unknown sorting method".

It was not possible to change the sorting method to threads in the
sort-mailbox function.

Fixed configure script so that it does not check for re_exec() or regex() if
it first finds regcomp().  This will end up avoiding the problem of including
both <libgen.h> and <regex.h> which are incompatible.

Small code changes to avoid "gcc -Wall" compiler warnings under AIX.

The mailbox is now unlocked before sorting the headers (except when sync'ing
a mailbox)

Fixed bug in MIME multipart parsing code.

The toolbar was not getting drawn in main-menu

Thread sorting code modified to eventually be able to support a secondary
sorting method.  It still uses date-sent right now.

Removed all curses calls from pgp.c.  Any routine calling a function in pgp.c
must first call pgp_valid_passphrase() [if needed] and endwin() before
calling another pgp_* function.

start_curses() was called in main() even in batch mode.

Chagned "char *" => "unsigned char *" in print_enriched_string() to fix
problems with displaying 8-bit characters

configure now adds -L/usr/ccs/lib to LDFLAGS under Solaris

When opening a mailbox, mutt will position itself at the last message in the
mailbox if there are no new or old messages.

Fixed bug in ci_start_color() where I was calling init_pair() with a -1
argument.

Mutt now uses POSIX.1 signals (sigaction, sigprocmask)

Added mutt_block_signals() and mutt_unblock_signals() routines to protect
critical regions in the mailbox reading/writing routines.  This will prevent
.lock files being left behind if the user hits ^C while reading/writing the
mailbox.

If the subject changes in a thread, it will show the new subject where it
changes

Mutt will display "[NEW]" or "[OLD]" on the first line of the message display
if a message is new or old, respectively (duh!)

Reverse aliasing is now also done when displaying "To <addr>" in main-menu.

If there is no From: or Apparently-From: header field in a message,
use the return-path indicated in the message separator.

The keypad was not enabled in send-menu.

delete-thread now works correctly in the internal-pager.

From: Brandon Long <blong@uiuc.edu>
browse-url now pops up a menu if it finds more than one url in the message.

From: lmb@pointer.in-minden.de (Lars Marowsky-Bree)
-Fixed bug in sort_threads() where ->message_id was not checked for NULL before
calling strcmp()
-added %D sequence to mutt_make_string() to print date in ISO-8601 format:
	YYYY-MM-DDTHH:MM:SS

From: aric@fore.com (Aric D. Blumer)
ci_any_key_to_continue() was not restoring the original tty mode.

From: Brandon Long?
Attachment descriptions are now restored from postponed messages.

Changes from 0.43 => 0.44
-------------------------
[NEW] Message threading.  Add "sort threads" to your .muttrc to enable
threading mode.  (See http://www.cs.hmc.edu/~me/mutt/misc.html#threads
for more info)

[NEW] browse-url function.  New variables used by this function are
``web_browser'' and ``web_xbrowser''

[NEW] Mutt will print "No messages in mailbox." and exit if you specify a
zero length folder with the '-f' option on the command line.  You can force
it to start anyway by using '-z', just like in ELM.

mutt_write_address() was not separating addresses with a comma.

The send-attach-menu now uses the keybinding mechanism like other menus.

Fixed segfault when botching command-line arguments with batchmode.

The ``help'' function now displays a short description along with the function
name.

Fixed some problems with the attach-menu not getting drawn properly.

If there is no description for an attachment, try displaying the default
filename.

parse_date() now knows about the "MET" timezone.

attachments are now restored when recalling a postponed message.  This is
done by adding a
	X-Mutt-Attachment: <filename>
header line when saving the message to the postponed mailbox.

folder-menu now displays the directory in the title.

pager prompt was not cleared when sending a message from it.

The References: header line was not RFC1036 compliant because it put each
reference on it's own line.  I'm not sure this matters much since it _was_
RFC822 compliant, but I've fixed it.

The index-menu is now redrawn after invoking enter-command so that any changes
affecting the screen display will take effect immediately.

The current message was getting set to 1 when executing ``limit'', even if
the prompt for criteria was aborted.

Mutt will now print an error message if a user tries to enter a list of
recipients not separated by commas.

send-menu looks a little different on startup.  Old behavior was to enter
the initial list of recipients and subject at the bottom of the screen.  Now
the whole menu is drawn and the fields are edited in the same fashion as
they are after editing the body of the message.

If you try to synchronize a read-only folder, Mutt will now ask you if you want
to abort any changes you've made.

Fixed yet another buffer overflow problem in format_long().  That routine
was replaced by write_address_list() [sendlib.c] so it can handle arbitrarily
long lists without needing a huge memory buffer.

ci_enter_string() now does boundary checking so it doesn't allow the user
to write past the end of the string.

From: Alain.Thivillon@alma.fr (Alain Thivillon)
-fixed bug where Mutt would display "To <myaddress>" when the message was
actually from you instead of the real recipients.
-default filename was not used when saving an attachment
-keypad is not restored after invoking editor on some terminals

From: Brandon Long <blong@uiuc.edu>
Rewrote the snprintf() routine and added missing functionality from previous
version.

From: Francois.Berjon@aar.alcatel-alsthom.fr (Francois Berjon)
The ci_parse_bind() routine was returning the wrong code for the PageUp and
PageDown keys.

From: ollivier.robert@eurocontrol.fr (Ollivier Robert)
Fixed purify warning in hdrline.c by changing strfcpy=>memcpy

From: kalt@hugo.int-evry.fr (Christophe Kalt)
-Added a 'Fcc:' field to the send-menu so that you can override the value of
 ``outbox'' or ``force_name'' on a per-message basis.  This value can be edited
 by invoking the function ``edit-fcc'' (``f'' by default).
-Added the %F sequence to mutt_make_string() which gives the From: header
 field unless the message is from yourself (a compromise between %f and %L)

From: jeske@igcom.net (David Jeske)
reverse_alias now works for mailing lists.

Changes from 0.42 => 0.43
-------------------------
[NEW] Mutt will abort without prompting in the send-menu if you do not modify
the outgoing message on the initial edit.

index-menu was not getting redrawn after exiting the full screen help window.

Fixed problem in configure with getting the domain name of the system where
the ``egrep'' call was missing its brackets.

Calls to rfc822_write_address() are now made through mutt_write_address(),
which does checks to make sure that the buffer is not overwritten.  This
routine can still fail if any single address in a list is larger than 1K.
Because of this, I've reduced the size of most buffers from HUGE_STRING (5K)
to LONG_STRING (1K).  This has the side effect that it will be impossible
to reply to all recipients of a very long (> 1K) list of recipients.  But
at least Mutt will not crash.

Changed many sprintf=>snprintf and strcpy=>strfcpy where possible in order
to decrease likelihood of buffer overflow.

The mailbox was not being resorted if the ``sync-mailbox'' function aborted.

Fixed some errors in the documentation.

ci_any_key_to_continue() now only uses tcgetattr(), since all POSIX systems
have it.  This removes the need to check for specific types of machines, and
also removes the need to check for <sys/param.h> for the definition of BSD.

Fixed problem with replying to a MIME multipart message before viewing it,
where the body of the message was not included in the reply.

From: roberto@keltia.freenix.fr (Ollivier Robert)
Fixed coredump when trying to send mail in batch mode.

From: David DeSimone (fox@convex.hp.com)
String parsing in the .muttrc was still broken.

From: ollivier.robert@eurocontrol.fr (Ollivier Robert)
-Fixed segfault when invoking the ``search'' function in main-menu.
-Fixed segfault when the postpone-menu was invoked.
-Added missing delwin() call to end of ci_attach_menu()
-screen was not getting drawn in ci_attach_menu() because of missing flag
-send-menu was not updated to show the attachments message.

From: aric@fore.com (Aric D. Blumer)
-added missing wait() after call to pgp to get list of keys in pgp.c
-pgp_prompt_for_passphrase() was returning the wrong code on success

Changes from 0.41 => 0.42
-------------------------
[NEW] Added the untag-pattern function (default: control-T)

[NEW] It is now possible to use the following keys with the bind command:
	pageup, pagedown, up, down, left, right
``home'' and ``end'' do not work for some reason (they don't return the correct
KEY_* code given in curses.h, at least when I tested it)

[NEW] Mutt will now print
	(*** You have flagged this message as IMPORTANT ***)
before the header of messages (in the pager) which have been marked important
using the flag-message function.

Fixed segfault when using the -F command line option.

help commands now print the name of the menu when listing all keybindings.

The screen is now clear()ed after displaying help in the internal-pager.

Fixed bug where it was impossible to quote characters with backslash (\) inside
of a string in the .muttrc

The default hdr_format now shows the number of lines rather than the number
of characters in the message.

jump-new will now ignore new messages which have been deleted.

Removed the ``sigdashes'' variable.  The signature will always be appended
after a line containing "-- ".

Setting ``indentprefix'' has been disabled.  Mutt will now always use "> "
as the quote string.

Fixed bug where a blank line was inserted before the Resent- header fields when
bouncing a message.

It is now possible to escape the comment character (#) in the .muttrc.  For
example:
	my_hdr X-Random-Header: \# this is not a comment # but this is
will produce a header field:
	X-Random-Header: # this is not a comment

configure now checks for snprintf() and uses the supplied code if it is not
found in the system libc.

Fixed bug where attachments of type message/rfc822 were incorrectly displayed
(the body was always missing).

Mutt will display the next message automagically after successfully saving a
message to a file while in the internal-pager.

``mutt -v'' now prints which operating system and release, as well as the
ncurses version used.

Fixed bug in filename completion code where if one filename was a substring of
the other, it would match the longer filename under certain conditions.

From: aric@fore.com (Aric D. Blumer)
-Added missing wait() call to pgp_encrypted_handler() after invoking pgp.
-Fixed several large memory leaks (thanks, Aric!)

Fixed buffer overflow bug in alias-menu.

The ``help'' function in the internal-pager no longer prints all bindings
by default.

Major changes in the curses code.  The only user-visible change is that
all prompts have been moved to the last line of the screen.  Internally,
the curses lib is now more responsible for repainting the screen because I
am using subwindows for everything other than the index-menu.

This ChangeLog was getting far too long, so I copied it to OChangeLog.
Changes from 0.41 => 0.42
-------------------------
[NEW] Added the untag-pattern function (default: control-T)

[NEW] It is now possible to use the following keys with the bind command:
	pageup, pagedown, up, down, left, right
``home'' and ``end'' do not work for some reason (they don't return the correct
KEY_* code given in curses.h, at least when I tested it)

Fixed segfault when using the -F command line option.

help commands now print the name of the menu when listing all keybindings.

The screen is now clear()ed after displaying help in the internal-pager.

Fixed bug where it was impossible to quote characters with backslash (\) inside
of a string in the .muttrc

The default hdr_format now shows the number of lines rather than the number
of characters in the message.

jump-new will now ignore new messages which have been deleted.

Removed the ``sigdashes'' variable.  The signature will always be appended
after a line containing "-- ".

Setting ``indentprefix'' has been disabled.  Mutt will now always use "> "
as the quote string.

Fixed bug where a blank line was inserted before the Resent- header fields when
bouncing a message.

It is now possible to escape the comment character (#) in the .muttrc.  For
example:
	my_hdr X-Random-Header: \# this is not a comment # but this is
will produce a header field:
	X-Random-Header: # this is not a comment

configure now checks for snprintf() and uses the supplied code if it is not
found in the system libc.

Fixed bug where attachments of type message/rfc822 were incorrectly displayed
(the body was always missing).

Mutt will display the next message automagically after successfully saving a
message to a file while in the internal-pager.

``mutt -v'' now prints which operating system and release, as well as the
ncurses version used.

Fixed bug in filename completion code where if one filename was a substring of
the other, it would match the longer filename under certain conditions.

From: aric@fore.com (Aric D. Blumer)
-Added missing wait() call to pgp_encrypted_handler() after invoking pgp.
-Fixed several large memory leaks (thanks, Aric!)

Major changes in the curses code.  The only user-visible change is that
all prompts have been moved to the last line of the screen.  Internally,
the curses lib is now more responsible for repainting the screen because I
am using subwindows for everything other than the index-menu.

Changes from 0.40 => 0.41
-------------------------
[NEW] msginc has returned as ``readmsginc'' (to be somewhat consistent with
ELM).  It has a default value of 0, meaning that no status will be indicated.

[NEW] added var ``pager_stop'' (unset by default) which causes Mutt to not go
to the next message when you invoke the next-page function at the end of a
message.

[NEW] added var ``timeout'' which controls how long (in seconds) Mutt will
wait for input in the main menu before checking for new mail.  Note:
timeout(-1) does not work under Solaris 2.4 standard curses, so it's best to
put ``set timeout=0'' in your muttrc or else it will cause ALL prompts (pager,
line editor, etc) to time out.

[NEW] ``honor_length'' has been removed in favor of using the Lines: header
field.  Now it adds both Content-Length and Lines so that reading can be
speeded up somewhat the next time the message is loaded.

[NEW] From: leitner@math.fu-berlin.de (Felix von Leitner)
Added the ``-F <muttrc>'' command line option to specify which muttrc file to
read (default: ~/.muttrc)

Clear the sort prompt when the user aborts (^G)

Forgot to call mutt_expand_path() on ``Tempdir''

From: aric@fore.com (Aric D. Blumer)
Fixed bug in compare_subject() [sort.c] where the call to compare_date() should
have had arguments of double-pointers instead of just pointers.

From: kalt@hugo.int-evry.fr (Christophe Kalt)
weeding was not turned on by default when opening a new mailbox.

\r is now bound to select-entry in generic_bindings()

From: tom@ankh.fr.eu.org (Thomas Parmelan)
-fixed error in mutt_pipe_message() where the length of the message was
 calculated wrong.
-added missing break statement in ci_main() when changing to a folder that
 does not exist.
-added check for NULL return from rfc822_cpy_adr() in make_from() [hdrline.c]

Fixed bug in complete.c where it was impossible to complete subdirs of $Maildir
when using the '=' or '+' shorthand notation.

Backslash escapes now work inside strings in muttrc statements (e.g.,
set in_reply_to="foo \"bar\" baz")

previous-line in internal-pager was causing the message to scroll back two
lines instead of just one.

Increased size of buf[] in mutt_make_string() to HUGE_STRING.

Do not print messages about charset compatibility when writing the message to
a file when replying.

Fixed the alias code so that aliases like
	alias me me (The Big Muttster)
are not ignored.

Fixed bug where Mutt would segfault in make_from() if there is no TO header
field and the message originated from you.

Cleaned up compiler warnings on SunOS 4.1.x

A null search string will not advance to the next message.

It is now possible to abort from any of the alias-menu prompts.

Added additional locking code to make it work better over NFS, even if fcntl()
does not work properly.

clear() is too clever for me.  I now use erase(), which writes spaces to
every cell on the screen.  This change is required because redraw-screen
did not clear all of the screen when it redraws.

Fixed bug where backspace would abort the save-message prompt.  Always remember
to use an "int" instead of "char" to get the return value from ci_getch().

Changes from 0.39 => 0.40
-------------------------
From: leitner@xorn.prz.tu-berlin.de (Felix von Leitner)
Fixed bug in keymap_init() where memset() was used to clear the Keymap
array, and was called with an incorrect size.

From: tom@ankh.fr.eu.org (Thomas Parmelan)
Fixed is_from() to recognize lines with an extra timezone field, e.g.
	From xxxx@yyyyyyy.fr Wed Aug  2 00:39:12 MET DST 1995

Added pause after encrypting with PGP so the user can read the PGP output
before the message is sent.

From: roberto@keltia.freenix.fr (Ollivier Robert)
fixed typo in pgp_encrypted_handler()

Fixed bug where folders were not getting set to all lowercase when
``force_name'' is set.

It is now possible to change the color of the ``toolbar'' and ``indicator''
(horizontal bar which indicates the current message) and ``attachment''
(the ``[Attachment #N: ...]'' message) with the ``color''
command.

Added the ``shell'' variable, to control which shell to invoke when creating
a subshell

Added the ``invoke-subshell'' binding (default: ``!'') in the main index menu
to invoke a subshell from Mutt.

Messages displayed while loading a folder are cleared when loading is complete.

It is now possible to abort the sort menu by typing control-G (^G).

Mutt will automatically add a ``Reply-To'' header field if the environment
variable $REPLYTO is set.

New variable ``pgp_autosign'' (unset by default) which causes Mutt to PGP/MIME
sign all outgoing messages.

Mutt now displays a summary of how many messages were kept and how many were
deleted when a folder is synchronized.

Mutt now updates the number of messages and new messages in the ``Folder:''
display when new messages are received.

Fixed bug where attachments were not being decoded before calling metamail
from the attachments menu.

Fixed bug where Mutt would crash when attempting to synchronize a read-only
folder.

ci_any_key_to_continue() now outputs "\r\n" instead of just "\n" after
getting a keypress.

The ``display-headers'' binding now toggles header weeding, so you can press
the key bound to it while displaying a message (no need to go back to the
index menu).

The ``show_host'' variable now prints ``user@host'' instead of just the host.

From: aric@fore.com (Aric D. Blumer)
Fixed bug where Mutt would crash if you tried to limit the display to "tagged"
after tagging some messages.

``middle-of-page'' now moves the the middle entry on the screen instead of the
real middle of the screen.  Thus, if your screen has ten lines, but only
three entries, the cursor will be moved to entry two.

pipe-message now passes the raw message (as it appears in the mailbox) to
the specified command.

Fixed bug in internal-pager so that the search doesn't always match the
same line.

renamed append_file_to_folder() to mutt_folder_cc() and modified it to add
a "Status: RO" line to the header.  This will make the mailbox of outgoing
messages appear to be read.

copy_message() will now only add a Status: header field if the message needs
one (i.e., the message has been read or is old)

changed make_from() to copy only the first entry of the "TO" list to avoid
buffer overrun.  Unless the user's screen is extremely wide, you wouldn't
normally see more than the first address anyway.

new functions ``jump-new'' and ``jump-unread'' which jump to the first new
and unread messages, respectively.  jump-new is bound to <Tab>, jump-unread
is NOT bound.

new variable ``mark_old'' which controls whether or not Mutt uses the "O"ld
flag (set by default).  When set, Mutt will distinguish between old unread
messages and new unread messages.  jump-new always moves to the first new
unread message.  If mark_old is unset, there is no distinction, so jump-new
always positions on the first unread message.

fixed problem where the "folder <path> does not exist" error message was
getting written over the "opening <path>..." message when on a non-xterm.

removed the "Mutt has completed" message because it is no longer necessary
now that I've fixed the above problem, and Mutt now prints a summary of the
state of the mailbox when it's closed.

mutt now does sleep(1) just before exiting so you actually have a chance to
see the final message when closing a mailbox.

Changes from 0.38 => 0.39
-------------------------
When asking about a postponed message, clear the line if the user answers
no, otherwise the prompt for addresses looks garbled because it has
trailing garbage after the prompt.

Moving to the previous page using "previous-page" will cause mutt to make the
first message on that page the current message instead of the last.

From: pms@romance.kaist.ac.kr (Park Myeong Seok)
Patch to support input of Chinese/Japanese/Korean characters, which use
two bytes per character instead of one byte like US-ASCII and its supersets.

curs_lib.c includes mutt.h before anything else so that config.h will have
been included before testing for inclusion of <sys/param.h>

From: nnd@wint.itfs.nsk.su (Nickolay N. Dudorov)
fixed error for converting "\cX" to a control char in bind.c

Mutt will no longer ask you if you want to use the reply-to address if it is
the same as the From: address.

Mutt now moves to the last line and clears it before calling endwin() so that
any final messages are not written over whatever was on the screen, and the
cursor should always end up in the leftmost column.

Fixed problem in mygmtime() where july had the wrong number of days in the
month (30 instead of 31).

Mutt now exits if you synchronize a folder with all messages deleted.  This
protects againsts a coredump.

read_rfc822_header() now uses Fqdn instead of Hostname as the default host
for rfc822_parse_address().  Unqualifed addresses were not getting fully
qualified when replying because of this.

Fixed bug in ci_send_message() which was causing the ``edit_hdrs''
functionality to behave oddly, even dumping core at times.

``honor_length'' is now set by default.

Changed Hostname => Fqdn in read_rfc822_header() so that we don't have to
expand it later when replying.

From: ollivier.robert@eurocontrol.fr (Ollivier Robert)
The number of lines was displayed as -1 if there are 0 lines in a message.

Fixed bug where:
	set editor= "vim"
would set "string" to be a null string.

From: nnd@wint.itfs.nsk.su (Nickolay N. Dudorov)
Extended tag-pattern function to include TO: and CC: header fields.

sort-subject now ignores ``Re:'' so that replies end up near the original
message.

mutt_default_savename() now converts all chars to lowercase.

From: David DeSimone <fox@mailhost.rsn.hp.com>
-Patched mutt_addr_is_user() to return 1 if the argument is NULL (this means
that messages with no ``from'' header field will be assumed to be from the
user, which is how ELM saves outgoing messages).
-Also, ``*'' may be used as a wildcard in the ``alternates'' command to match
all hosts in a given domain (e.g., ``alternates me@*.cs.hmc.edu'').

``mutt -h'' now is more verbose and gives a short explanation of flags.

fixed bug in mutt_free_body() where it was not calling itself on the
``parts'' field of the argument.  This had the side-effect of not unlinking
temp files after sending a message.

new variable ``tmpdir'' to control where Mutt places temporary files.

the sync-folder command now only synchronizes the folder if it has actually
been modified.

It's now possible to select a range of messages any time a pattern is asked
for (Example: Tag messages matching: 1-20)

Changes from 0.37 => 0.38
-------------------------
Fixed typo (Syncronizing => Synchronizing)

The screen was not getting redrawn properly when saving a message while it
is displayed.

The variable used to store the name of the folder last saved to was not
initilialized.  I had to make it a (static) global variable.

Fixed bug where Mutt would segfault when trying to list all of the keybindings
in send-menu.

Fixed typo in htmldoc/variables.html where <b> should have been <p> in the
section on "sigdashes"

From: David O'Brien <obrien@Nuxi.cs.ucdavis.edu>
Patch for BSD systems.  Use "#ifdef BSD" after including <sys/param.h> to
detect BSD systems instead of looking for __FreeBSD__, __NetBSD__, etc..

Added "charset" to the list of user configurable variables.

Fixed some problems with the generic menu code [menu.c] so that moving back
and forth between pages doesn't mess up the screen.

Created ci_getch() which is a wrapper around getch() to handle SIGWINCH
better.  This still doesn't work though.  getch() always returns ERR after
a SIGWINCH (/usr/5lib/libcurses.a on SunOS 4.1.3).

New muttrc variable: floating_prompt (set by default).  When unset, Mutt
will always place the prompt in the internal pager at the bottom of the screen
instead of placing the "(END)" prompt after the last line of the message.

From: ollivier.robert@eurocontrol.fr (Ollivier Robert)
Patch to sendlib.c to automatically make .tar, .zoo, .zip and .tgz
application/octet-stream.

new variable "post_indent_str" which has the same function as in MUSH.  This
string gets appended after each message which is included in a reply.

It's now possible to display the number of lines in a message in hdr_format
using the "%l" sequence.  You MUST have "unset honor_length" in your .muttrc
for this to work.  Otherwise, all messages will look like they have zero
lines!

Changes from 0.36 => 0.37
-------------------------
Changed Hostname => Fqdn in calls to rfc822_parse_adrlist() in 
read_rfc822_header() [parse.c]

fixed problem where the display would get out of sync with the current message
when first displaying the index of a folder that contains more messages than
fit on the screen.

Now possible to bind \n and \r in .muttrc

fixed error in configure.in for detecting the "share" directory

added a quick check to prevent an infinite loop when expanding aliases that
are the same name as a local user.

added new muttrc var "sigdashes" (set by default) which controls whether or
not Mutt adds the "-- \n" before appending the user's signature file to
outgoing messages.

mutt_copy_message() now calls copy_message() so that the in-memory status of
a copied message is preserved.

fixes for systems where mail is spooled to the home directory.
use: configure --with-homespool=FILE, where FILE is the name of the spool
mailbox relative to the user's home directory
(e.g., configure --with-homespool=mailbox, means that Mutt will assume that
~/mailbox is the spool mailbox).

mutt_yes_or_no() was not using CI_is_return() to check for the <return> key.

fixed bug in parse_messageRFC822() where the length of the contained body
part was always getting set to zero.  I added some code to actually calculate
the length if the content-type is something other than message/rfc822 or
multipart/*

Changes from 0.35 => 0.36
-------------------------
Initial bindings for k and K in the internal pager were swapped.

From: Thomas Parmelan <tom@ankh.fr.EU.org>
	Here's the  hack for "m"  plus fix for the  problem with "my_hdr
	From:" and fullname being forgotten  after one mail has been sent  I
	reported some time ago.

Added ability to abort with ^G in the save-message and the To: prompts.

Fixed bug where Mutt was not prompting for a command after invoking the
external pager.

Changed $(install) to $(INSTALL) in Makefile.in

Better handling of printing keybindings.  Displays <return> and <space>
instead of just printing the actual character to the screen.

configure will no longer add -I/usr/include to CPPFLAGS when using
'--prefix=/usr'

From: florian@jurix.jura.uni-sb.de (Florian La Roche)
	-Fixed bug in configure.in where the test for gcc to add -Wall was
	not quoted so that if the environment variable CC contains a space
	(like: setenv CC 'gcc -O6') configure would bomb out.

	-pager.c and search.c should include <regex.h> under Linux.
	configure now checks for this header.

"struct flock" under linux doesn't have as many fields as under Solaris.
Luckily, the first four are the same, so the initialization in the declaration
can be reduced to just the first four fields.  gcc doesn't complain about
this with -Wall, so I assume it's kosher.

Filename completion (NEW)
	You can hit <tab> or <space> when entering a file/mailbox name to
	automatically complete as much of the filename which is unique.
	The completion routine also understands the '=' and '~' shortcuts.

Fixed configure so that it properly detects the "share" dir for arch
independant files (Muttrc).

configure now checks for the availability of termname()

From: "David E. O'Brien" <obrien@Nuxi.cs.ucdavis.edu>
	Some xterms/X-11's send '\r' for <enter> rather than '\n'.  My Solaris
2.5 box is one example of this.  So both '\n' and '/r' should be used for
<enter>.
[I now use the macro CI_is_return() to test for the <return> key. -me]

tabs in subject lines of messages are now converted to spaces so that the
index display doesn't get messed up. [mutt_tabs_to_spaces(), lib.c]

Added missing break statement in mutt_sort_headers() which was causing sorting
by size not to work.

It was impossible to bind a key to undelete-message in the pager.

Fixed bug where Mutt would segfault if the argument to the "source" command
did not exist.

Changes from 0.34 => 0.35
-------------------------
Fixed bug where temp file would be left when syncing a folder and no messages
were left.

Fixed typo in htmldoc/install.html

Added missing "break;" in case statement for OP_SEND_EDIT_HEADERS in send.c

Fixed broken "#ifdef ISPELL_PATH" in keymap.c.  It should be just ISPELL.

Changes to configure.in to fix some problems with the code for determination
of world-writability of the mail spool dir.

Added OP_MAIN_FORGET_PASSPHRASE to make Mutt forget the cached PGP passphrase.
Useful for when you've screwed up typing it in.

search command (/) in index menu has changed.  now you just type a string
and Mutt will search the Subject: and From: line of each message.

configure now checks for regex() and re_exec() which are used for searching
in the internal-pager and index-menu

USE_DOTLOCK is only defined if WORLD_WRITABLE_SPOOL or USE_SETGID is
defined.

Added mark-as-new command (default: N) to make the current message
new again.

Added flag-message command (default: F) to toggle the flag (!) on a
message.  This flag is saved across sessions of Mutt.

Message postponement (NEW!)
	It's now possible to save a message for later editing.  The Muttrc
	variable "askpostpone" controls whether or not Mutt will ask you if
	you want to postpone a message when you choose not to send a message.
	You can also directly postpone a message by typing "P"
	(postpone-message).

	Postponed messages are saved in the folder ~/postponed by default, but
	you may override this value by setting the Muttrc variable "postponed"
	to the appropriate pathname.

When copying/saving a message, you can enter a period (.) for the filename,
which is an alias for the last folder you saved/copied to.

mutt_expand_path() now takes a single argument.  Global path variables are now
expanded once after the .muttrc is read.

Bye-bye to the "Command:" prompt in the main-menu.  Mutt has been slowly
diverging from looking like ELM in that respect.  Most of the commands don't
bother to say what they are because the prompts are self-explanatory.  This
gives room for an extra line of headers.  :-)

The generic menu looks a little different.  Line are no longer hilited all
the way across the screen.  Instead, it looks more like the indicator from
slrn with just a hilited arrow (->).  This saves quite a bit of work in
formating and redrawing.

is_from() now accepts lines which do not contain the return-path as the
second field.  This is accomplished by checking to see if the second field
is the name of the day of the week.

Added code so that the "top" command works in the internal-pager.

New variable "askreplyto" which if set asks you if you want to use the
address listed in the Reply-To header field when replying to a message.

Added an "unignore" command to remove headers from the "weed" list.

Makefile.in now uses @CPPFLAGS@.  This gets rid of the need for the
CURSESHDIR definition since configure adds it to the CPPFLAGS.

configure adds -I/usr/5include when compiling with /usr/5lib/libcurses.a
on SunOS 4.x

Included "mkinstalldirs" script so that installation won't bomb if an
installation directory does not exist.

mutt_expand_aliases() now attempts to look up the user's real name if the
address is local.  This used to work but apparently has been broken since
I changed the handling of local addresses.

mutt_sort_headers() now uses the qsort() function instead of my own code.

bounce-message now asks for confirmation after expanding the destination
address before sending the message.

Changes from 0.33 => 0.34
-------------------------
Fixed broken proto for addRandomSignature() in send.c

Removed extra newline in printf() for Resent-Date: in mutt/send.c

Fixed bug where the var ``buf'' was not cleared before calling
rfc822_write_address().

"personal" field stripped from addresses when bouncing mail
[ mutt/curs_main.c, ci_bounce_message() ]

New variable "show_host" which if set will display the hostname of the
machine you are on along with the folder name.

The ignore and "mailing-lists" lists are no longer stored as concatenated
strings.  I now use a linked list to store the values.

Removed empty default: in switch() statement in headers.c.  The Convex
compiler was barfing on it.

down arrow key now works like 'j' in the pager.

process_command() was removed and mods made so that ci_main() now handles
both the main index menu and any commands returned from the pager.

From: holzmann@fmi.uni-passau.de (Andreas Holzmann)
> I've changed lib/init.c so that mutt pays attention to the MAIL environment
> variable. The corresponding changes in lib/fileio.c prevents mutt to save
> the inbox to the inbox (MAIL could be set to ~/mbox or to whatever mbox is
> set; mbox could just so be set to /var/spool/mail/<username>)
> No need for doubleing the mails :)

mutt_sync_mailbox() was heavily modified and is much improved.
-configure now determines whether or not lock files can be written in the
 spool directory.
-no longer uses rename() to move the new version of the mailbox back to the
 original place.  Instead, the file is opened read-write and copied back
 into place and then truncated.  This allows the code to work under ConvexOS,
 and fixes the broken locking mechanism for other machines (disastrous things
 could happen if USE_DOTLOCK was not defined).

Fixed screwup where I forgot to include Andreas Holzmann's patch to fix
the "permission denied" error when trying to save to a folder that doesn't
already exist.

anon remailer support disabled until I get a chance to fix it.

Changes from 0.32 => 0.33
-------------------------
pattern_match() should no longer segfault when searching by subject and it
hits a message with no subject.

Mutt will now print a newline after calling endwin() which will for the
prompt to return to the leftmost column even under VT100's.

configure now checks for gcc before using the -Wall option.

Fixed typo in toplevel configure script for the --with-cursesinclude=DIR
option.

Put an #ifdef around the use of DOMAIN in lib/init.c to protect against
the case where the domain name couldn't be determined.

From: holzmann@fmi.uni-passau.de (Andreas Holzmann)
1) lib/fileio.c (line 78)
   access() fails if folder doesn't exist, therefore it is not possible
   to save mail to a new (nonexistent) folder.
2) mutt/curs_main.c (line 612 and line 888)
   help (when pressing the '?' key) isn't displayed if there are no messages.
   (I just moved the help-code above the 'if (!Context->vcount)' line.
3) mutt/send.c (line 214)
   cancel send if user don't give a to-address
   if you press <return> here you got a recipient named '\n'
4) mutt/sendattach.c (line 129)
   do a path expansion when loading a attachment-file (mainly for
   expanding the ~ to the homedir).

From: Thomas.Parmelan@efrei.fr
I noticed "i:" was already present in the call  to getopt but not used, and
there was a "*inc" argument  to ci_send_message  that was  not used.  As  I
miss the  "-i file" option I  had with elm,  I just tried  to implement it.

New option "mime_forward" controls whether or not forwarded messages are
included as attachments (set) or included in the editor buffer (unset) like
ELM and PINE do.

From: fox@mikey.convex.com (David DeSimone)
Fixes to allow Mutt to compile under Convex OS.

Changed a lot of "unsigned char" to just plain "char" in rfc1522.c to
avoid warnings from pickier compilers since "unsigned" wasn't really
necessary.

changed AC_PATH_PROG(PGPPATH, pgp, no) to AC_PATH_PROG(PGP, pgp, no) in
configure.in to prevent it from trying to pick up the environment variable
PGPPATH which is used by PGP to determine the location of keyrings.  In
addition, _PGPPATH is now the location of the "system" PGP binary.

I am no longer assuming that ncurses can be found in the $prefix dir.
libncurses must be installed someplace where gcc (ld, really) can find it.
configure will do a check for $prefix/include/curses.h and assume that
it's NCURSES include file if found.  If your NCURSES include file lives
elsewhere, you will need to use the "--with-cursesinclude=DIR" option
when running configure.

Fixed bug where I forgot to clear the "remail" flag in mutt_new_header()

pipe-message now exits curses before running the command, and prompts to
return to the index menu when it (the command) has completed.

Aliases should now work when bouncing messages.

From: holzmann@fmi.uni-passau.de (Andreas Holzmann)
Fixed bug where Mutt would segfault when trying to display the index line
for a message which had no From: header field.

Changes from 0.31 => 0.32
-------------------------
added +batchmode flag to PGP call in application_pgp_handler()

fixed bug in date parsing code in which "jun" was improperly detected resulting
in Mutt reporting "Jul" in the index menu.

mutt now looks for bounced mail (resent- headers) and reports the flag "B"
in the index menu.  [EXPERIMENTAL]

mutt_make_string() now understands printf() precision fields!

New user variable "hdr_format" which allows users to customize the message
index display!

Added a "pgp" variable for those who don't trust their sysadmin and have
their own copy of PGP.  :-)

Mutt now prints a "usage" string when it encounters a command-line option
it doesn't understand.

Mutt now display how many new messages along with total are in the current
folder.

Fixed bug where I forgot to null a string before calling ci_get_field().

Fixed bug in edit_envelope() where the Subject: prompt was not always
put on the left side of the screen.

Mutt now says "Mail sent." again.

Removed the "synchronizing folder..." message.

Locking code cleaned up to remove unnecessary open() calls.

Removed check for blank lines when replying to message and inserting a
prefix.

If arrow_cursor is not set, there will no longer be a -> in front of the
current message.  This gives a little more room on the line for real
info.

Fixed problem where I forgot to update the expand_path() to mutt_expand_path()
in signature.c.

Fixed bug in rfc822_toklen() [rfc1522.c] which caused an endless loop.

Random sig code can be activated while running configure by giving it the
--enable-random-sig flag.

To untag all messages, you can now use tag-pattern "none".

Fixed bug where the current message would be saved multiple times with there
were messages tagged.

Pressing movement keys when editing the default filename for saving a message
will no longer erase the default.

Removed X-code from dist.  xforms will not be able to support Mutt the way
I would like (the lack of a text widget with scrollbars is the major
reason).

Fixed bug where forwarding a message would cause Mutt to segfault.

Changes from 0.30 => 0.31
-------------------------
The display-headers (h) command works again.

send-menu now prints an error message when the user types a key that isn't
bound to a function.

Fixed broken save command (it was neither deleting the message nor advancing
to the next undeleted message).

Fixed error in parse_bind() where I forgot an "else" keyword, which causes
the bind command to report errors which are not really errors.

The Apparently-To: and Apparently-From: fields are now parsed.

Fixed bug where I forgot to null a string before calling ci_get_field()
for the pipe-message command.

Fixed bug in comes_before() where it was possible to call strcasecmp()
with a NULL argument.

Fixed random_sig code in send.c where I didn't patch correctly.

If there are no new or old messages in a mailbox, Mutt will make the
last message received the current message.

When saving a message, you no longer have to delete the default filename
before entering a new filename.  You can simply start typing a new filename
and it will automatically erase the default.

Mutt now supports batch sending (e.g., you can now do: "mutt user@host < file")

Fixed bug where Mutt would segfault if a message had no From: address and
the user had "reverse_alias" set.

-Added vi-keys (jkhl) to generic_bindings()
-Fixed typo in menu.c
-Fixed error in configure.in when domain field is not found in /etc/resolv.conf
-prompt after external pager was not calling keymap_lookup()
-fixed bug in help_menu() where the index to Keymap[] could be greater than
 MAX_KEYS when typing an arrow key, for example.
From: holzmann@fmi.uni-passau.de (Andreas Holzmann)

Fixed bug in application_pgp_handler() what caused Mutt to hang when trying
to decrypt.

Fixed bug in save_to_folder() where I was not adding the newline that
separates messages.  Luckily Mutt is pretty good about still being able
to parse such things.

Lots of code rearragement.  I'm separating out the core Mutt functions from
the curses interface so I can write a "xmutt" client using the xforms
package.  [If you have the xforms package, you can take a look at my .fd
file with fdesign to get an idea of what the GUI will look like.]

Added USE_DOTLOCK and USE_FCNTL as options in config.h so you can disable
them if you like (not recommended).

internal-pager now honors the previous-line binding.

You can now "set domain=foo.org" in your .muttrc files.

Changes from 0.29 => 0.30
-------------------------
Fixed jump command in main-menu.

alias_menu() returns 0 if no aliases are defined to prevent coredump in
the menu code.

"my_hdr From: user@host (personal name)" now works properly.  In previous
versions you could end up with two From: lines, or if edit_hdrs was set,
a from: line with two addresses in it.

send-menu now uses the keymap code.

screen now gets properly redrawn after using the folder-menu from the
copy/save prompt.

delete/undelete no longer pay attention to tagged messages.  Use
delete-pattern (D) and undelete-pattern (U) with a keyword of "tagged"
instead.

changed mutt_search() into pattern_function() to support the various
operations on messages matching a pattermn.

Added "force_name" variable to make Mutt save outgoing messages in a folder
that corresponds the the mailbox portion of the first address in the TO:
field.

configure now looks for /usr/5lib (SunOS 4.x) if libncurses is not found.
[NOTE: NOT TESTED.]

control-g will abort out of the line-editor (good for quickly exiting
the mail/reply/save prompts).

Fixed badly broken PGP/MIME decryption routine.

The tag command now automatically advances to the next message, ala
delete/undelete.

Added "keep_empty" option which if set will cause Mutt not to unlink files
which have zero messges.  DEFAULT: unset

Fixed to allow binding of alias-menu in init.c.

Fixed problem with saving messages to a non-existent folder when SETGID
is defined.  It was giving "Permission denied" errors when it shouldn't
be.

In attach-menu:
-fixed so that the first attachment is labeled #1.
-fixed bad looking screen when prompting for save filename

Added "random signature" hack.  You must manually define ENABLE_RANDOM_SIG
in config.h for this to work. (NOTE: I have not personally tested this.
Report problems to Ken).
From: kenw@ihs.com (Ken Weinert)

Fixed some documentation errors.

Changes from 0.28 => 0.29
-------------------------
modified rfc822_write_address() to output addresses of the form:
	user@host (personal name)

removed line for installing mutt.help from the "install" target in
Makefile.in.

folder-menu is now pumped up on steroids.  You can traverse the directory
tree, plus there is now a toolbar for using the mouse.

folder-menu can be accessed from the Save/Copy command by entering "?".

fixed typo in configure.in which was effectively cause the --with-cursinclude
option to be ignored.
From: Mark Holloman <holloman@nando.net>

safe_malloc() and safe_realloc() now do the "right" thing when 0 bytes are
requested.  This was causing problems for OSF3.1 (DEC Alpha).

generic menu API created since I had written the same menu code in three
different places.  Now the alias, folder, and attachment menus all use the
same core code.  Very nice, IMNSHO!

toolbar structure and keybinding structures were modified so that each
function from all the menus has a distinct numerical value.  This was
needed to avoid collisions after creating the generic menu API.

users can now modify the "From:" header when edit_hdrs is set.

added an "addressbook" to view aliases.  this can be accesses initially from
the "To (? for aliases): " prompt when mailing/forwarding, or via the
(v)iew aliases option from the send menu.

'E' in the send menu will now cause mutt to edit the message with its headers
even when edit_hdrs is not set.

putc => fputc to remove warning errors under SunOS 4.x.

Changes from 0.27 => 0.28
-------------------------
strings.h => string.h in rfc822.c

Fixed wrong variable name (sb should have been statbuf) in sync_mailbox()

No longer use <CR><LF> for MIME generating code.  PGP call now uses the
'-t' flag.

mutt_matches_ignore(lib.c):
     bad math on an alpha
            sizeof(char *) == 8 
            sizeof(int)    == 4 
            changed len to size_t and the casts on line 183 to size_t
            from int
From: kenw@ihs.com (Ken Weinert)

Fixed problem where the "current message" would change when new mail
arrived in the folder.

Better checking for the domain in /etc/resolv.conf.

configure checks for /usr/mail (HP-UX) as a spool directory.

configure will exit with an error message if it can't find the spool dir.

Mutt will now pause after reading the rc files if errors were found.  This
gives the user a chance to actually read them.

source_rc() now prints the filename along with the line number in all
error messages.

Added the keybinding mechanism.  See htmldoc/bind.html for info.

save-message and copy-message are now accessible from the internal-pager.

rearranged when the mailbox gets locked so that check_mailbox() shouldn't
fail quite so often.

Moved the much duplicated byte-copying code to copy_bytes() in lib.c.

added the list-reply command which searches the to: and cc: header fields
for addresses matching those defined in the user's set of mailing lists.

Changes from 0.26 => 0.27
-------------------------
Fixed problem in parse_mailbox() where the content-length of the last
message of the (sorted) headers would get screwed up when new mail
arrived.

Fixed bugs in select_sort_method() where it was impossible to sort by
Date-Received, and the sort method could become invalid since
SORTMASK was greater than the maximum valid value.

Combined sync_mailbox() and checkpoint_mailbox() into a single routine.

Added the "askdelete" and "askmove" variables.

Long Reference: lines are now wrapped.

changed MIXMASTER to MIXMASTER_PATH because the environment variable
$MIXMASTER is used by mixmaster itself, and was screwing up configure.

Added "reverse_alias" user config variable.  If a From: line does not
contain a personal name, Mutt will look and see if there is a user alias
which matches and then uses its personal name if it finds one.

Updated rfc822.c and rfc822.h from the IMAP4-BETA distribution, which is
dated April 8, 1996.

is_from() now returns the date (in seconds) for a valid message separator,
which is made use of for sorting messages by date-received (SORTORDER).

sort_headers() now resets the virtual=>real message mapping so that jumping
to a message now works correctly.

Fixed the application/pgp handler.  It was hanging on encrypted messages
because I was not sending the cached passphrase the the subprocess.

New variables "askdel" and "askmove" which control whether or not Mutt
asks you to confirm whether or not you want to keep deleted messages and
whether read messages should be moved from your spool mailbox to your
"mbox".

sync_mailbox() now resets the access/modification time of the folder after
moving the new folder into place.

Changes from 0.25 => 0.26
-------------------------
Fixed problem with bounce() code where the address needs to be quoted when
sendmail is invoked via system(), otherwise some of the characters can be
interpretted by the shell.
From: olsenc@ichips.intel.com (Clint Olsen)

sync_mailbox() now resorts (if required) the mailbox to be in date-received
order before writing out the mailbox.

fixed makefile so that "make install" works if you compile in a subdir.
From: skimo@dns.ufsia.ac.be (Sven Verdoolaege)

added SORTORDER (date-received) as a sorting method.  Mutt now resorts with
this method before writing out a mailbox so that messages will stay in
the proper order.

Really fixed the no subject causes coredump when forwarding!

hitting space while at the end of a message in the internal pager will now
automatically display the next message.

fixed bug in folder_select() where I had added '|| KEY_PPAGE' instead
of '|| c == KEY_PPAGE' which caused that statement to always be true.

improved alias handling.  I use "@" as the default hostname for
rfc822_parse_adrlist() so I can easily detect addresses that had no
hostname.  (This idea was stolen from Pine.)

Changes from 0.24 => 0.25
-------------------------
Fixed bug in process_command() where the bounce command was screwed up so
that it would loop endlessly.

mutt.help and Muttrc moved to $sharedir instead of $libdir to be
SysVr4 compliant.

-added check for top < 0 in folder_select() when going back a page.
-fixed typos in the html documentation.
From: finken@conware.de (Michael Finken)

added check for NULL from pointer in display message.

sort_headers() is now called from parse_mailbox() so that the headers are
resorted whenver new mail is received.

fixed problem with virtual message mapping after sorting headers.

added error message when mutt can't understand the requested sorting method
in an rc file.

invoke_metamail() no longer calls ci_any_key_to_continue(), since metamail
is invoked with "-P".  This was causing the user to have to hit a key twice
to get back the index.

added more movement keys to the folder_select() routine to make it easier
to use.

Changes from 0.23 => 0.24
-------------------------
Fixed another memory leak in which I wasn't de-allocating the whole HEADER
structure in close_mailbox().

Fixed bug where the help file would get removed when viewed if the user had
permission to do so.

Reduced the number of usable chars for a Multipart boundary.

Fixed bug in internal pager where a blank line would appear between two
parts of a wrapped line under Solaris 2.5 curses.

configure now checks for -lncurses, and then defaults to -lcurses if not
found.

Mutt now generates a "References:" header when replying to messages.
This is infinitely more useful than the "In-Reply-To:" header, which
is often not computer parseable.

Fixed problem where the In-Reply-To header would never get generated when
"edit_hdrs" is set.

Added a newline before the "sigdashes".

folder_select:
-increased max number of entries to 255.
-added checking to make sure that no more than the max entries are read.
              
Added check for NULL return of getgrpnam("mail") in main().

Added support for a system-wide Muttrc.  "-n" inhibits mutt from reading the
system file.

TEXT/PLAIN attachments can now be viewed from the "Attachment" menu.  Other
types of attachments will use metamail, if availible.

Added the "sort" rc command.

Modified the "sort menu" inside of Mutt.

metamail is now invoked with the "-P" option to cause it to page the output
when displaying a message.

Changes from 0.22 => 0.23
-------------------------
configure now checks /etc/resolv.conf to get the DNS domain name.  The
call to gethostname() has been removed. [Thanks to Felix von Leitner
for the suggestion!]

USE_DOMAIN is defined by default if the domain was successfully
determined.

The HTML documentation is now distributed along with the source.

DEL (ASCII 127) is now accepted in ci_enter_string() as a synonym for
KEY_BACKSPACE.

Fixed "Attach File" menu where the content- headers could wrap around the
end of the line.

Added "pointnew" rc var.  It is set by default and controls whether or not
Mutt looks for the first new message in a folder when it is opened.

Added code to wrap long Content-Type lines.

Fixed memory leak where multipart and message/rfc822 messages were getting
parsed every time the message was displayed, thus allocating a new
memory structure.

If the subject is longer than the width of the screen, the end of it will
be chopped off in the display at the top of the message.  The full subject
will still be visible with the headers.

Tempfiles have shorter names.  They needed to be because PGP has trouble
when you call it on a file with too long of a filename!

Improved logic for moving messages from the spool folder the mbox folder.
Mutt will no longer bother to open the mbox folder if there are no read
(and undeleted) messages left in the spool folder.  The main noticeable
difference is that it will no longer print the message saying that it's
moving unread messages where there are none.

Mutt will no longer prompt for the TO: and SUBJECT: fields in replies when
edit_hdrs is set.  Instead, it will proceed directly to editing the
message.

srand48() call moved to main because new_tempfile() needs to use it.

(q)uit added to the attachment menu help list.

Fixed bug where you could not delete user-defined headers in edit_hdrs()
once they were added.

Fixed segfault when forwarding a message with no subject.
From: skimo@dns.ufsia.ac.be (Sven Verdoolaege)

Fixed problem where jumping to messages after sorting did not work
correctly.  Instead, you'd jump to the message that _used_ to have that
number...

Changes from 0.21 => 0.22
-------------------------
Fixed bug where I forgot to clear the "read" bit in new_header().

Altered the logic for selecting the new "top" message in the index menu.
The last message of the previous page was always getting displayed as
the first message on the next page.

Fixed stupid mistake where I copied the GECOS field even after I copied
the string and whacked off the non-realname part.

Fixed the "sync folder" command.

Clear the "use_disp" bit in MULTIPART messages, otherwise you get a toplevel
"Content-Disposition" header...

The "askcc" option is back.

"hold" is set by default, now.

"allow_8bit" is set by default, now.

mutt will now be installed setgid mail if needed.
From: Felix von Leitner <leitner@xorn.prz.tu-berlin.de>

<SPACE> now displays the current message in the Index menu.

install-sh was not executable.
From: kenw@ihs.com (Ken Weinert)

Redraw the screen after a forward.
From: skimo@dns.ufsia.ac.be (Sven Verdoolaege)

configure checks for the getdomainname() call.  It is still necessary to
#define USE_DOMAIN by hand since many systems do not require this, and
also since getdomainname() is broken on some systems.

Added "header" rc var which, if set, includes the headers of the message
which you are replying to in the body of the message.

lock_file() will prompt the user to remove the lock file after the max
number of iterations have occured.

Changes from 0.20 => 0.21
-------------------------
Fixed a few problems in the sending code where I used Hostname instead of
Fqdn for expanding addresses.  This was causing aliases not to work in
unexpected ways.

Fixed <PageUp> and <PageDown> keys in the index menu so that they work
as expected.

Made small change to configure script to add the curses include dir
specified by the user to the CPPFLAGS.
From: skimo@dns.ufsia.ac.be (Sven Verdoolaege)

Fixed problem where the virtual msgno was not being set on messages that
arrive in the mailbox while mutt is running.  This caused a problem where
you could not "jump" to that message.

Configure now detects if the mail spool directory is setgid mail and adds
support if it is.

Added create_filter() routine for creating a subprocess with its stdin and
stdout connected to the parent process through a pipe.  This removes much
duplication of code.

Fixed problem where deleted messages at the end of a page in the index would
seemingly disappear because of scrolling heuristics.  The side-effect of
this is that the cursor may not always appear at the top or bottom of a 
page when scrolling forwards or backwards through the index.

The help file is now actually used when "?" is typed.

Fixed more routines to use new_tempfile() instead of generating their own.

Changes from 0.19 => 0.20
-------------------------
attachments are now automatically disposition of "attachment" instead of
"inline".

Don't display attachments with a disposition of "attachment".

Long address lines are now wrapped so that they are easier to edit, and
look nicer when displayed.

Added preliminary support for Mixmaster remailers using the "mixmaster"
command.

Removed ^X command because it was unnecessary; it is still possible to
yank/paste by using the shift key...

Mouse initialization is moved to main() so that it can be used in send-only
mode as well.

expand_aliases() now looks up the personal name of local addresses if one
doesn't already exist.

Fixed bug in expand_aliases() which causes mutt to segfault if there is
more than one address and at least one of them is an alias.

merged defs for MIME and ATTACH into BODY and use it for both sending
and receiving.

moved some global vars out of mutt.h into global.h

aliases were not getting expanded after editing the message when "edit_hdrs"
is set.

added new option "arrow_cursor" which inhibits the reverse-video bar for
the current message and instead just uses "->".

bug in remove_user() was causing mutt to crash when doing a group reply.

configure no detects ncurses.h for FreeBSD systems.

added #include <sys/types.h> in front of <sys/stat.h> in various places
since it's needed by FreeBSD.
From: obrien@Nuxi.cs.ucdavis.edu (David E. O'Brien)

Changes from 0.18 => 0.19
-------------------------
Xterm mouse support can be toggled with ^X in the index menu and while
entering a string.  This allows use of the normal yank/paste operations.

The mouse can be used in ci_enter_string() to change the insertion cursor
to whever in the string that you click.

Fixes from Sven Verdooaege <skimo@dns.ufsia.ac.be>:
-it does that cursesinclude thing more cleanly
-reenables the use of the keypad after running less
-fixes a seg fault with nonexisting folders
-supports unset in muttrc
-and sets the length of a part of a multipart that is not a multipart itself

All of the boolean variables have been converted to use a single bitfield
instead of a separate int or char for each variable.

PGP support is back.  I finally figure out a good way to make an
exportable version from the PGP-ized code.  If you are a U.S. or Canadian
citizen, ask me about this.  If you are not, write some code!  :-)

Tracked down bug which caused Mutt to leave temp files from sending messages
lying around.  I forgot to set the unlink field.  Doh!

Added the folder_select() menu.  This can be accessed by hitting '?' as
the first character after getting the "Changer folder" prompt.

Mutt is now in minimalist mode: it doesn't print a content-type header if
the content-type is "text/plain; charset=us-ascii" since that's what the
MIME spec says the defaults are.

"edit_hdrs" is a new config var which allows you to edit the headers of
outgoing messages with the body of your message.

copy_message() now adds a Content-Length field if one doesn't already
exist.  This should speed up the loading of a mailbox somewhat.

set_content_encoding() is more tolerant now.  It will no longer Q-P encode
7-bit text which contains control chars in it.

added the 'Pipe message' command (key = '|').

added the "source" command to be used in the .muttrc.  It understands the
meaning of the tilde (~) character, so something like "source ~/.aliases"
is legal syntax.

Changes from 0.17 => 0.18
---------------------------
!!! Support for mouse under xterm!!!  If "xterm_mouse" is set in the .muttrc,
a toolbar will appear in the index menu.  Also, the mouse controls scrolling
in the pager.

If a Content-MD5 header is present, it will be recorded.  The MD5 check is
not yet implemented, though.

Reorganized the for() loop in ci_main() so that a single check so see if
there are any messages in the folder can be done instead of a check for
_each_ command.

Added the bounce() command to resend a message to another user.

Mutt will now automatically select a default filename when saving a message
to a folder.  If it finds one of the addresses from a "lists" command in
either the To: or CC: fields of the message, it will use that, otherwise it
will use the username of the originator of the message.

Fixed bugs in message-saving logic: (1) save_message_to_folder() was always
saving the current message regardless of its given argument, and (2) the
screen was not getting updated to show that the messages were deleted.

When setting the "real name" from the GECOS field from the passwd file, init()
will only use characters up to the first comma (,) character.

Moved command-line compile defs to config.h.

Mutt now honors the "hold" variable.

Changed action of charset_unsupported_handler() so that it displays a warning
about the charset incompatibility and then displays the message.  I often
get mail labeled with iso-2022-jp that is really just us-ascii, and it's
annoying that I can't read the message.

New variable "askcopy" determines whether or not Mutt will prompt to save
a copy of outgoing messages.

Ignore SIGPIPE.  Necessary when using an external pager which quits before
receiving all of its input.

ci_get_field() no longer NULL's the buffer that is passed to it.  This
allows the caller to send a default value.

Another big re-org of code.  All the variables pertaining to the currently
opened mailbox are stored in a global struct named "Context".  This greatly
simplifies a lot of the code since I don't have to pass that struct around
any more.

A one-line summary (from and subject) is now displayed at the beginning when
viewing a message, ala ELM.

Fixed bug where a blank RFC822 header field would be printed if the user
leaves the user-defined field blank (like after accidentally hitting "u").
From: Jrme Waibel <schrom@bart.simpson.inka.de>

Fixed problem where the first prompt for Cc: addresses in newsend_message()
was not getting processed.

The "From " separator is no longer copied in copy_header().

Minimal support for displaying Text/Enriched (RFC1563).

Fixed bad check for valid message separator.  Any line that began with
"From" was being matched.

Minimal support for display of Multipart/Alternative.

Fixed nasty bug in sort_headers where the memory for the first message
was getting clobbered instead of the pointer to the old array.

Added code to remove user from CC: list if "Me_too" is not set.

Fixed minor bug in ci_enter_string() where garbage was left on the screen
after painting the string for the first time through.

SENDER: header field is now ignored when replying.

Fixes for HP-UX in ci_any_key_to_continue().  Uses the same code as the
FreeBSD fix previously submitted.

Changes from 0.16 => 0.17
---------------------------
Fixed bug ins parse_parameters.

configure now automatically checks for where new mail is spooled.

Changed some defaults in init.c to be more in line with Mail(1).

Better charset checking when decoding RFC1522-style words so that you don't
end up with gibberish if you get mail with an incompatible charset (i.e.,
your charset is iso-8859-1 and you get something like iso-2022-jp).

Fixed some formatting bugs in the incoming attachment menu.

Rewrote Q-P encoder to take care of lines with trailing space and to protect
lines that begin with "From ".

Added charset_unsupported_handler() to print error message when a text
charset is not compatible with the display charset.

Removed MH support.

Added support for calling metamail when a content-type is unknown.

Take note of 'Reply-To' and 'Sender' headers to compose replies.

Major reorganization of sending code.

Implemented message sorting routines.

Fixed yet another bug in the rfc1522 encoder where the first letter of the
first word that contains an 8-bit character was being skipped.

Added support for a "one-time" user-defined header in the "send" menu.

Changes from 0.15 => 0.16
---------------------------
Fixed a number of bugs in the RFC1522 encoder.

Added 'h' command to display a message with _all_ of it's headers.

Added (s)ave command.

Added (f)orward command.

Honor Content-Length field in rfc822 headers.

Add some checking for the "From foo@bar" message separator since many MUAs
and MTAs don't escape lines that begin with "From ".

Fixed a bug in the rfc1522 decoder for the "B" encoding.

Fixed "bug" in the curses send menu where long lines wrapped and printed
over other fields when expanding aliases.

Changes from 0.14 => 0.15
---------------------------
Fixed big "oops" in mutt_open() where I forgot to zero a pointer after a
struct was malloc()'d...  This caused a segfault on the first call to
realloc().  This bug did not show up in either SunOS or Solaris, but it
did under Linux.

Check for "install" in configure instead of just blindly trying to use it.

Fixed some memory leaks associated with "send mode".

Changes from 0.13 => 0.14
---------------------------
Major changes in the "send mode" entrace points.  This should fix many of
the buffer overflow problems I was seeing with alias expansion.

Changes from 0.12 => 0.13
---------------------------
Patches to any_key_to_continue() to compile under FreeBSD.
From: rse@en.muc.de (Ralf S. Engelschall)

Fixed bug where Mutt would segfault when changing folders.

External pager feature is now enabled.

Added handling of SIGTSTP and SIGCONT.

Added handling of SIGINT, SIGTERM and SIGHUP for "graceful" exit.

Added a generic "mutt_exit" call so that everything can be shut down
gracefully.  This is especially important for the curses interface so that
endwin() gets called to restore the screen to it's initial conditions.
