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.
