                                       Changes to
                          The RAND MH Message Handling System:
                                   UCI version MH 6.8

                                     John L. Romine

                                Computing Support Group
                            Information and Computer Science
                            University of California, Irvine
                                 Irvine, CA  92717-3425
                                   Bug-MH@ICS.UCI.EDU
                               http://www.ics.uci.edu/~mh/

                                       ABSTRACT

                        This document describes the changes to the
                   UCI version of the RAND MH system from MH 6.6 to
                   this release of MH 6.8.  This document is meant to
                   supplement, not supersede, the standard MH User's
                   manual and MH Administrator's manual.

                        Comments concerning this documentation should
                   be addressed to the mailbox Bug-MH@ICS.UCI.EDU.
                   Current information about MH can be obtained from
                   the MH Home Page on the World Wide Web at
                   http://www.ics.uci.edu/~mh/.

              ACKNOWLEDGEMENTS

              The MH system described herein is based on the original RAND
              MH system.  It has been extensively developed (perhaps too
              much so) by Marshall T. Rose and John L. Romine at the
              University of California, Irvine.  Einar A. Stefferud, Jerry
              N. Sweet, and Terry P. Domae provided numerous suggestions
              to improve the UCI version of MH.

                   Of course, a large number of people have helped MH
              along.  The list of "MH immortals" is too long to list here.
              For this release, numerous MH-Workers sent in fixes and
              other changes.  A handful of courageous MH-Workers volun-
              teered to beta-test these changes; their help is particu-
              larly appreciated.

              DISCLAIMER

              The Regents of the University of California wish to make  it
              known that:

                   Although each  program  has  been  tested  by  its
                   contributor,  no  warranty, express or implied, is
                   made by  the  contributor  or  the  University  of
                   California,  as to the accuracy and functioning of
                   the program  and  related  program  material,  nor
                   shall the fact of distribution constitute any such
                   warranty, and no responsibility is assumed by  the
                   contributor  or  the  University  of California in
                   connection herewith.

              CONVENTIONS

              In this document, certain formatting conventions are adhered
              to:

                   The names of UNIX commands, such as comp are  presented
                   in italics.

                   Arguments to programs, such as `msgs' and `-nobell' are
                   delimited by single-quotes.

                   Text that  should  be  typed  exactly  as-is,  such  as
                   command  lines (e.g., "folder -pack"), are delimited by
                   double-quotes.

                   UNIX pathnames and envariables, such  as  /usr/uci  and
                   $SIGNATURE, are presented in bold font.

              CHANGES FOR MH 6.8.4

              The MH 6.8.4 release is a minor maintenance release, and
              contains few user-visible changes.  The changes consist
              mostly of documentation improvements, minor bug fixes, and
              some portability enhancements for BSD 4.4 and Solaris 2.x
              (contributed changes for HPUX and OSF1 have not yet been
              integrated into this release).  This is the current version
              of MH as of February 8, 1996.

              Runtime Tailoring

              By default post will now give the SMTP HELO command with the
              local hostname.  If you specify a hostname with the
              clientname: option in the mtstailor file, post will give the
              HELO command with that name instead.  If the argument to the
              clientname: option is empty, no HELO command is given.  See
              mh-tailor(5) for more details.

              Multi-media Mail & Encryption

              A few new PGP support programs can be found in the
              support/general directory.  repl supports the `-[no]mime'
              option.  See repl(1) for more details.

              CHANGES FOR MH 6.8.3

              The MH 6.8.3 maintenance release contains few user-visible
              changes.  Most of the changes are internal to the multi-
              media display program mhn to support RFC 1521 (the new MIME
              standard).  This is the current version of MH as of December
              1, 1993.

              Runtime Tailoring

              When posting mail using the SMTP, post did not normally send
              the HELO command. This was because SendMail would fail if
              the host name given in the HELO command was the local host.
              Later versions of SendMail will now complain if you omit the
              HELO command.

              User Interface Programs

              folder  The folder command now has `-create' and `-nocreate'
                      options.  See folder(1) for details.

              inc     A bug where `-host' would not override the pophost
                      as set in the mtstailor file has been fixed.  This
                      bug was also fixed in msgchk.

              mhn     The mhn command has several changes:  updates for
                      conformance with RFC 1521, addition of two caches:
                      public and private, addition of two caching poli-
                      cies: one for reading and one for writing, support
                      for storing multipart entities, and a few bug fixes.
                      See mhn(1) for complete details.

              CHANGES FOR MH 6.8.2

              The MH.6.8.2 patch release contains only internal changes to
              support the BSD 4.4 and 386BSD versions of UNIX.  This ver-
              sion of MH was released August 25, 1993, but was not widely
              distributed.

              CHANGES FOR MH 6.8.1

              The MH.6.8.1 patch release is a maintenance release.  This
              is the current released version of MH as of August 20, 1993.

                   This release includes a small number of bug fixes, a
              few minor enhancements, some changes for the new MIME stan-
              dard, and support for ESMTP (RFC 1425).  Support for BSD 4.4
              and 386BSD is planned for the next release.

                   Many other fixes which have already been received are
              still being merged.  If you've sent an update for MH 6.8 to
              Bug-MH@ics.uci.edu and it isn't in this release, it'll prob-
              ably appear in the next release.

              Fixes and Enhancements

              Many minor documentation corrections were made.  There are
              also a few program changes:

              mhn   The `-cache policy', `-[no]check', and `-[no]pause'
                    switches have been added.   Some other minor changes
                    have been made to comply with the new MIME standard.
                    See mhn(1) for complete details.

              post  When posting mail with SendMail, post will not use the
                    ONEX command when it is posting a message with BCCs.

              scan  scan will now work with big width values.

              Format Strings

              One new function has been added:

              %(profile arg)  This function looks up a component in the
                              .mh_profile or context files and returns the
                              value of that component.

              Configuration

              Two new configuration options are present:

              GCOS_HACK    The so-called "gcos" field of the password file
                           is used as a last resort to find the user's
                           full name (see mh-profile(5) for details).
                           Enable this option if your passwd(5) man page
                           notes that the `&' character in the "gcos"
                           field stands for the login name.

              NORUSERPASS  Tells MH that your system doesn't have the
                           ruserpass(3) routine; MH will include its own
                           copy of this routine in its library.

              CHANGES FOR MH 6.8

              This is the current released version of MH as of December
              14, 1992.  This release includes a number of bug fixes and
              internal changes to make the code more portable.  Two new
              authentication methods are provided for the POP, and support
              for SVR4 shared libraries is complete.

                   The major user-visible change in this release is the
              incorporation of support for multi-media mail as specified
              by the Multi-purpose Internet Mail Extensions (MIME)
              RFC 1341.  This allows you to include things like audio,
              graphics, and the like, in your mail messages.  A new com-
              mand, mhn, has been provided to support MIME and a detailed
              man page is provided in mhn(1).

              Documentation

              The documentation has some general improvements, and the
              READ-ME document has been re-organized to help MH adminis-
              trators find the appropriate configuration options for their
              system.  The Makefiles in the papers/ hierarchy have been
              changed to invoke TeX as "tex" (instead of "tex82").

              The following new man pages are also available:

              mhn(1)      mhn helps the user process multi-media mail.

              mhparam(1)  mhparam lets the user extract information from
                          the MH profile.

              popauth(8)  the APOP database administration program (see
                          below).

              popi(1)     the POP initiator (see below).

              slocal(1)   fully documents slocal.  The mhook(1) man page
                          now documents only the MH receive-mail hooks.

              Internal Changes

              The MH source code is in the process of being cleaned up to
              make pedantic ANSI C compilers happy.  Occurrences of "NULL"
              have been replaced by "0" where appropriate.  Extra tokens
              after "#else" and "#endif" have been put inside comments
              (this is still in progress).  The code should now compile
              cleanly on many more systems, specifically, more variants of
              SVR4.

                   The version of tws/dtimep.c which was included in MH
              6.7.2 was incompatible with the lex library on some systems,
              and has been removed.

                   A bug in the handling of blind lists inside alias files
              has been fixed.

              Post Office Protocol

              There were three new options added to the POP.

              APOP  This option indicates that the POP daemon will support
                    the   non-standard   APOP  command  which  provides  a
                    challenge-based authentication system  using  the  MD5
                    message digest algorithm.

                    This option also causes  the  popauth  program  to  be
                    installed,   which   allows   the   administrator   to
                    manipulate the APOP authorization database.

              KPOP  Support for KERBEROS with POP.  This code builds popd,
                    inc and msgchk to support only the "kpop" protocol.
                    This code is still expiremental, but is available for
                    those sites wishing to test it.

              MPOP  This option indicates that the POP daemon will support
                    the non-standard XTND SCAN command which provides per-
                    formance enhancements when using the POP over low-
                    speed connections.

                    This option also causes an interactive POP client pro-
                    gram, popi, to be compiled and installed.  A man page
                    for the popi program is also provided.  This option
                    requires the configuration to have "bboards: pop".

              The APOP and MPOP non-standard POP facilities are documented
              in The Internet Message (ISBN 0-13-092941-7), a book by
              Marshall T. Rose.  For more details, see support/pop/pop-
              more.txt and the Administrator's Guide.  The APOP option
              peacefully co-exists with the standard POP, KPOP completely
              replaces the standard POP, and MPOP requires "bboards: pop".

              File Locking

              The file locking code has been cleaned up to support three
              kinds of kernel-level file locking.  As appropriate for your
              system, include the LOCKF, FCNTL or FLOCK option.  For more
              details, see mh-tailor(5).

              Configuration Directives

              A number of new configuration directives have been added  or
              changed.  The full details are given in the READ-ME.

              cp:        The command used to  install  new  files  if  not
                         "cp".

              ln:        The command used to link files  together  in  the
                         source tree if not "ln".

              mts:       Full support for ZMAILER has been added.

              popdir:    The directory where popd will be installed if not
                         /usr/etc.

              regtest:   Set to "on" to prevent the hostname  and  compile
                         date from being included in MH binaries.

              sharedlib: You may now specify "sun4" or "sys5"  (for  SVR4)
                         shared libraries.

              signal:    Specifies the base type of the function  returned
                         by  signal().   This  was previously defined with
                         "options TYPESIG".

              Several `-D' options to cc have been added or changed:

              APOP       Authenticated POP (see above).

              AUX        Support for A/UX systems.

              DBMPWD     The DBM option has been renamed DBMPWD.

              HESIOD     Support for the HESIOD name server.

              KPOP       KERBEROS POP (see above).

              LOCALE     Support for local characters sets; uses the set-
                         local() function.

              MAILGROUP  Makes inc set-group-id.  You may need this option
                         if your /usr/spool/mail is not world-writeable.

              MIME       Multi-media mail.

              MPOP       Mobile POP (see above).

              MSGID      Enables slocal to detect and surpress duplicate
                         messages.

              OSF1       Support for DEC OSF1 systems.  May be incomplete.

              RENAME     Include this option if your system has a rename()
                         system call.

              SVR4       Support for System 5 Release 4 or newer systems.

              TYPESIG    This option has been dropped.  See `signal'
                         above.

              UNISTD     Include this option if your system has the
                         include file <unistd.h>.

              VSPRINTF   Include this option if your system has the
                         vsprintf() library routine; otherwise, _doprnt()
                         will be used.

              YEARMOD    Forces the mh-format `year' function to return
                         2-digit values.  Use this option during a brief
                         transition period if you have local mh-format
                         files which need to be converted to support 4-
                         digit years.

              FUNCTIONAL CHANGES

              In addition to the configuration changes mentioned above, a
              number of functional changes have been made to the system.
              Many programs have new features added and a few new programs
              have are provided. Each command's manual page gives complete
              information about the its operation.  Here is a short sum-
              mary of the changes.

              MH Sequences

              A larger number of user-defined sequences are available.
              Previously, this number had been 10.  On 32-bit systems, 26
              user-defined sequences are available.

              Profile Components

              MH programs will now complain if the .mh_profile does not
              end in a newline.  Also, one enhancement and one new profile
              component are provided:

              Aliasfile:  Multiple filenames may now be given.

              Inbox:      New; the default folder (for inc, etc.) if not
                          "inbox".

              Format Strings

              A few minor bugs were fixed in format string handling, and a
              few  new features were added.  See mh-format(5) for complete
              details.

              Addresses      An  attempt  is  made   to   decipher   X.400
                             RFC 987-style addresses.

              Comments       Comments may be added to mh-format  files;  a
                             comment  begins with the 2-character sequence
                             "%;", and ends with an un-escaped newline.

              %(modulo n)    The `modulo' function escape has been added.

              %(year{date})  The  date  parser  has   been   enhanced   to
                             understand  more illegal date formats; `year'
                             now returns a 4-digit number.

              User Interface Programs

              A number of MH commands have minor changes:

              ali       The output with `-user -list' was changed to match
                        the output with `-nouser -list'.

              burst     Will no longer drop the last message of a digest.

              inc       Accepts the `-apop' switch for authenticated POP
                        (see above); will attempt to detect write errors
                        (e.g., no space left on device) when incorporating
                        mail; no longer replaces newline characters with
                        NULLs.

              folder    The `-noprint' option was broken and has been
                        dropped.

              forw      Supports `-mime' to use MIME-style multi-part mes-
                        sages.

              mhl       Will no longer put an extra space at the end of
                        the `%{text}' in a formatfield.

              mhn       New; manipulates multi-media (MIME) messages; a
                        detailed man page is provided.

              mhparam   New; reads the MH profile (and context) and writes
                        the values of the specified components on the
                        standard output; useful in programmatic con-
                        structs.

              msgchk    Supports `-apop' (see above).

              packmbox  New; packs an MH folder into a UUCP-style mailbox.

              popi      New; a client-side POP initiator; available only
                        if you built MH with the MPOP option (see above).

              refile    A bug where the `rmmproc' did not remove all
                        specified message files has been fixed.

              scan      The `-file' option is fully supported and will no
                        longer complain about empty folders.

              send      Supports `-mime' and `-split' to split large mes-
                        sages into multiple partial messages using MIME.

              Support Programs

              fmtdump   Can now read a format file, or a format string
                        given on the command line.

              popauth   New; manages the APOP authorization database (see
                        above).

              sendmail  The sendmail replacement will be installed only if
                        your `mts' setting uses the `/smtp' option.

              slocal    A new man page for slocal is available; the new
                        `mbox' action is available to write a file in
                        packf format; a bug where extra `>' characters
                        were written to MMDF-style maildrops has been
                        fixed; if compiled with the MSGID option, can
                        detect and suppress reception of duplicate mes-
                        sages.

              viamail   New; bundles a directory (like shar) and sends it
                        through multi-media mail.

              CHANGES FOR MH 6.7.2

              The MH.6.7.2 patch release is a maintenance release.  This
              is the current released version of MH as of February 1,
              1992.

                   This release now supports the NCR Tower running SYS5R4.
              The WP changes installed in MH.6.7.0 have been removed.

              Shared Libraries

              Support for SYS 5 shared libraries is in progress.

                   Support for Sun OS 4.0 shared libraries had been
              improved.  The MH library has been modified to move initial-
              ized data into a data definition file.  The shared library
              will now consist of a libmh.so and libmh.sa file.  The
              shared library version number will no longer track the MH
              patch release number, and its numbering begins with version
              `1.1' with this release.

              Replacement SendMail

              Since many standard system programs expect to post mail by
              invoking /usr/lib/sendmail, a minimal replacement SendMail
              is provided in this release.  This replacement is meant to
              be installed on (e.g., diskless) client workstations which
              post mail using SMTP, and do not run a message transport
              system.  It will call post to post mail; be sure you have
              configured MH with the `/smtp' mts option.  This sendmail
              replacement is installed in your MH etc directory, and you
              should link /usr/lib/sendmail to it.

              Format Strings

              A manual page for the fmtdump format string disassembler  is
              supplied, and some new format functions were added:

              folder   In scan, this component escape contains the name of
                       the current folder.  It is not defined for other MH
                       commands.

              getenv   This  function  escape  returns  the  value  of  an
                       environment variable.

                   There will be some additional changes in these routines
              in the next patch release.

              Other Bug Fixes and Enhancements

              In addition to some other minor enhancements, some bugs were
              fixed which in general were not user-visible:

              Blind lists   Users may now specify RFC822 address groups in
                            their   alias   files.    These   groups   are
                            implemented by MH as blind lists.

              date parsing  A number of sites have brain-damaged  versions
                            of lex.  MH will now come with the date parser
                            already run through lex.

              mark          A bug dealing with mark and the sequence named
                            `cur' is fixed.  This was previously a problem
                            for mh-e users.

              MH.doc        The MH nroff version of the manual  no  longer
                            contains teletype escape sequences.

              scan          Can now handle headers as long as 512 bytes.

              Signals       MH programs will no longer catch the  HUP  and
                            TERM  signals while waiting for a sub-process.
                            This was  causing  hung  processes  when  your
                            terminal line was was dropped unexpectedly.

              Signature     If your signature is not defined, MH will  use
                            the   value   of   the  gecos  field  of  your
                            /etc/passwd entry as your signature.

              version.sh    A bug in the awk script  in  config/version.sh
                            was fixed.

              CHANGES FOR MH 6.7.1a

              The MH.6.7.1a patch was made available on January 25, 1991
              for limited distribution only.  (This release had some known
              bugs, and so was not widely distributed.)  This release
              incorporates several new features of particular note to
              users of sequences and format strings, as well as some gen-
              eral documentation improvements.  There are a few minor
              enhancements and internal bug fixes also.  Complete documen-
              tation of these changes is given in the individual manual
              pages, and the READ-ME file.

              Message Sequences

              A new manual page, mh-sequence (5), has been added.  This
              manual page attempts to completely document the syntax and
              semantics of MH message sequence specifications.

                   A powerful new feature is the ability to specify mes-
              sage ranges with user-defined sequences.  The  specification
              "name:n" may be used, and it designates up to the first `n'
              messages (or  last  `n' messages  for  `-n') which  are
              elements  of the user-defined sequence `name'.

                   The message specifications "name:next" and "name:prev"
              may also be used, and they designate the next or previous
              message (relative to the current message) which is an ele-
              ment of the user-defined sequence `name'.  The specifica-
              tions "name:first" and "name:last" are equivalent to
              "name:1" and "name:-1", respectively.  The specification
              "name:cur" is not allowed (use just "cur" instead).

                   These specifications allow the user to step through a
              sequence with a command like "show name:next".

              Format Strings

              MH format strings now support an if-then-elseif-else clause
              (the `elseif' is new).  This will make format strings with
              multi-case conditions somewhat less complex.

                   A new format function `addr' had been added.  This
              function takes an address header name as its argument, and
              returns a rendering of the address contained in that header
              as "user@host" or "host!user".

                   Format widths now may be specified as a negative
              number.  This causes the output to be right-justified within
              the format width.

              Other Changes

              Along with a few minor enhancements, some  bugs  were  fixed
              which in general were not user-visible:

              fmtdump  This  new  program  produces   an   pseudo-language
                       representation   of  an  MH  format  file,  vaguely
                       reminiscent  of  assembly  language.   While   this
                       output  format is not explicitly documented, it can
                       still be useful when debugging MH format files.

              refile   Now takes a `-[no]rmmproc' switch.  This  makes  it
                       easier  to  avoid  loops  when your "rmmproc" calls
                       refile.

              slocal   A  problem  with  the  UUCP-style  mailboxes,   the
                       `RPATHS'  configuration  option,  and  the "Return-
                       Path:" header was fixed.

              sortm    Will ensure that no messages  are  lost  if  it  is
                       interrupted.

              whatnow  Will now tell you where it is  leaving  the  draft,
                       when  interrupted  in the initial edit.  Previously
                       the draft was simply unlinked.

              Compilation Options

              LOCKF    This option causes MH to  use  the  lockf()  system
                       call   for   locking  (if  available),  instead  of
                       flock().

              CHANGES FOR MH 6.7.1

              The MH.6.7.1 patch release is a maintenance release, and as
              such, provides few changes from the previous release.  This
              is the current released version of MH as of December 14,
              1990.

              User-Visible Changes

              The major change in this release is to the POP daemon
              (popd).  In MH 6.7, it was changed to be able to read both
              UUCP and MMDF-style mailboxes.  This did not work as
              reported.  The code has now been changed to parse MMDF-style
              mailboxes if you are configuring MH to run with MMDF as your
              message transport system.  Otherwise, UUCP-style mailboxes
              are expected.

                   Since there are number of client programs available for
              only the POP2 protocol instead of POP3, popd has been
              updated to support both protocols.  This is a major win.  If
              you are compiling with POP turned on, add the `POP2' option
              to your MH config file, and the POP daemon will respond to
              POP2 or POP3 commands.  If you're using POP, there's no rea-
              son not to include this option; it does not affect the
              existing support for POP3.

              Internal Changes

              Some bugs were fixed which in general were not user-visible:

              context     Errors when writing out sequences  are  detected
                          correctly.

              inc         No  longer  inserts  extra  blank   lines   into
                          messages.

              mh-format   A nil pointer bug  in  the  address  parser  was
                          fixed.

              repl, etc.  The malloc/free problem has been fixed.

              rmf         A spelling error in the `-nointeractive'  switch
                          has been corrected.

              rcvtty      Will not print the message size if not available
                          (i.e., zero).

              send/post   Illegal signatures  (those  containing  unquoted
                          "."s) will be quoted.

              GENERAL CHANGES FOR MH 6.7.0

              The author is pleased to announce that there are very few
              user-visible changes to MH 6.7 from the previous MH 6.6 dis-
              tribution.  The majority of development was in the form of
              bug fixes and slight enhancements.  In addition, this
              release is slightly faster than the previous release.  With
              a few minor exceptions, it is backward-compatible with the
              previous release.  MH 6.7.0 is the current released version
              of MH as of April 12, 1990.

                   The changes were made mainly to generalize the source
              code to be compatible with a larger range of systems and
              compilers.  There were many small changes to add declara-
              tions for ANSI C compliance.  The System 5 support has been
              brought up to SYS5 R3, and there is support for Sun OS 4.0.

              User-Visible Changes

              Here a quick summary of the changes that were made which are
              not backward-compatible with the previous release of MH:

              repl   The `-format' and `-noformat' switches have not been
                     functional since MH 5, and have been removed.  Any
                     users who have these switches in their .mh_profile,
                     will have to remove them.

              sortm  Previously, in most cases sortm would fill-in any
                     gaps in the numbering of a folder, by renumbering the
                     messages starting with `1'.  This will no longer
                     occur; for this behavior, use "folder -pack".

              Using Aliases

              A new profile entry `Aliasfile:' has been added.  The ali,
              send, and whom programs will look for this profile entry and
              treat it as they would an argument to `-alias'.  This should
              make it easier for novice MH users to begin using aliases.

              Reading Network News & BBoards

              The UCI BBoards facility can read local BBoards, and if com-
              piled with the `bboards: pop' and `pop: on' options, can
              also read remote BBoards using the Post Office Protocol (POP
              ver. 3).  With this release, MH can instead be compiled to
              read the Network News (i.e., USENET) using the Network News
              Transfer Protocol (NNTP).

                   This capability is enabled by compiling MH with the
              `bboards: nntp' and `pop: on' options.  Unfortunately, read-
              ing remote BBoards via the POP and reading the Network News
              via the NNTP are mutually exclusive options.

                   To support the NNTP, a new module, uip/pshsbr.c, is
              compiled and loaded into bbc and msh instead of
              uip/popsbr.c.  The default BBoard is changed from "system"
              to "general" for the NNTP.

                   When reading BBoards, bbc will first look for local
              BBoards, and then contact the NNTP server to read the Net-
              work News.  The location of the NNTP server should be speci-
              fied with the `nntphost:'  entry in the mtstailor file (see
              the MH Administrator's Guide for details), or may be speci-
              fied on the command line with the `-host' switch.

              Format Strings

              The manual page mh-format (5) has been rewritten to give a
              better explanation of how to write format strings, and how
              they are interpreted by MH.  A line-by-line description of
              the default repl form file (replcomps) is now included in
              that manual page.

              Some new  format  functions  were  added,  and  others  were
              augmented:

              trim        Strips any leading and trailing white-space from
                          the current string value.

              date2local  Will coerce the date to the local timezone.

              date2gmt    Will coerce the date to GMT.

              divide      Divides  the  current  numeric  value   by   its
                          argument.   This  could  be  useful for building
                          scan format strings which  print  large  message
                          sizes in "Kb" or "Mb".

              friendly    If the address  field  cannot  be  parsed,  this
                          function  will  return  the  text of the address
                          header, instead of a null string.

              szone       A  flag  indicating  whether  the  timezone  was
                          explicit in the date string.

              PROGRAM CHANGES

              In addition to the general changes mentioned above, many
              programs have specific new features added, either by new
              switches or by expanded functionality.  Each command's
              manual page gives complete information about its new
              options.  Here is a short summary.

              User Interface Programs

              anno      Accepts a `-nodate' switch which inhibits the date
                        annotation, leaving only the body annotation.

              folder    When invoked with the `-pack' switch and the new
                        `-verbose' switch, folder will give information
                        about the actions taken to renumber the folder.

                        On most systems, folder can now create any
                        non-existing parent folders of a new sub-folder.

              forw      When making digests, forw will put the issue and
                        volume numbers in addition to the digest list
                        name, in the digest trailer.

              inc       Detects NFS write failures, and will not zero your
                        maildrop in that event.

              msh       Supports a variant of the new sortm.

              prompter  Considers a period on a line by itself to signify
                        end-of-file when the `-doteof' switch is speci-
                        fied.

              repl      The `-[no]format' switches have not been used
                        since MH 5 and have been deleted. repl will now
                        find filter files in the MH library area.

              scan      With the `-file msgbox' switch, scan can list a
                        packf'd-format file directly (without using msh).

                        Lists messages in reverse order with the
                        `-reverse' switch.  This should be considered a
                        bug.

              sortm     Now has the options:  `-textfield field',
                        `-notextfield', `-limit days', and `-nolimit'.

                        With these options, sortm can be instructed to
                        sort a folder based on the contents of an arbi-
                        trary header such as "subject".

                        sortm minimizes renaming messages, and will no
                        longer arbitrarily pack folders; for this
                        behavior, use "folder -pack".

              whatnow   Deletes the draft by renaming it with leading
                        comma, instead of unlinking it.

              MH Support Programs

              The  following  support  programs  also  have   changes   or
              enhancements:

              mhl     Will now accept a format string  on  any  component,
                      not just on addresses and dates.

              popd    Will use shadow passwords if compiled with the SHA-
                      DOW option.  It can now also read UUCP-style mail-
                      drops directly.

              rcvtty  If given no arguments, rcvtty will produce a scan
                      listing as specified by a format string or file; a
                      default format string is used if one is not speci-
                      fied.

                      Before the listing is written to the users terminal,
                      the terminal's bell is rung and a newline is output.
                      The `-nobell' and the `-nonewline' options inhibit
                      these functions.

                      rcvtty will obey terminal write notification set by
                      mesg.  With the `-biff' switch, rcvtty will also
                      obey the mail notification status set by biff.

                      On BSD43 systems, as with write, rcvtty will be
                      installed set-group-id to the group "tty".

              slocal  Understands UUCP-style "From " lines and will write
                      output files using this format if appropriate.
                      Before invoking a delivery program, slocal will
                      strip such lines unless compiled with the RPATHS
                      option, in which case it will will convert such
                      lines into "Return-Path:" headers.

                      slocal has a new result code "N", for use in .mail-
                      delivery files.  With this result code, slocal will
                      perform the action only if the message has not been
                      delivered and the previous action succeeded.  This
                      allows for performing an action only if multiple
                      conditions are true.

              DOCUMENTATION

              Several of the older MH papers have been difficult to format
              because they depended on an older version of PhDTeX which
              was not supplied.  These papers have been updated, and some
              TeX library files are supplied in papers/doclib/, so that
              these papers may be generated on any system with TeX.

                   Many of the manual pages have been revised to include
              documentation of new command options, and some have been
              expanded to give more detail.  All are now slightly refor-
              matted at installation time to make them more compatible
              with programs like makewhatis.

              MH ADMINISTRATION

              This section describes changes in configuring, compiling and
              installing MH 6.7 and should not be of interest to casual MH
              users.  The READ-ME file has been considerably revised and
              expanded to give more detail about the configuration and
              compilation options which have been included in this
              release.  Some compilation options have been removed, and
              many new options have been added.

                   All MH Makefiles have been updated to work around some
              incompatibilities introduced in newer versions of make.  MH
              programs will no longer be installed with the sticky-bit
              turned on.

                   Reading this section not a substitute for carefully
              reading the READ-ME file before attempting to compile MH

              Bug Fixes

              Some bugs were fixed which in general were not user-visible:

              address parser  Fixed to allow use of the "AT"  domain,  and
                              some  minor  bugs  were  fixed pertaining to
                              address groups.

              date parser     Improved to accept  more  forms  of  illegal
                              dates.  Military timezones were removed.

              dynamic memory  Many problems with corruption of the dynamic
                              memory pool have been fixed.

              locking         Will open files for write, if  necessary  to
                              enable locking.

              nil pointers    All reported nil pointer problems have  been
                              fixed.

              replcomps       The "In-Reply-To:" header had  quotes  added
                              around the date field to comply with RFC822.

              White Pages

              If MH is compiled with the WP option, send recognizes an
              address between "<<" and ">>" characters such as:

                      To: << rose -org psi >>

              to be a name meaningful to a whitepages service.  In order
              to expand the name, send must be invoked interactively
              (i.e., not from push).  For each name, send will invoke a
              command called fred in a special mode asking to expand the
              name.

                   To get a copy of the white pages service, contact
              wpp-manager@psi.com.

              Configuration Options

              Some configuration options have been added or changed:

              cc          To specify an alternate C compiler.

              ccoptions   Defaults to `-O'.

              bboards     May now be defined as "on", "off", "pop", or
                          "nntp".

              bbdelivery  Determines whether the bboard delivery agent and
                          library files should be installed.

              lex         To specify an alternate version of lex.

              mailgroup   If defined, inc will be made set-group-id to
                          this group.

              sharedlib   For SUN40 systems; if "on", makes libmh.a into a
                          shared library.

              slibdir     The directory where the above shared library
                          should be installed.

              sprintf     Set this to "int" if that's what your
                          sprintf (3) library routine returns.

              Compilation Options

              For different configurations, several `-D' options to cc
              have been added or changed:

              BERK        This disables the address and date parsing rou-
                          tines.  If you want to do much with
                          mh-format (5), don't enable this.

              BSD43       Will make rcvtty set-group-id to the group
                          "tty".

              DBM         For sites with a dbm-style password file (such
                          as with Yellow Pages), MH will not read the
                          entire passwd file into a cache.  At one site
                          that runs YP on a large passwd file, using this
                          showed a 6:1 performance improvement.

              NETWORK     This option has been deleted.  See SOCKETS.

              NOIOCTLH    Tells MH not to include the file sys/ioctl.h.
                          Use this if this file is not present on your
                          system.

              NTOHLSWAP   On systems with TCP/IP networking, msh will try
                          to use the ntohl() macro from the file
                          netinet/in.h to byte-swap the binary map files
                          it writes.

              SENDMAILBUG Some versions of sendmail return a 451 (failure)
                          reply code when they don't mean to indicate
                          failure.  This option considers that code to be
                          equivalent to 250 (OK).

              SHADOW      Causes popd to read the file /etc/shadow for
                          encrypted passwords instead of /etc/passwd.  Use
                          this if you have a shadow password file (such as
                          on newer versions of SYSTEM 5).

              SOCKETS     Enable this if you are on a non-BSD system with
                          a socket interface for TCP/IP networking compa-
                          tible with 4.2BSD UNIX.

              SUN40       Use on Suns running Sun OS 4.0 and later.

              SYS5        This option has been updated to refer to SYS5 R3
                          and later systems.

              SYS5DIR     Use this if your system uses "struct dirent"
                          instead of "struct direct".  This should be true
                          for systems based on SYS5 R3 and later.

              TYPESIG     Defines the base type for the signal system
                          call.  This defaults to "int", but should be
                          defined as "void" if appropriate for your sys-
                          tem.

              WP          Enables support for the White Pages service.

              Installation

              MH will now explicitly set the protection mode on every file
              it installs.

                   Previously any existing file installed by MH would be
              backed up into the source tree, and then overwritten.  Now,
              a few system-dependent files will not be overwritten, and
              your changes will have to be merged in by hand.  See the
              READ-ME file for more details.