
The following are the differences between nmh and MH-6.8.3.  UCI has
since released MH-6.8.4.  Most of the new features it adds have
also been added to nmh, but those differences are not listed here.
There are a few new features in MH-6.8.4 that are missing from nmh,
but they are primarily undocumented in MH-6.8.4.

GENERAL
-------
*) nmh has been converted to autoconf (configure) and should be
   more portable and easier to install than MH.  In particular, nmh
   will now compile on Linux.
*) All of MH's Makefiles have been rewritten for nmh.  You can now
   use GNU make without any problems.  Also, if your make supports
   the VPATH variable (such as GNU make), you can now compile in a
   different directory from the one containing the source code.
*) The source code for nmh has been substantially cleaned up.
   It now requires an ANSI C compiler (gcc is fine) to compile.
*) A new option `-version' has been added to all the commands.
*) The POP server (popd) has been removed, although client-side
   support for POP is still present.  Also nmh doesn't currently
   support some of the alternate forms of POP such as APOP or KPOP
   that are contained in MH.
*) The support for MH-style bulletin boards has been removed
   (NNTP makes this obsolete anyway).
*) Currently nmh doesn't support using shared libraries for libmh.
   This may return in the future, but is not a high priority, since
   the nmh commands are not that large, and disk space gets cheaper
   every day.

DOCUMENTATION
-------------
*) Many of the man pages have been cleaned up or clarified.
*) The mhook man page has been split into separate man pages for
   rcvtty, rcvdist, and rcvpack.
*) Added new man page `mh-draft' which discusses the nmh draft
   folder facility.
*) The various `procs' (rmmproc, moreproc, showmimeproc, etc...)
   are now documented in the "mh-profile" man page.  Many of these
   were previously undocumented.

FORMATTING
----------
*) Added a new formatting string escape %(decode) to decode and
   display RFC-2047 encoded header fields.

SEQUENCES
---------
*) The is no longer a limitation on the length of lines in the file
   containing your public sequences (.mh_sequences).  That should be
   the end of the error message ".mh_sequences is poorly formatted".

ANNO
----
*) The switch -inplace is now on by default.

CONFLICT
--------
*) Conflict now works on systems that define more
   than 100 groups.

DIST
----
*) The switch -inplace is now on by default.

FLIST
-----
*) A new command `flist' has been added to nmh, that will list the
   folders that contain messages in a given sequence (such as the
   unseen sequence).  This was a much needed command in the MH suite
   of programs.

FOLDER
------
*) `folder -all' now dynamically allocates space for folder names and can
   handle more than 300 folders.
*) `folder' now uses the standard Unix trick of looking at the number of
   links to a directory entry, in order to avoid doing a stat(2) call
   on messages in folders with no subfolders.  This greatly increases
   the speed of `folder -all -recurse' on large mail setups.
*) The switches `-header' and `-total' are more orthogonal.  The command
   `folder -all -noheader -nototal' now does the right thing.

FORW
----
*) The switch -inplace is now on by default.
*) Added switches `-dashstuffing' and `-nodashstuffing', to determine
   whether forwarded messages are RFC934 quotes (dashstuffed).
   (This corresponds to the undocumented switch "nodashmunging"
   in MH).

INC
---
*) If compiled with RPATHS, a Delivery-Date header is now added to all
   messages incorporated with `inc'.
*) Using the new format string escape %(decode), the scan lines for `inc'
   will correctly decode RFC-2047 encoded headers.

MARK
----
*) If neither of the switches -public/-nopublic are specified, then
   existing sequences will retain their current public/private status,
   instead of being changed to public.
*) The command "mark -list -sequence foo" will now indicate if the
   sequence "foo" is a private sequence.

MHBUILD
-------
*) The functionality in `mhn' to create MIME messages, has been cleaned
   up substantially, and moved to separate command `mhbuild'.
*) If given a file argument of "-", mhbuild will now accept the MIME
   composition file on the standard input, and output the new MIME
   message to the standard output.  This makes it much easier to use
   this functionality in shell scripts.
*) The switch -norfc934mode is now the default.

MHL
---
*) There is a new variable "decode" which instructs `mhl' to decode
   a component as a RFC-2047 encoded header field.

MHN
---
*) The functionality in `mhn' to create MIME messages, has been moved
   to a separate command `mhbuild'.  For backward compatibility, if
   mhn is called to process MIME composition file, it will automatically
   execute `mhbuild' for you.
*) The (undocumented) functionality `mhn -viamail' to automatically
   send multiple files and/or directories as a compressed tar file,
   has been moved to a separate command `viamail'.
*) mhn now correctly treats unknown subtypes of text as text/plain,
   as specified by RFC-2046.
*) mhn now correctly treats unknown subtypes of multipart as
   multipart/mixed, as specified by RFC-2046.
*) You can now override the default method by which mhn handles
   subtypes of multipart that are known internally (mixed, alternate,
   etc...).  Previously the behavior on these types could not be
   changed.
*) Changed the profile entry automhnproc to automimeproc
   (which has slightly different semantics).
*) mhn will now correctly identify a formatting string of "-" for
   the option -store, and send content to stdout.

MHPATH
------
*) `mhpath all' will no longer abort if the folder has more than
   998 messages.

PACKF
-----
*) When packing a folder, the default format is now `mbox' format, rather
   than `mmdf' format.  The options -mbox and -mmdf have been added to
   `packf' so you can choose the desired format.

PACKMBOX
--------
*) The script packmbox has been removed from the nmh distribution, since
   its functionality has been added to the command packf.

PICK
----
*) If neither of the switches -public/-nopublic are specified, then
   existing sequences will retain their current public/private status,
   instead of being changed to public.

RCVPACK
-------
*) The default format for `rcvpack' is now `mbox' format, rather than
   `mmdf' format.  The options -mbox and -mmdf have been added to
   `rcvpack' so you can choose the desired format.
*) Rcvpack no longer adds the field "Delivery-Date", as that is added
   by `slocal'.

RCVSTORE
--------
*) Added new switches -unseen/-nounseen to control whether new messages
   are added to the Unseen-Sequence.

RCVTTY
------
*) The option `-width' has been added.

REPL
----
*) Added new options `-format' and `-noformat'.  The switch `-format'
   will filter the message to which you are replying with a standard
   message filter "mhl.reply" which is included in the distribution.
   The switch `-noformat' will negate `-format' and `-filter', so that
   the message to which you are replying is not included in the draft.
*) Added new options `-group' and `-nogroup'.  These switches direct
   repl as to whether or not this is a group reply.  A group reply uses
   a different forms (components) file (default is replgroupcomps).
*) The standard forms files "replcomps" and "replgroupcomps" now have
   support for the "Mail-Reply-To:" and "Mail-Followup-To:" header fields.
*) The switch -inplace is now on by default.

REFILE
------
*) If an conflict occurs when using the `-preserve' switch,
   then refile will search for and use the next available
   message number above the one you wish to preserve, rather
   than aborting with an error.

SCAN
----
*) Using the new format string escape %(decode), the scan lines created
   by `scan' will correctly decode RFC-2047 encoded headers.

SHOW/NEXT/PREV
--------------
*) Added new options `-checkmime' and `-nocheckmime' which allow you
   to enable and disable the test for MIME messages.
*) The "mhnproc" profile entry has been changed to "showmimeproc".
*) Added `-showmimeproc' switch to specify the showmimeproc at the
   command line.
*) The default "showproc" has been changed to `mhl'.
*) `show' is better at handling alternate character sets.  It knows that
   US-ASCII is a subset of any ISO-8859-X character set.

SLOCAL
------
*) Added new action `folder' or `+' to slocal, which is shorthand
   for piping the message to rcvstore.
*) The action `mbox' now delivers to a file in mbox format.  Previously
   it delivered to a file in mmdf format.
*) Added new action `mmdf' to deliver to a file in mmdf format.
*) Added new options -[no]suppressdup to slocal to check for duplicate
   messages.  The code for suppression of duplicate messages (MH config
   was MSGID) is now always built into slocal.
*) Improved the debugging of slocal ".maildelivery" files.  It will now
   warn when an entry in this file is skipped because there are not
   enough fields.  Also the debugging output of slocal has been cleaned up,
   so that it is much easier to read.
*) Slocal now adds the Delivery-Date header to all delivered messages.
   Previously it only added them to messages delivered to a file.

VIAMAIL
-------
*) The functionality of this new command, was formerly part of
   `mhn' as `mhn -viamail'.

WHATNOW
-------
*) Added new action "mime" to whatnow, which causes whatnow to call
   program specified by "buildmimeproc" profile entry, to process
   MIME composition files (default is mhn -build).
*) Added new action "delete" to whatnow, which deletes draft file
   and exits.
