Changes to The RAND MH Message Handling System: UCI version MH 6.8 John L. Romine Computing Support Group Department of Information and Computer Science University of California, Irvine Irvine, CA 92717-3425 Bug-MH@ICS.UCI.EDU _A_B_S_T_R_A_C_T 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, or ucbvax!ucivax!bug-mh. _A_C_K_N_O_W_L_E_D_G_E_M_E_N_T_S The _M_H system described herein is based on the original RAND _M_H 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 _M_H. Of course, a large number of people have helped _M_H along. The list of "_M_H immortals" is too long to list here. For this release, numerous _M_H-_W_o_r_k_e_r_s sent in fixes and other changes. A handful of courageous _M_H-_W_o_r_k_e_r_s volun- teered to beta-test these changes; their help is particu- larly appreciated. December 1, 1993 Changes to MH 6.8 2 _D_I_S_C_L_A_I_M_E_R The Regents of the University of California wish to make it known that: Although each program has been tested by its con- tributor, no warranty, express or implied, is made by the contributor or the University of Califor- nia, as to the accuracy and functioning of the program and related program material, nor shall the fact of distribution constitute any such war- ranty, and no responsibility is assumed by the contributor or the University of California in connection herewith. _C_O_N_V_E_N_T_I_O_N_S In this document, certain formatting conventions are adhered to: The names of UNIX commands, such as _c_o_m_p are presented in _i_t_a_l_i_c_s. Arguments to programs, such as `msgs' and `-nobell' are delimited by single-quotes. Text that should be typed exactly as-is, such as com- mand 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. December 1, 1993 Changes for MH 6.8.3 3 _C_H_A_N_G_E_S _F_O_R _M_H _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 _m_h_n to support RFC 1521 (the new MIME standard). This is the current version of MH as of December 1, 1993. _R_u_n_t_i_m_e _T_a_i_l_o_r_i_n_g When posting mail using the SMTP, _p_o_s_t does not normally send the HELO command. This is because _S_e_n_d_M_a_i_l would fail if the host name given in the HELO command was the local host. Later versions of _S_e_n_d_M_a_i_l will now complain if you omit the HELO command. If you specify a hostname with the clientname: option in the _m_t_s_t_a_i_l_o_r file, _p_o_s_t will give the HELO command with that name, otherwise no HELO command is given. See _m_h- _t_a_i_l_o_r(5) for more details. _U_s_e_r _I_n_t_e_r_f_a_c_e _P_r_o_g_r_a_m_s folder The _f_o_l_d_e_r command now has `-create' and `-nocreate' options. See _f_o_l_d_e_r(1) for details. inc A bug where `-host' would not override the pophost as set in the _m_t_s_t_a_i_l_o_r file has been fixed. This bug was also fixed in _m_s_g_c_h_k. mhn The _m_h_n 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 _m_h_n(1) for complete details. _C_H_A_N_G_E_S _F_O_R _M_H _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 _M_H was released August 25, 1993, but was not widely distributed. _C_H_A_N_G_E_S _F_O_R _M_H _6._8._1 The MH.6.8.1 patch release is a maintenance release. This is the current released version of _M_H 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. December 1, 1993 Changes for MH 6.8.3 4 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. _F_i_x_e_s _a_n_d _E_n_h_a_n_c_e_m_e_n_t_s 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 _m_h_n(1) for complete details. post When posting mail with SendMail, _p_o_s_t will not use the ONEX command when it is posting a message with BCCs. scan _s_c_a_n will now work with big width values. _F_o_r_m_a_t _S_t_r_i_n_g_s 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. _C_o_n_f_i_g_u_r_a_t_i_o_n 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 _m_h-_p_r_o_f_i_l_e(5) for details). Enable this option if your _p_a_s_s_w_d(5) man page notes that the `&' character in the "gcos" field stands for the login name. NORUSERPASS Tells _M_H that your system doesn't have the _r_u_s_e_r_p_a_s_s(3) routine; _M_H will include its own copy of this routine in its library. December 1, 1993 Changes for MH 6.8 5 _C_H_A_N_G_E_S _F_O_R _M_H _6._8 This is the current released version of _M_H 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, _m_h_n, has been provided to support MIME and a detailed man page is provided in _m_h_n(1). _D_o_c_u_m_e_n_t_a_t_i_o_n The documentation has some general improvements, and the READ-ME document has been re-organized to help _M_H adminis- trators find the appropriate configuration options for their system. The Makefiles in the papers/ hierarchy have been changed to invoke _T_e_X as "tex" (instead of "tex82"). The following new man pages are also available: _m_h_n(1) _m_h_n helps the user process multi-media mail. _m_h_p_a_r_a_m(1) _m_h_p_a_r_a_m lets the user extract information from the _M_H profile. _p_o_p_a_u_t_h(8) the APOP database administration program (see below). _p_o_p_i(1) the POP initiator (see below). _s_l_o_c_a_l(1) fully documents _s_l_o_c_a_l. The _m_h_o_o_k(1) man page now documents only the _M_H receive-mail hooks. _I_n_t_e_r_n_a_l _C_h_a_n_g_e_s The _M_H 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 _l_e_x library on some systems, and has been removed. A bug in the handling of blind lists inside alias files December 14, 1992 Changes for MH 6.8 6 has been fixed. _P_o_s_t _O_f_f_i_c_e _P_r_o_t_o_c_o_l 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 _p_o_p_a_u_t_h program to be in- stalled, which allows the administrator to manipulate the APOP authorization database. KPOP Support for KERBEROS with POP. This code builds _p_o_p_d, _i_n_c and _m_s_g_c_h_k 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, _p_o_p_i, to be compiled and installed. A man page for the _p_o_p_i program is also provided. This option requires the configuration to have "bboards: pop". The APOP and MPOP non-standard POP facilities are documented in _T_h_e _I_n_t_e_r_n_e_t _M_e_s_s_a_g_e (ISBN 0-13-092941-7), a book by Marshall T. Rose. For more details, see support/pop/pop- more.txt and the _A_d_m_i_n_i_s_t_r_a_t_o_r'_s _G_u_i_d_e. The APOP option peacefully co-exists with the standard POP, KPOP completely replaces the standard POP, and MPOP requires "bboards: pop". _F_i_l_e _L_o_c_k_i_n_g 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 _m_h-_t_a_i_l_o_r(5). December 14, 1992 Changes for MH 6.8 7 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 _p_o_p_d will be installed if not /usr/etc. regtest: Set to "on" to prevent the hostname and compile date from being included in _M_H binaries. sharedlib: You may now specify "sun4" or "sys5" (for SVR4) shared libraries. signal: Specifies the base type of the function returned by _s_i_g_n_a_l(). This was previously defined with "options TYPESIG". Several `-D' options to _c_c 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 _s_e_t_- _l_o_c_a_l() function. MAILGROUP Makes _i_n_c 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 _s_l_o_c_a_l to detect and surpress duplicate messages. OSF1 Support for DEC OSF1 systems. May be incomplete. RENAME Include this option if your system has a _r_e_n_a_m_e() December 14, 1992 Changes for MH 6.8 8 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 . VSPRINTF Include this option if your system has the _v_s_p_r_i_n_t_f() library routine; otherwise, __d_o_p_r_n_t() will be used. YEARMOD Forces the _m_h-_f_o_r_m_a_t `year' function to return 2-digit values. Use this option during a brief transition period if you have local _m_h-_f_o_r_m_a_t files which need to be converted to support 4- digit years. _F_U_N_C_T_I_O_N_A_L _C_H_A_N_G_E_S 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. _M_H _S_e_q_u_e_n_c_e_s 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. _P_r_o_f_i_l_e _C_o_m_p_o_n_e_n_t_s _M_H 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 _i_n_c, etc.) if not "inbox". December 14, 1992 Changes for MH 6.8 9 _F_o_r_m_a_t _S_t_r_i_n_g_s A few minor bugs were fixed in format string handling, and a few new features were added. See _m_h-_f_o_r_m_a_t(5) for complete details. Addresses An attempt is made to decipher X.400 RFC 987-style addresses. Comments Comments may be added to _m_h-_f_o_r_m_a_t 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 under- stand more illegal date formats; `year' now returns a 4-digit number. _U_s_e_r _I_n_t_e_r_f_a_c_e _P_r_o_g_r_a_m_s A number of _M_H 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 _M_H 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). December 14, 1992 Changes for MH 6.8 10 packmbox New; packs an _M_H folder into a UUCP-style mailbox. popi New; a client-side POP initiator; available only if you built _M_H 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. _S_u_p_p_o_r_t _P_r_o_g_r_a_m_s 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 _s_e_n_d_m_a_i_l replacement will be installed only if your `mts' setting uses the `/smtp' option. slocal A new man page for _s_l_o_c_a_l is available; the new `mbox' action is available to write a file in _p_a_c_k_f 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 _s_h_a_r) and sends it through multi-media mail. December 14, 1992 Changes for MH 6.7.2 11 _C_H_A_N_G_E_S _F_O_R _M_H _6._7._2 The MH.6.7.2 patch release is a maintenance release. This is the current released version of _M_H 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. _S_h_a_r_e_d _L_i_b_r_a_r_i_e_s Support for SYS 5 shared libraries is in progress. Support for Sun OS 4.0 shared libraries had been improved. The _M_H 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 _M_H patch release number, and its numbering begins with version `1.1' with this release. _R_e_p_l_a_c_e_m_e_n_t _S_e_n_d_M_a_i_l Since many standard system programs expect to post mail by invoking /usr/lib/sendmail, a minimal replacement _S_e_n_d_M_a_i_l 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 _p_o_s_t to post mail; be sure you have configured _M_H with the `/smtp' mts option. This sendmail replacement is installed in your _M_H etc directory, and you should link /usr/lib/sendmail to it. _F_o_r_m_a_t _S_t_r_i_n_g_s A manual page for the _f_m_t_d_u_m_p format string disassembler is supplied, and some new format functions were added: folder In _s_c_a_n, this component escape contains the name of the current folder. It is not defined for other _M_H commands. getenv This function escape returns the value of an en- vironment variable. There will be some additional changes in these routines in the next patch release. Feb 1, 1992 Changes for MH 6.7.2 12 _O_t_h_e_r _B_u_g _F_i_x_e_s _a_n_d _E_n_h_a_n_c_e_m_e_n_t_s 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 imple- mented by _M_H as blind lists. date parsing A number of sites have brain-damaged versions of lex. _M_H will now come with the date parser already run through lex. mark A bug dealing with _m_a_r_k and the sequence named `cur' is fixed. This was previously a problem for mh-e users. MH.doc The _M_H nroff version of the manual no longer contains teletype escape sequences. scan Can now handle headers as long as 512 bytes. Signals _M_H programs will no longer catch the HUP and TERM signals while waiting for a sub-process. This was causing hung processes when your ter- minal line was was dropped unexpectedly. Signature If your signature is not defined, _M_H 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. Feb 1, 1992 Changes for MH 6.7.1a 13 _C_H_A_N_G_E_S _F_O_R _M_H _6._7._1_a 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. _M_e_s_s_a_g_e _S_e_q_u_e_n_c_e_s A new manual page, _m_h-_s_e_q_u_e_n_c_e (5), has been added. This manual page attempts to completely document the syntax and semantics of _M_H 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". _F_o_r_m_a_t _S_t_r_i_n_g_s _M_H 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. January 25, 1991 Changes for MH 6.7.1a 14 _O_t_h_e_r _C_h_a_n_g_e_s 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 _M_H format file, vaguely remin- iscent of assembly language. While this output format is not explicitly documented, it can still be useful when debugging _M_H format files. refile Now takes a `-[no]rmmproc' switch. This makes it easier to avoid loops when your "rmmproc" calls _r_e- _f_i_l_e. 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 in- terrupted. whatnow Will now tell you where it is leaving the draft, when interrupted in the initial edit. Previously the draft was simply unlinked. _C_o_m_p_i_l_a_t_i_o_n _O_p_t_i_o_n_s LOCKF This option causes _M_H to use the lockf() system call for locking (if available), instead of flock(). January 25, 1991 Changes for MH 6.7.1 15 _C_H_A_N_G_E_S _F_O_R _M_H _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 _M_H as of December 14, 1990. _U_s_e_r-_V_i_s_i_b_l_e _C_h_a_n_g_e_s The major change in this release is to the POP daemon (popd). In _M_H 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 _M_H 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. _I_n_t_e_r_n_a_l _C_h_a_n_g_e_s 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 mes- sages. 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. December 14, 1990 Changes for MH 6.7.0 16 _G_E_N_E_R_A_L _C_H_A_N_G_E_S _F_O_R _M_H _6._7._0 The author is pleased to announce that there are very few user-visible changes to _M_H 6.7 from the previous _M_H 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. _M_H 6.7.0 is the current released version of _M_H 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. _U_s_e_r-_V_i_s_i_b_l_e _C_h_a_n_g_e_s Here a quick summary of the changes that were made which are not backward-compatible with the previous release of _M_H: repl The `-format' and `-noformat' switches have not been functional since _M_H 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 _s_o_r_t_m 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". _U_s_i_n_g _A_l_i_a_s_e_s A new profile entry `Aliasfile:' has been added. The _a_l_i, _s_e_n_d, and _w_h_o_m programs will look for this profile entry and treat it as they would an argument to `-alias'. This should make it easier for novice _M_H users to begin using aliases. _R_e_a_d_i_n_g _N_e_t_w_o_r_k _N_e_w_s & _B_B_o_a_r_d_s 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, _M_H 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 _M_H 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. April 12, 1990 Changes for MH 6.7.0 17 To support the NNTP, a new module, uip/pshsbr.c, is compiled and loaded into _b_b_c and _m_s_h instead of uip/popsbr.c. The default BBoard is changed from "system" to "general" for the NNTP. When reading BBoards, _b_b_c 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 _M_H Administrator's Guide for details), or may be speci- fied on the command line with the `-host' switch. _F_o_r_m_a_t _S_t_r_i_n_g_s The manual page _m_h-_f_o_r_m_a_t (5) has been rewritten to give a better explanation of how to write format strings, and how they are interpreted by _M_H. A line-by-line description of the default _r_e_p_l form file (replcomps) is now included in that manual page. Some new format functions were added, and others were aug- mented: 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 argu- ment. This could be useful for building _s_c_a_n 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 ex- plicit in the date string. _P_R_O_G_R_A_M _C_H_A_N_G_E_S 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. _U_s_e_r _I_n_t_e_r_f_a_c_e _P_r_o_g_r_a_m_s anno Accepts a `-nodate' switch which inhibits the date April 12, 1990 Changes for MH 6.7.0 18 annotation, leaving only the body annotation. folder When invoked with the `-pack' switch and the new `-verbose' switch, _f_o_l_d_e_r will give information about the actions taken to renumber the folder. On most systems, _f_o_l_d_e_r can now create any non-existing parent folders of a new sub-folder. forw When making digests, _f_o_r_w 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 _s_o_r_t_m. 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 _M_H 5 and have been deleted. _r_e_p_l will now find filter files in the _M_H library area. scan With the `-file msgbox' switch, _s_c_a_n can list a _p_a_c_k_f'd-format file directly (without using _m_s_h). Lists messages in reverse order with the `-reverse' switch. This should be considered a bug. sortm Now has the options: `-textfield field', `-notext- field', `-limit days', and `-nolimit'. With these options, _s_o_r_t_m can be instructed to sort a folder based on the contents of an arbi- trary header such as "subject". _s_o_r_t_m 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. _M_H _S_u_p_p_o_r_t _P_r_o_g_r_a_m_s The following support programs also have changes or enhance- ments: mhl Will now accept a format string on any component, not just on addresses and dates. April 12, 1990 Changes for MH 6.7.0 19 popd Will use _s_h_a_d_o_w passwords if compiled with the SHA- DOW option. It can now also read UUCP-style mail- drops directly. rcvtty If given no arguments, _r_c_v_t_t_y 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. _r_c_v_t_t_y will obey terminal write notification set by _m_e_s_g. With the `-biff' switch, _r_c_v_t_t_y will also obey the mail notification status set by _b_i_f_f. On BSD43 systems, as with _w_r_i_t_e, _r_c_v_t_t_y 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, _s_l_o_c_a_l will strip such lines unless compiled with the RPATHS option, in which case it will will convert such lines into "Return-Path:" headers. _s_l_o_c_a_l has a new result code "N", for use in .mail- delivery files. With this result code, _s_l_o_c_a_l 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. _D_O_C_U_M_E_N_T_A_T_I_O_N Several of the older _M_H 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 _m_a_k_e_w_h_a_t_i_s. _M_H _A_D_M_I_N_I_S_T_R_A_T_I_O_N This section describes changes in configuring, compiling and installing _M_H 6.7 and should not be of interest to casual _M_H April 12, 1990 Changes for MH 6.7.0 20 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 _M_H Makefiles have been updated to work around some incompatibilities introduced in newer versions of _m_a_k_e. _M_H 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 _M_H _B_u_g _F_i_x_e_s 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 ad- dress 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. _W_h_i_t_e _P_a_g_e_s If _M_H is compiled with the WP option, _s_e_n_d 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, _s_e_n_d must be invoked interactively (i.e., not from _p_u_s_h). For each name, _s_e_n_d will invoke a command called _f_r_e_d in a special mode asking to expand the name. To get a copy of the white pages service, contact wpp-manager@psi.com. April 12, 1990 Changes for MH 6.7.0 21 _C_o_n_f_i_g_u_r_a_t_i_o_n _O_p_t_i_o_n_s 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 _l_e_x. mailgroup If defined, _i_n_c 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 _s_p_r_i_n_t_f (3) library routine returns. _C_o_m_p_i_l_a_t_i_o_n _O_p_t_i_o_n_s For different configurations, several `-D' options to _c_c have been added or changed: BERK This disables the address and date parsing rou- tines. If you want to do much with _m_h-_f_o_r_m_a_t (5), don't enable this. BSD43 Will make _r_c_v_t_t_y set-group-id to the group "tty". DBM For sites with a dbm-style password file (such as with Yellow Pages), _M_H 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 _M_H 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, _m_s_h will try to use the ntohl() macro from the file April 12, 1990 Changes for MH 6.7.0 22 netinet/in.h to byte-swap the binary map files it writes. SENDMAILBUG Some versions of _s_e_n_d_m_a_i_l 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 _p_o_p_d 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 _s_i_g_n_a_l 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. _I_n_s_t_a_l_l_a_t_i_o_n _M_H will now explicitly set the protection mode on every file it installs. Previously any existing file installed by _M_H 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. April 12, 1990