1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
3 <HEAD><TITLE>MH Change Log</TITLE></HEAD>
8 <B>The RAND MH Message Handling System:</B>
9 <B>UCI version MH 6.8</B>
14 Computing Support Group
15 Information and Computer Science
16 University of California, Irvine
19 <A HREF="http://www.ics.uci.edu/~mh/">http://www.ics.uci.edu/~mh/</A>
25 This document describes the changes to the
26 UCI version of the RAND MH system from MH 6.6 to
27 this release of MH 6.8. This document is meant to
28 supplement, not supersede, the standard MH User's
29 manual and MH Administrator's manual.
31 Comments concerning this documentation should
32 be addressed to the mailbox <B>Bug-MH@ICS.UCI.EDU</B>.
33 Current information about MH can be obtained from
34 the <B>MH Home Page</B> on the World Wide Web at
35 <B><A HREF="http://www.ics.uci.edu/~mh/">http://www.ics.uci.edu/~mh/</A></B>.
39 <U>ACKNOWLEDGEMENTS</U>
41 The <U>MH</U> system described herein is based on the original RAND
42 <U>MH</U> system. It has been extensively developed (perhaps too
43 much so) by Marshall T. Rose and John L. Romine at the
44 University of California, Irvine. Einar A. Stefferud, Jerry
45 N. Sweet, and Terry P. Domae provided numerous suggestions
46 to improve the UCI version of <U>MH</U>.
48 Of course, a large number of people have helped <U>MH</U>
49 along. The list of "<U>MH</U> immortals" is too long to list here.
50 For this release, numerous <U>MH-Workers</U> sent in fixes and
51 other changes. A handful of courageous <U>MH-Workers</U> volun-
52 teered to beta-test these changes; their help is particu-
57 The Regents of the University of California wish to make it
60 Although each program has been tested by its
61 contributor, no warranty, express or implied, is
62 made by the contributor or the University of
63 California, as to the accuracy and functioning of
64 the program and related program material, nor
65 shall the fact of distribution constitute any such
66 warranty, and no responsibility is assumed by the
67 contributor or the University of California in
72 In this document, certain formatting conventions are adhered
75 The names of UNIX commands, such as <U>comp</U> are presented
78 Arguments to programs, such as `msgs' and `-nobell' are
79 delimited by single-quotes.
81 Text that should be typed exactly as-is, such as
82 command lines (e.g., "folder -pack"), are delimited by
85 UNIX pathnames and envariables, such as <B>/usr/uci</B> and
86 <B>$SIGNATURE</B>, are presented in <B>bold font</B>.
89 <U>CHANGES FOR MH 6.8.4</U>
91 The MH 6.8.4 release is a minor maintenance release, and
92 contains few user-visible changes. The changes consist
93 mostly of documentation improvements, minor bug fixes, and
94 some portability enhancements for BSD 4.4 and Solaris 2.x
95 (contributed changes for HPUX and OSF1 have not yet been
96 integrated into this release). This is the current version
97 of MH as of February 8, 1996.
99 <U>Runtime Tailoring</U>
101 By default <U>post</U> will now give the SMTP <B>HELO</B> command with the
102 local hostname. If you specify a hostname with the
103 <B>clientname:</B> option in the <U>mtstailor</U> file, <U>post</U> will give the
104 <B>HELO</B> command with that name instead. If the argument to the
105 <B>clientname:</B> option is empty, no <B>HELO</B> command is given. See
106 <U>mh-tailor</U>(5) for more details.
108 <U>Multi-media Mail</U> & <U>Encryption</U>
110 A few new PGP support programs can be found in the
111 <B>support/general</B> directory. <U>repl</U> supports the `-[no]mime'
112 option. See <U>repl</U>(1) for more details.
115 <U>CHANGES FOR MH 6.8.3</U>
117 The MH 6.8.3 maintenance release contains few user-visible
118 changes. Most of the changes are internal to the multi-
119 media display program <U>mhn</U> to support RFC 1521 (the new MIME
120 standard). This is the current version of MH as of December
123 <U>Runtime Tailoring</U>
125 When posting mail using the SMTP, <U>post</U> did not normally send
126 the <B>HELO</B> command. This was because <U>SendMail</U> would fail if
127 the host name given in the <B>HELO</B> command was the local host.
128 Later versions of <U>SendMail</U> will now complain if you omit the
131 <U>User Interface Programs</U>
133 folder The <U>folder</U> command now has `-create' and `-nocreate'
134 options. See <U>folder</U>(1) for details.
136 inc A bug where `-host' would not override the <B>pophost</B>
137 as set in the <U>mtstailor</U> file has been fixed. This
138 bug was also fixed in <U>msgchk</U>.
140 mhn The <U>mhn</U> command has several changes: updates for
141 conformance with RFC 1521, addition of two caches:
142 public and private, addition of two caching poli-
143 cies: one for reading and one for writing, support
144 for storing multipart entities, and a few bug fixes.
145 See <U>mhn</U>(1) for complete details.
147 <U>CHANGES FOR MH 6.8.2</U>
149 The MH.6.8.2 patch release contains only internal changes to
150 support the BSD 4.4 and 386BSD versions of UNIX. This ver-
151 sion of <U>MH</U> was released August 25, 1993, but was not widely
154 <U>CHANGES FOR MH 6.8.1</U>
156 The MH.6.8.1 patch release is a maintenance release. This
157 is the current released version of <U>MH</U> as of August 20, 1993.
159 This release includes a small number of bug fixes, a
160 few minor enhancements, some changes for the new MIME stan-
161 dard, and support for ESMTP (RFC 1425). Support for BSD 4.4
162 and 386BSD is planned for the next release.
164 Many other fixes which have already been received are
165 still being merged. If you've sent an update for MH 6.8 to
166 <B>Bug-MH@ics.uci.edu</B> and it isn't in this release, it'll prob-
167 ably appear in the next release.
169 <U>Fixes and Enhancements</U>
171 Many minor documentation corrections were made. There are
172 also a few program changes:
174 mhn The `-cache policy', `-[no]check', and `-[no]pause'
175 switches have been added. Some other minor changes
176 have been made to comply with the new MIME standard.
177 See <U>mhn</U>(1) for complete details.
179 post When posting mail with SendMail, <U>post</U> will not use the
180 <B>ONEX</B> command when it is posting a message with BCCs.
182 scan <U>scan</U> will now work with big width values.
184 <U>Format Strings</U>
186 One new function has been added:
188 %(profile arg) This function looks up a component in the
189 <B>.mh_profile</B> or <B>context</B> files and returns the
190 value of that component.
194 Two new configuration options are present:
196 GCOS_HACK The so-called "gcos" field of the password file
197 is used as a last resort to find the user's
198 full name (see <U>mh-profile</U>(5) for details).
199 Enable this option if your <U>passwd</U>(5) man page
200 notes that the `&' character in the "gcos"
201 field stands for the login name.
203 NORUSERPASS Tells <U>MH</U> that your system doesn't have the
204 <U>ruserpass</U>(3) routine; <U>MH</U> will include its own
205 copy of this routine in its library.
208 <U>CHANGES FOR MH 6.8</U>
210 This is the current released version of <U>MH</U> as of December
211 14, 1992. This release includes a number of bug fixes and
212 internal changes to make the code more portable. Two new
213 authentication methods are provided for the POP, and support
214 for SVR4 shared libraries is complete.
216 The major user-visible change in this release is the
217 incorporation of support for multi-media mail as specified
218 by the Multi-purpose Internet Mail Extensions (<B>MIME</B>)
219 RFC 1341. This allows you to include things like audio,
220 graphics, and the like, in your mail messages. A new com-
221 mand, <U>mhn</U>, has been provided to support <B>MIME</B> and a detailed
222 man page is provided in <U>mhn</U>(1).
226 The documentation has some general improvements, and the
227 <B>READ-ME</B> document has been re-organized to help <U>MH</U> adminis-
228 trators find the appropriate configuration options for their
229 system. The <B>Makefile</B>s in the <B>papers/</B> hierarchy have been
230 changed to invoke <U>TeX</U> as "tex" (instead of "tex82").
232 The following new man pages are also available:
234 <U>mhn</U>(1) <U>mhn</U> helps the user process multi-media mail.
236 <U>mhparam</U>(1) <U>mhparam</U> lets the user extract information from
237 the <U>MH</U> profile.
239 <U>popauth</U>(8) the APOP database administration program (see
242 <U>popi</U>(1) the POP initiator (see below).
244 <U>slocal</U>(1) fully documents <U>slocal</U>. The <U>mhook</U>(1) man page
245 now documents only the <U>MH</U> receive-mail hooks.
247 <U>Internal Changes</U>
249 The <U>MH</U> source code is in the process of being cleaned up to
250 make pedantic ANSI C compilers happy. Occurrences of "NULL"
251 have been replaced by "0" where appropriate. Extra tokens
252 after "#else" and "#endif" have been put inside comments
253 (this is still in progress). The code should now compile
254 cleanly on many more systems, specifically, more variants of
257 The version of <B>tws/dtimep.c</B> which was included in MH
258 6.7.2 was incompatible with the <U>lex</U> library on some systems,
259 and has been removed.
261 A bug in the handling of blind lists inside alias files
264 <U>Post Office Protocol</U>
266 There were three new options added to the POP.
268 APOP This option indicates that the POP daemon will support
269 the non-standard <B>APOP</B> command which provides a
270 challenge-based authentication system using the <B>MD5</B>
271 message digest algorithm.
273 This option also causes the <U>popauth</U> program to be
274 installed, which allows the administrator to
275 manipulate the <B>APOP</B> authorization database.
277 KPOP Support for KERBEROS with POP. This code builds <U>popd</U>,
278 <U>inc</U> and <U>msgchk</U> to support only the "kpop" protocol.
279 This code is still expiremental, but is available for
280 those sites wishing to test it.
282 MPOP This option indicates that the POP daemon will support
283 the non-standard <B>XTND SCAN</B> command which provides per-
284 formance enhancements when using the POP over low-
287 This option also causes an interactive POP client pro-
288 gram, <U>popi</U>, to be compiled and installed. A man page
289 for the <U>popi</U> program is also provided. This option
290 requires the configuration to have "bboards: pop".
292 The APOP and MPOP non-standard POP facilities are documented
293 in <U>The Internet Message</U> (ISBN 0-13-092941-7), a book by
294 Marshall T. Rose. For more details, see <B>support/pop/pop-</B>
295 <B>more.txt</B> and the <U>Administrator's Guide</U>. The APOP option
296 peacefully co-exists with the standard POP, KPOP completely
297 replaces the standard POP, and MPOP requires "bboards: pop".
301 The file locking code has been cleaned up to support three
302 kinds of kernel-level file locking. As appropriate for your
303 system, include the LOCKF, FCNTL or FLOCK option. For more
304 details, see <U>mh-tailor</U>(5).
306 Configuration Directives
308 A number of new configuration directives have been added or
309 changed. The full details are given in the <B>READ-ME</B>.
311 cp: The command used to install new files if not
314 ln: The command used to link files together in the
315 source tree if not "ln".
317 mts: Full support for ZMAILER has been added.
319 popdir: The directory where <U>popd</U> will be installed if not
322 regtest: Set to "on" to prevent the hostname and compile
323 date from being included in <U>MH</U> binaries.
325 sharedlib: You may now specify "sun4" or "sys5" (for SVR4)
328 signal: Specifies the base type of the function returned
329 by <U>signal</U>(). This was previously defined with
332 Several `-D' options to <U>cc</U> have been added or changed:
334 APOP Authenticated POP (see above).
336 AUX Support for A/UX systems.
338 DBMPWD The DBM option has been renamed DBMPWD.
340 HESIOD Support for the HESIOD name server.
342 KPOP KERBEROS POP (see above).
344 LOCALE Support for local characters sets; uses the <U>set-</U>
345 <U>local</U>() function.
347 MAILGROUP Makes <U>inc</U> set-group-id. You may need this option
348 if your <B>/usr/spool/mail</B> is not world-writeable.
350 MIME Multi-media mail.
352 MPOP Mobile POP (see above).
354 MSGID Enables <U>slocal</U> to detect and suppress duplicate
357 OSF1 Support for DEC OSF1 systems. May be incomplete.
359 RENAME Include this option if your system has a <U>rename</U>()
362 SVR4 Support for System 5 Release 4 or newer systems.
364 TYPESIG This option has been dropped. See `signal'
367 UNISTD Include this option if your system has the
368 include file <B><unistd.h></B>.
370 VSPRINTF Include this option if your system has the
371 <U>vsprintf</U>() library routine; otherwise, _<U>doprnt</U>()
374 YEARMOD Forces the <U>mh-format</U> `year' function to return
375 2-digit values. Use this option during a brief
376 transition period if you have local <U>mh-format</U>
377 files which need to be converted to support 4-
380 <U>FUNCTIONAL CHANGES</U>
382 In addition to the configuration changes mentioned above, a
383 number of functional changes have been made to the system.
384 Many programs have new features added and a few new programs
385 have are provided. Each command's manual page gives complete
386 information about the its operation. Here is a short sum-
391 A larger number of user-defined sequences are available.
392 Previously, this number had been 10. On 32-bit systems, 26
393 user-defined sequences are available.
395 <U>Profile Components</U>
397 <U>MH</U> programs will now complain if the <B>.mh_profile</B> does not
398 end in a newline. Also, one enhancement and one new profile
399 component are provided:
401 Aliasfile: Multiple filenames may now be given.
403 Inbox: New; the default folder (for <U>inc</U>, etc.) if not
406 <U>Format Strings</U>
408 A few minor bugs were fixed in format string handling, and a
409 few new features were added. See <U>mh-format</U>(5) for complete
412 Addresses An attempt is made to decipher X.400
413 RFC 987-style addresses.
415 Comments Comments may be added to <U>mh-format</U> files; a
416 comment begins with the 2-character sequence
417 "%;", and ends with an un-escaped newline.
419 %(modulo n) The `modulo' function escape has been added.
421 %(year{date}) The date parser has been enhanced to
422 understand more illegal date formats; `year'
423 now returns a 4-digit number.
425 <U>User Interface Programs</U>
427 A number of <U>MH</U> commands have minor changes:
429 ali The output with `-user -list' was changed to match
430 the output with `-nouser -list'.
432 burst Will no longer drop the last message of a digest.
434 inc Accepts the `-apop' switch for authenticated POP
435 (see above); will attempt to detect write errors
436 (e.g., no space left on device) when incorporating
437 mail; no longer replaces newline characters with
440 folder The `-noprint' option was broken and has been
443 forw Supports `-mime' to use MIME-style multi-part mes-
446 mhl Will no longer put an extra space at the end of
447 the `%{text}' in a formatfield.
449 mhn New; manipulates multi-media (MIME) messages; a
450 detailed man page is provided.
452 mhparam New; reads the <U>MH</U> profile (and context) and writes
453 the values of the specified components on the
454 standard output; useful in programmatic con-
457 msgchk Supports `-apop' (see above).
459 packmbox New; packs an <U>MH</U> folder into a UUCP-style mailbox.
461 popi New; a client-side POP initiator; available only
462 if you built <U>MH</U> with the MPOP option (see above).
464 refile A bug where the `rmmproc' did not remove all
465 specified message files has been fixed.
467 scan The `-file' option is fully supported and will no
468 longer complain about empty folders.
470 send Supports `-mime' and `-split' to split large mes-
471 sages into multiple partial messages using MIME.
473 <U>Support Programs</U>
475 fmtdump Can now read a format file, or a format string
476 given on the command line.
478 popauth New; manages the APOP authorization database (see
481 sendmail The <U>sendmail</U> replacement will be installed only if
482 your `mts' setting uses the `/smtp' option.
484 slocal A new man page for <U>slocal</U> is available; the new
485 `mbox' action is available to write a file in
486 <U>packf</U> format; a bug where extra `>' characters
487 were written to MMDF-style maildrops has been
488 fixed; if compiled with the MSGID option, can
489 detect and suppress reception of duplicate mes-
492 viamail New; bundles a directory (like <U>shar</U>) and sends it
493 through multi-media mail.
496 <U>CHANGES FOR MH 6.7.2</U>
498 The MH.6.7.2 patch release is a maintenance release. This
499 is the current released version of <U>MH</U> as of February 1,
502 This release now supports the NCR Tower running SYS5R4.
503 The WP changes installed in MH.6.7.0 have been removed.
505 <U>Shared Libraries</U>
507 Support for SYS 5 shared libraries is in progress.
509 Support for Sun OS 4.0 shared libraries had been
510 improved. The <U>MH</U> library has been modified to move initial-
511 ized data into a data definition file. The shared library
512 will now consist of a <B>libmh.so</B> and <B>libmh.sa</B> file. The
513 shared library version number will no longer track the <U>MH</U>
514 patch release number, and its numbering begins with version
515 `1.1' with this release.
517 <U>Replacement SendMail</U>
519 Since many standard system programs expect to post mail by
520 invoking <B>/usr/lib/sendmail</B>, a minimal replacement <U>SendMail</U>
521 is provided in this release. This replacement is meant to
522 be installed on (e.g., diskless) client workstations which
523 post mail using SMTP, and do not run a message transport
524 system. It will call <U>post</U> to post mail; be sure you have
525 configured <U>MH</U> with the `/smtp' mts option. This sendmail
526 replacement is installed in your <U>MH</U> etc directory, and you
527 should link <B>/usr/lib/sendmail</B> to it.
529 <U>Format Strings</U>
531 A manual page for the <U>fmtdump</U> format string disassembler is
532 supplied, and some new format functions were added:
534 folder In <U>scan</U>, this component escape contains the name of
535 the current folder. It is not defined for other <U>MH</U>
538 getenv This function escape returns the value of an
539 environment variable.
541 There will be some additional changes in these routines
542 in the next patch release.
544 <U>Other Bug Fixes and Enhancements</U>
546 In addition to some other minor enhancements, some bugs were
547 fixed which in general were not user-visible:
549 Blind lists Users may now specify RFC822 address groups in
550 their alias files. These groups are
551 implemented by <U>MH</U> as blind lists.
553 date parsing A number of sites have brain-damaged versions
554 of <B>lex</B>. <U>MH</U> will now come with the date parser
555 already run through lex.
557 mark A bug dealing with <U>mark</U> and the sequence named
558 `cur' is fixed. This was previously a problem
561 MH.doc The <U>MH</U> nroff version of the manual no longer
562 contains teletype escape sequences.
564 scan Can now handle headers as long as 512 bytes.
566 Signals <U>MH</U> programs will no longer catch the <B>HUP</B> and
567 <B>TERM</B> signals while waiting for a sub-process.
568 This was causing hung processes when your
569 terminal line was was dropped unexpectedly.
571 Signature If your signature is not defined, <U>MH</U> will use
572 the value of the gecos field of your
573 <B>/etc/passwd</B> entry as your signature.
575 version.sh A bug in the <B>awk</B> script in <B>config/version.sh</B>
579 <U>CHANGES FOR MH 6.7.1a</U>
581 The MH.6.7.1a patch was made available on January 25, 1991
582 for limited distribution only. (This release had some known
583 bugs, and so was not widely distributed.) This release
584 incorporates several new features of particular note to
585 users of sequences and format strings, as well as some gen-
586 eral documentation improvements. There are a few minor
587 enhancements and internal bug fixes also. Complete documen-
588 tation of these changes is given in the individual manual
589 pages, and the <B>READ-ME</B> file.
591 <U>Message Sequences</U>
593 A new manual page, <U>mh-sequence</U> (5), has been added. This
594 manual page attempts to completely document the syntax and
595 semantics of <U>MH</U> message sequence specifications.
597 A powerful new feature is the ability to specify mes-
598 sage ranges with user-defined sequences. The specification
599 "name:n" may be used, and it designates up to the first `n'
600 messages (or last `n' messages for `-n') which are
601 elements of the user-defined sequence `name'.
603 The message specifications "name:next" and "name:prev"
604 may also be used, and they designate the next or previous
605 message (relative to the current message) which is an ele-
606 ment of the user-defined sequence `name'. The specifica-
607 tions "name:first" and "name:last" are equivalent to
608 "name:1" and "name:-1", respectively. The specification
609 "name:cur" is not allowed (use just "cur" instead).
611 These specifications allow the user to step through a
612 sequence with a command like "show name:next".
614 <U>Format Strings</U>
616 <U>MH</U> format strings now support an if-then-elseif-else clause
617 (the `elseif' is new). This will make format strings with
618 multi-case conditions somewhat less complex.
620 A new format function `addr' had been added. This
621 function takes an address header name as its argument, and
622 returns a rendering of the address contained in that header
623 as "user@host" or "host!user".
625 Format widths now may be specified as a negative
626 number. This causes the output to be right-justified within
631 Along with a few minor enhancements, some bugs were fixed
632 which in general were not user-visible:
634 fmtdump This new program produces an pseudo-language
635 representation of an <U>MH</U> format file, vaguely
636 reminiscent of assembly language. While this
637 output format is not explicitly documented, it can
638 still be useful when debugging <U>MH</U> format files.
640 refile Now takes a `-[no]rmmproc' switch. This makes it
641 easier to avoid loops when your "rmmproc" calls
644 slocal A problem with the UUCP-style mailboxes, the
645 `RPATHS' configuration option, and the "Return-
646 Path:" header was fixed.
648 sortm Will ensure that no messages are lost if it is
651 whatnow Will now tell you where it is leaving the draft,
652 when interrupted in the initial edit. Previously
653 the draft was simply unlinked.
655 <U>Compilation Options</U>
657 LOCKF This option causes <U>MH</U> to use the <B>lockf()</B> system
658 call for locking (if available), instead of
662 <U>CHANGES FOR MH 6.7.1</U>
664 The MH.6.7.1 patch release is a maintenance release, and as
665 such, provides few changes from the previous release. This
666 is the current released version of <U>MH</U> as of December 14,
669 <U>User-Visible Changes</U>
671 The major change in this release is to the POP daemon
672 (popd). In <U>MH</U> 6.7, it was changed to be able to read both
673 UUCP and MMDF-style mailboxes. This did not work as
674 reported. The code has now been changed to parse MMDF-style
675 mailboxes if you are configuring MH to run with MMDF as your
676 message transport system. Otherwise, UUCP-style mailboxes
679 Since there are number of client programs available for
680 only the POP2 protocol instead of POP3, popd has been
681 updated to support both protocols. This is a major win. If
682 you are compiling with POP turned on, add the `POP2' option
683 to your <U>MH</U> config file, and the POP daemon will respond to
684 POP2 or POP3 commands. If you're using POP, there's no rea-
685 son not to include this option; it does not affect the
686 existing support for POP3.
688 <U>Internal Changes</U>
690 Some bugs were fixed which in general were not user-visible:
692 context Errors when writing out sequences are detected
695 inc No longer inserts extra blank lines into
698 mh-format A nil pointer bug in the address parser was
701 repl, etc. The malloc/free problem has been fixed.
703 rmf A spelling error in the `-nointeractive' switch
706 rcvtty Will not print the message size if not available
709 send/post Illegal signatures (those containing unquoted
710 "."s) will be quoted.
713 <U>GENERAL CHANGES FOR MH 6.7.0</U>
715 The author is pleased to announce that there are very few
716 user-visible changes to <U>MH</U> 6.7 from the previous <U>MH</U> 6.6 dis-
717 tribution. The majority of development was in the form of
718 bug fixes and slight enhancements. In addition, this
719 release is slightly faster than the previous release. With
720 a few minor exceptions, it is backward-compatible with the
721 previous release. <U>MH</U> 6.7.0 is the current released version
722 of <U>MH</U> as of April 12, 1990.
724 The changes were made mainly to generalize the source
725 code to be compatible with a larger range of systems and
726 compilers. There were many small changes to add declara-
727 tions for ANSI C compliance. The System 5 support has been
728 brought up to SYS5 R3, and there is support for Sun OS 4.0.
730 <U>User-Visible Changes</U>
732 Here a quick summary of the changes that were made which are
733 not backward-compatible with the previous release of <U>MH</U>:
735 repl The `-format' and `-noformat' switches have not been
736 functional since <U>MH</U> 5, and have been removed. Any
737 users who have these switches in their <B>.mh_profile</B>,
738 will have to remove them.
740 sortm Previously, in most cases <U>sortm</U> would fill-in any
741 gaps in the numbering of a folder, by renumbering the
742 messages starting with `1'. This will no longer
743 occur; for this behavior, use "folder -pack".
748 A new profile entry `Aliasfile:' has been added. The <U>ali</U>,
749 <U>send</U>, and <U>whom</U> programs will look for this profile entry and
750 treat it as they would an argument to `-alias'. This should
751 make it easier for novice <U>MH</U> users to begin using aliases.
754 <U>Reading Network News</U> & <U>BBoards</U>
756 The UCI BBoards facility can read local BBoards, and if com-
757 piled with the `bboards: pop' and `pop: on' options, can
758 also read remote BBoards using the Post Office Protocol (POP
759 ver. 3). With this release, <U>MH</U> can instead be compiled to
760 read the Network News (i.e., USENET) using the Network News
761 Transfer Protocol (NNTP).
763 This capability is enabled by compiling <U>MH</U> with the
764 `bboards: nntp' and `pop: on' options. Unfortunately, read-
765 ing remote BBoards via the POP and reading the Network News
766 via the NNTP are mutually exclusive options.
768 To support the NNTP, a new module, <B>uip/pshsbr.c</B>, is
769 compiled and loaded into <U>bbc</U> and <U>msh</U> instead of
770 <B>uip/popsbr.c</B>. The default BBoard is changed from "system"
771 to "general" for the NNTP.
773 When reading BBoards, <U>bbc</U> will first look for local
774 BBoards, and then contact the NNTP server to read the Net-
775 work News. The location of the NNTP server should be speci-
776 fied with the `nntphost:' entry in the <B>mtstailor</B> file (see
777 the <U>MH</U> Administrator's Guide for details), or may be speci-
778 fied on the command line with the `-host' switch.
781 <U>Format Strings</U>
783 The manual page <U>mh-format</U> (5) has been rewritten to give a
784 better explanation of how to write format strings, and how
785 they are interpreted by <U>MH</U>. A line-by-line description of
786 the default <U>repl</U> form file (<B>replcomps</B>) is now included in
789 Some new format functions were added, and others were
792 trim Strips any leading and trailing white-space from
793 the current string value.
795 date2local Will coerce the date to the local timezone.
797 date2gmt Will coerce the date to GMT.
799 divide Divides the current numeric value by its
800 argument. This could be useful for building
801 <U>scan</U> format strings which print large message
802 sizes in "Kb" or "Mb".
804 friendly If the address field cannot be parsed, this
805 function will return the text of the address
806 header, instead of a null string.
808 szone A flag indicating whether the timezone was
809 explicit in the date string.
811 <U>PROGRAM CHANGES</U>
813 In addition to the general changes mentioned above, many
814 programs have specific new features added, either by new
815 switches or by expanded functionality. Each command's
816 manual page gives complete information about its new
817 options. Here is a short summary.
819 <U>User Interface Programs</U>
821 anno Accepts a `-nodate' switch which inhibits the date
822 annotation, leaving only the body annotation.
824 folder When invoked with the `-pack' switch and the new
825 `-verbose' switch, <U>folder</U> will give information
826 about the actions taken to renumber the folder.
828 On most systems, <U>folder</U> can now create any
829 non-existing parent folders of a new sub-folder.
831 forw When making digests, <U>forw</U> will put the issue and
832 volume numbers in addition to the digest list
833 name, in the digest trailer.
835 inc Detects NFS write failures, and will not zero your
836 maildrop in that event.
838 msh Supports a variant of the new <U>sortm</U>.
840 prompter Considers a period on a line by itself to signify
841 end-of-file when the `-doteof' switch is speci-
844 repl The `-[no]format' switches have not been used
845 since <U>MH</U> 5 and have been deleted. <U>repl</U> will now
846 find filter files in the <U>MH</U> library area.
848 scan With the `-file msgbox' switch, <U>scan</U> can list a
849 <U>packf</U>'d-format file directly (without using <U>msh</U>).
851 Lists messages in reverse order with the
852 `-reverse' switch. This should be considered a
855 sortm Now has the options: `-textfield field',
856 `-notextfield', `-limit days', and `-nolimit'.
858 With these options, <U>sortm</U> can be instructed to
859 sort a folder based on the contents of an arbi-
860 trary header such as "subject".
862 <U>sortm</U> minimizes renaming messages, and will no
863 longer arbitrarily pack folders; for this
864 behavior, use "folder -pack".
866 whatnow Deletes the draft by renaming it with leading
867 comma, instead of unlinking it.
869 <U>MH Support Programs</U>
871 The following support programs also have changes or
874 mhl Will now accept a format string on any component,
875 not just on addresses and dates.
877 popd Will use <U>shadow</U> passwords if compiled with the <B>SHA-</B>
878 <B>DOW</B> option. It can now also read UUCP-style mail-
881 rcvtty If given no arguments, <U>rcvtty</U> will produce a <B>scan</B>
882 listing as specified by a format string or file; a
883 default format string is used if one is not speci-
886 Before the listing is written to the users terminal,
887 the terminal's bell is rung and a newline is output.
888 The `-nobell' and the `-nonewline' options inhibit
891 <U>rcvtty</U> will obey terminal write notification set by
892 <U>mesg</U>. With the `-biff' switch, <U>rcvtty</U> will also
893 obey the mail notification status set by <U>biff</U>.
895 On <B>BSD43</B> systems, as with <U>write</U>, <U>rcvtty</U> will be
896 installed set-group-id to the group "tty".
898 slocal Understands UUCP-style "From " lines and will write
899 output files using this format if appropriate.
900 Before invoking a delivery program, <U>slocal</U> will
901 strip such lines unless compiled with the <B>RPATHS</B>
902 option, in which case it will will convert such
903 lines into "Return-Path:" headers.
905 <U>slocal</U> has a new result code "N", for use in <B>.mail-</B>
906 <B>delivery</B> files. With this result code, <U>slocal</U> will
907 perform the action only if the message has not been
908 delivered and the previous action succeeded. This
909 allows for performing an action only if multiple
914 Several of the older <U>MH</U> papers have been difficult to format
915 because they depended on an older version of PhDTeX which
916 was not supplied. These papers have been updated, and some
917 TeX library files are supplied in <B>papers/doclib/</B>, so that
918 these papers may be generated on any system with TeX.
920 Many of the manual pages have been revised to include
921 documentation of new command options, and some have been
922 expanded to give more detail. All are now slightly refor-
923 matted at installation time to make them more compatible
924 with programs like <U>makewhatis</U>.
927 <U>MH ADMINISTRATION</U>
929 This section describes changes in configuring, compiling and
930 installing <U>MH</U> 6.7 and should not be of interest to casual <U>MH</U>
931 users. The <B>READ-ME</B> file has been considerably revised and
932 expanded to give more detail about the configuration and
933 compilation options which have been included in this
934 release. Some compilation options have been removed, and
935 many new options have been added.
937 All <U>MH</U> <B>Makefile</B>s have been updated to work around some
938 incompatibilities introduced in newer versions of <U>make</U>. <U>MH</U>
939 programs will no longer be installed with the sticky-bit
942 Reading this section not a substitute for carefully
943 reading the <B>READ-ME</B> file before attempting to compile <U>MH</U>
948 Some bugs were fixed which in general were not user-visible:
950 address parser Fixed to allow use of the "AT" domain, and
951 some minor bugs were fixed pertaining to
954 date parser Improved to accept more forms of illegal
955 dates. Military timezones were removed.
957 dynamic memory Many problems with corruption of the dynamic
958 memory pool have been fixed.
960 locking Will open files for write, if necessary to
963 nil pointers All reported nil pointer problems have been
966 replcomps The "In-Reply-To:" header had quotes added
967 around the date field to comply with RFC822.
971 If <U>MH</U> is compiled with the <B>WP</B> option, <U>send</U> recognizes an
972 address between "<<" and ">>" characters such as:
974 To: << rose -org psi >>
976 to be a name meaningful to a whitepages service. In order
977 to expand the name, <U>send</U> must be invoked interactively
978 (i.e., not from <U>push</U>). For each name, <U>send</U> will invoke a
979 command called <U>fred</U> in a special mode asking to expand the
982 To get a copy of the white pages service, contact
985 <U>Configuration Options</U>
987 Some configuration options have been added or changed:
989 cc To specify an alternate C compiler.
991 ccoptions Defaults to `-O'.
993 bboards May now be defined as "on", "off", "pop", or
996 bbdelivery Determines whether the bboard delivery agent and
997 library files should be installed.
999 lex To specify an alternate version of <U>lex</U>.
1001 mailgroup If defined, <U>inc</U> will be made set-group-id to
1004 sharedlib For <B>SUN40</B> systems; if "on", makes <B>libmh.a</B> into a
1007 slibdir The directory where the above shared library
1008 should be installed.
1010 sprintf Set this to "int" if that's what your
1011 <U>sprintf</U> (3) library routine returns.
1013 <U>Compilation Options</U>
1015 For different configurations, several `-D' options to <U>cc</U>
1016 have been added or changed:
1018 BERK This disables the address and date parsing rou-
1019 tines. If you want to do much with
1020 <U>mh-format</U> (5), don't enable this.
1022 BSD43 Will make <U>rcvtty</U> set-group-id to the group
1025 DBM For sites with a dbm-style password file (such
1026 as with Yellow Pages), <U>MH</U> will not read the
1027 entire passwd file into a cache. At one site
1028 that runs YP on a large passwd file, using this
1029 showed a 6:1 performance improvement.
1031 NETWORK This option has been deleted. See <B>SOCKETS</B>.
1033 NOIOCTLH Tells <U>MH</U> not to include the file <B>sys/ioctl.h</B>.
1034 Use this if this file is not present on your
1037 NTOHLSWAP On systems with TCP/IP networking, <U>msh</U> will try
1038 to use the <B>ntohl()</B> macro from the file
1039 <B>netinet/in.h</B> to byte-swap the binary map files
1042 SENDMAILBUG Some versions of <U>sendmail</U> return a <B>451</B> (failure)
1043 reply code when they don't mean to indicate
1044 failure. This option considers that code to be
1045 equivalent to <B>250</B> (OK).
1047 SHADOW Causes <U>popd</U> to read the file <B>/etc/shadow</B> for
1048 encrypted passwords instead of <B>/etc/passwd</B>. Use
1049 this if you have a shadow password file (such as
1050 on newer versions of SYSTEM 5).
1052 SOCKETS Enable this if you are on a non-BSD system with
1053 a socket interface for TCP/IP networking compa-
1054 tible with 4.2BSD UNIX.
1056 SUN40 Use on Suns running Sun OS 4.0 and later.
1058 SYS5 This option has been updated to refer to SYS5 R3
1061 SYS5DIR Use this if your system uses "struct dirent"
1062 instead of "struct direct". This should be true
1063 for systems based on SYS5 R3 and later.
1065 TYPESIG Defines the base type for the <U>signal</U> system
1066 call. This defaults to "int", but should be
1067 defined as "void" if appropriate for your sys-
1070 WP Enables support for the White Pages service.
1074 <U>MH</U> will now explicitly set the protection mode on every file
1077 Previously any existing file installed by <U>MH</U> would be
1078 backed up into the source tree, and then overwritten. Now,
1079 a few system-dependent files will not be overwritten, and
1080 your changes will have to be merged in by hand. See the
1081 <B>READ-ME</B> file for more details.