Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / papers / changes / mh-changes.ms
1 .\" @(#)$Id: mh-changes.ms,v 1.33 1996/02/08 19:15:52 jromine Exp $
2 .\" Standard -ms macros
3 .\" with the following changes
4 .ds lq \\*Q
5 .ds rq \\*U
6 .\" remember to update date in text below
7 .DA "February 8, 1996"
8 .if n \{\
9 .na
10 .\}
11 .nr PO 1i
12 .po 1i
13 .\" .EH ''Changes to MH 6.7'%'
14 .\" .OH ''Changes to MH 6.7'%'
15 .ds LH Changes to MH 6.8
16 .ds CH
17 .ds RH %
18 .TL
19 Changes to
20 .br
21 The RAND MH Message Handling System:
22 .br
23 UCI version MH 6.8
24 .AU
25 John L. Romine
26 .AI
27 Computing Support Group
28 Information and Computer Science
29 University of California, Irvine
30 Irvine, CA  92717\-3425
31 Bug-MH@ICS.UCI.EDU
32 http://www.ics.uci.edu/~mh
33 .AB
34 .PP
35 This document describes the changes to the
36 UCI version of the RAND MH system from MH 6.6
37 to this release of MH 6.8.
38 This document is meant to supplement,
39 not supersede,
40 the standard MH User's manual and MH Administrator's manual.
41 .PP
42 Comments concerning this documentation should be addressed to the
43 mailbox \fBBug\-MH@ICS.UCI.EDU\fP.
44 Current information about MH can be obtained from the 
45 \fBMH Home Page\fP on the World Wide Web at 
46 \fBhttp://www.ics.uci.edu/~mh\fP.
47 .AE
48 .SH
49 ACKNOWLEDGEMENTS
50 .LP
51 The \fIMH\fP system described herein is
52 based on the original RAND \fIMH\fP system.
53 It has been extensively developed (perhaps too much so) by Marshall T. Rose
54 and John L. Romine at the University of California, Irvine.
55 Einar A. Stefferud, Jerry N. Sweet,
56 and Terry P. Domae provided numerous suggestions
57 to improve the UCI version of \fIMH\fP.
58 .PP
59 Of course,
60 a large number of people have helped \fIMH\fP along.
61 The list of \*(lq\fIMH\fP immortals\*(rq is too long to list here.
62 For this release, numerous \fIMH\-Workers\fP sent in fixes and other
63 changes.  A handful of courageous \fIMH\-Workers\fP volunteered
64 to beta-test these changes; their help is particularly appreciated.
65 .KS
66 .SH
67 DISCLAIMER
68 .LP
69 The Regents of the University of California wish to make it known that:
70 .QP
71 Although each program has been tested by its contributor,
72 no warranty, express or implied,
73 is made by the contributor or the University of California,
74 as to the accuracy and functioning of the program
75 and related program material,
76 nor shall the fact of distribution constitute any such warranty,
77 and no responsibility is assumed by the contributor
78 or the University of California in connection herewith.
79 .KE
80 .KS
81 .SH
82 CONVENTIONS
83 .LP
84 In this document,
85 certain formatting conventions are adhered to:
86 .IP
87 The names of
88 \s-2UNIX\s+2
89 commands, such as \fIcomp\fP
90 are presented in \fIitalics\fP.
91 .IP
92 Arguments to programs, such as `msgs' and `\-nobell' are
93 delimited by single-quotes.
94 .IP
95 Text that should be typed exactly as-is, such as 
96 command lines (e.g., \*(lqfolder \-pack\*(rq),
97 are delimited by double-quotes.
98 .IP
99 \s-2UNIX\s+2
100 pathnames and envariables,
101 such as \fB/usr/uci\fP and \fB$SIGNATURE\fP,
102 are presented in \fBbold font\fP.
103 .KE
104 .ds LH Changes for MH 6.8.4
105 .bp
106 .SH 
107 CHANGES FOR MH 6.8.4
108 .LP
109 The MH 6.8.4 release is a minor maintenance release,
110 and contains few user-visible changes.
111 The changes consist mostly of documentation improvements,
112 minor bug fixes, and some portability enhancements
113 for BSD 4.4 and Solaris 2.x
114 (contributed changes for HPUX and OSF1 have not yet
115 been integrated into this release).
116 This is the current version of MH as of February 8, 1996.
117 .SH 
118 Runtime Tailoring
119 .LP
120 By default 
121 \fIpost\fP will now give the SMTP \fBHELO\fP command with
122 the local hostname.
123 If you specify a hostname with the \fBclientname:\fP option
124 in the \fImtstailor\fP file,
125 \fIpost\fP will give the \fBHELO\fP command with that name instead.
126 If the argument to the \fBclientname:\fP option is empty,
127 no \fBHELO\fP command is given.
128 See \fImh-tailor\fP\|(5) for more details.
129 .SH
130 Multi-media Mail & Encryption
131 .LP
132 A few new PGP support programs can be found in 
133 the \fBsupport/general\fP directory.
134 \fIrepl\fP supports the `\-[no]mime' option.  See
135 \fIrepl\fP\|(1) for more details.
136 .PP
137 .ds LH Changes for MH 6.8.3
138 .bp
139 .ds CF December 1, 1993
140 .SH 
141 CHANGES FOR MH 6.8.3
142 .LP
143 The MH 6.8.3 maintenance release contains few user-visible
144 changes.  Most of the changes are internal to the
145 multi-media display program \fImhn\fP to support
146 RFC 1521 (the new MIME standard).
147 This is the current version of MH as of December 1, 1993.
148 .SH 
149 Runtime Tailoring
150 .LP
151 When posting mail using the SMTP,
152 \fIpost\fP did not normally send the \fBHELO\fP command.  
153 This was because \fISendMail\fP would fail
154 if the host name given in the \fBHELO\fP command was the local host.
155 Later versions
156 of \fISendMail\fP will now complain if you omit the \fBHELO\fP
157 command.
158 .SH
159 User Interface Programs
160 .IP folder \w'msgchk'u+2n
161 The \fIfolder\fP command now has `\-create' and `\-nocreate'
162 options.  See \fIfolder\fP\|(1) for details.
163 .IP inc
164 A bug where `\-host' would not override the \fBpophost\fP
165 as set in the \fImtstailor\fP file has been fixed.
166 This bug was also fixed in \fImsgchk\fP.
167 .IP mhn
168 The \fImhn\fP command has several changes:
169 updates for conformance with RFC 1521,
170 addition of two caches: public and private,
171 addition of two caching policies: one for reading and one for writing,
172 support for storing multipart entities, and
173 a few bug fixes.  See \fImhn\fP\|(1) for complete details.
174 .SH
175 CHANGES FOR MH 6.8.2
176 .LP
177 The MH.6.8.2 patch release contains only
178 internal changes to support the BSD 4.4
179 and 386BSD versions of 
180 .SM
181 UNIX.
182 .NL
183 This version of \fIMH\fP 
184 was released August 25, 1993, but was not widely distributed.
185 .SH
186 CHANGES FOR MH 6.8.1
187 .LP
188 The MH.6.8.1 patch release is a maintenance
189 release.
190 This is the current released version of \fIMH\fP
191 as of August 20, 1993.
192 .PP
193 This release includes a small number
194 of bug fixes, a few minor enhancements, some changes
195 for the new MIME standard, and support for ESMTP (RFC 1425).
196 Support for BSD 4.4 and 386BSD is planned for the next
197 release.
198 .PP
199 Many other fixes which have already been received
200 are still being merged.
201 If you've sent an update for MH 6.8 to \fBBug-MH@ics.uci.edu\fP
202 and it isn't in this release,
203 it'll probably appear in the next release.
204 .SH
205 Fixes and Enhancements
206 .LP
207 Many minor documentation corrections were made.
208 There are also a few program changes:
209 .IP mhn \w'post'u+2n
210 The `\-cache\0policy', `\-[no]check', and `\-[no]pause'
211 switches have been added.   Some other minor changes have
212 been made to comply with the new MIME standard.
213 See \fImhn\fP\|(1) for complete details.
214 .IP post 
215 When posting mail with SendMail, \fIpost\fP will
216 not use the \fBONEX\fP command when it is posting 
217 a message with BCCs.
218 .IP scan
219 \fIscan\fP will now work with big width values.
220 .SH 
221 Format Strings
222 .LP
223 One new function has been added:
224 .IP "%(profile arg)" \w'XXprofileXargX'u+2n
225 This function looks up a component in the 
226 \fB\&.mh\(ruprofile\fR or \fBcontext\fP files
227 and returns the value of that component.
228 .SH
229 Configuration
230 .LP
231 Two new configuration options are present:
232 .IP GCOS_HACK \w'NORUSERPASS'u+2n
233 The so-called \*(lqgcos\*(rq field of the password file is 
234 used as a last resort
235 to find the user's full name (see \fImh-profile\fP\|(5) for details).
236 Enable this option
237 if your \fIpasswd\fP\|(5) man page notes that the `&'
238 character in the \*(lqgcos\*(rq field stands for the login name.
239 .IP NORUSERPASS
240 Tells \fIMH\fR that your system doesn't have the
241 \fIruserpass\fP\|(3) routine;
242 \fIMH\fR will include its own copy of this
243 routine in its library.
244 .ds LH Changes for MH 6.8
245 .bp
246 .ds CF December 14, 1992
247 .SH
248 CHANGES FOR MH 6.8
249 .LP
250 This is the current released version of \fIMH\fP
251 as of December 14, 1992.  This release includes a number
252 of bug fixes and internal changes to make the code more
253 portable.
254 Two new authentication methods are provided for the POP,
255 and support for SVR4 shared libraries is complete.
256 .PP
257 The major user-visible change in this release is the incorporation
258 of support for multi-media mail as specified by the
259 Multi-purpose Internet Mail Extensions (\fBMIME\fP)
260 RFC\ 1341.
261 This allows you to include things like audio,
262 graphics, and the like, in your mail messages.
263 A new command, \fImhn\fP, 
264 has been provided to support \fBMIME\fP and
265 a detailed man page is provided in \fImhn\fP\|(1).
266 .SH
267 Documentation
268 .LP
269 The documentation has some general improvements, and
270 the \fBREAD-ME\fP document has been re-organized
271 to help \fIMH\fP administrators find the appropriate
272 configuration options for their system.
273 The \fBMakefile\fPs in the \fBpapers/\fP hierarchy have
274 been changed to invoke \fITeX\fP as
275 \*(lqtex\*(rq (instead of \*(lqtex82\*(rq).
276 .LP
277 The following new man pages are also available:
278 .IP \fImhn\fP\|(1) \w'\fIpopauth\fP\|(8)'u+2n
279 \fImhn\fP helps the user process multi-media mail.
280 .IP \fImhparam\fP\|(1)
281 \fImhparam\fP lets the user extract information from 
282 the \fIMH\fP profile.
283 .IP \fIpopauth\fP\|(8)
284 the APOP database administration program (see below).
285 .IP \fIpopi\fP\|(1)
286 the POP initiator (see below).
287 .IP \fIslocal\fP\|(1)
288 fully documents \fIslocal\fP.  The \fImhook\fP(1) man page now
289 documents only the \fIMH\fP receive-mail hooks.
290 .SH
291 Internal Changes
292 .LP
293 The \fIMH\fP source code is in the process of being
294 cleaned up to make pedantic ANSI C compilers happy.
295 Occurrences of \*(lqNULL\*(rq have been replaced by
296 \*(lq0\*(rq where appropriate.
297 Extra tokens after \*(lq#else\*(rq and \*(lq#endif\*(rq
298 have been put inside comments (this is still in progress).
299 The code should now compile cleanly on many more systems,
300 specifically, more variants of SVR4.
301 .PP
302 The version of \fBtws/dtimep.c\fP which was included in 
303 MH 6.7.2 was incompatible with the \fIlex\fP library
304 on some systems, and has been removed.
305 .PP
306 A bug in the handling of blind lists inside alias
307 files has been fixed.
308 .KS
309 .SH
310 Post Office Protocol
311 .LP
312 There were three new options added to the POP.
313 .IP APOP \w'APOP'u+2n
314 This option indicates that the POP daemon will
315 support the non-standard \fBAPOP\fP command which
316 provides a challenge-based authentication system using
317 the \fBMD5\fP message digest algorithm.
318 .IP
319 This option also causes the
320 \fIpopauth\fP program to be installed, which
321 allows the administrator to manipulate the \fBAPOP\fP
322 authorization database.
323 .KE
324 .IP KPOP
325 Support for KERBEROS with POP.
326 This code builds
327 \fIpopd\fP, \fIinc\fP and \fImsgchk\fP to support only the 
328 \*(lqkpop\*(rq protocol.
329 This code is still expiremental, but is available for 
330 those sites wishing to test it.
331 .IP MPOP
332 This option indicates that the POP daemon will
333 support the non-standard
334 \fBXTND SCAN\fP command which provides performance
335 enhancements when using the POP over low-speed connections.
336 .IP
337 This option also causes an interactive POP
338 client program, \fIpopi\fP, to be compiled and installed.
339 A man page for the \fIpopi\fP program is also provided.
340 This option requires the configuration to
341 have \*(lqbboards: pop\*(rq.
342 .LP
343 The APOP and MPOP non-standard POP
344 facilities are documented in
345 \fIThe Internet Message\fR (ISBN 0\-13\-092941\-7),
346 a book by Marshall T. Rose.
347 For more details, see \fBsupport/pop/pop-more.txt\fR
348 and the \fIAdministrator's Guide\fP.
349 The APOP option peacefully co-exists with the standard POP,
350 KPOP completely replaces the standard POP, and
351 MPOP requires \*(lqbboards: pop\*(rq.
352 .SH
353 File Locking
354 .LP
355 The file locking code has been cleaned up to support
356 three kinds of kernel-level file locking.  As appropriate
357 for your system, include the
358 LOCKF, FCNTL or FLOCK option.  For more
359 details, see \fImh-tailor\fP\|(5).
360 .SH
361 .KS
362 Configuration Directives
363 .LP
364 A number of new configuration directives have been added
365 or changed.  The full details are given in the \fBREAD-ME\fP.
366 .IP cp: \w'MAILGROUP'u+2n
367 The command used to install new files if not \*(lqcp\*(rq.
368 .IP ln:
369 The command used to link files together in the source tree
370 if not \*(lqln\*(rq.
371 .IP mts:
372 Full support for ZMAILER has been added.
373 .IP popdir:
374 The directory where \fIpopd\fP will be installed if not \fB/usr/etc\fP.
375 .IP regtest:
376 Set to \*(lqon\*(rq to prevent the hostname and compile
377 date from being included in \fIMH\fP binaries.
378 .IP sharedlib:
379 You may now specify \*(lqsun4\*(rq or \*(lqsys5\*(rq 
380 (for SVR4) shared libraries.
381 .IP signal:
382 Specifies the base type of the function returned by \fIsignal\fP\|().
383 This was previously defined with \*(lqoptions TYPESIG\*(rq.
384 .KE
385 .LP
386 Several `-D' options to \fIcc\fP have been added or changed:
387 .IP APOP \w'MAILGROUP'u+2n
388 Authenticated POP (see above).
389 .IP AUX 
390 Support for A/UX systems.
391 .IP DBMPWD
392 The DBM option has been renamed DBMPWD.
393 .IP HESIOD
394 Support for the HESIOD name server.
395 .IP KPOP
396 KERBEROS POP (see above).
397 .IP LOCALE
398 Support for local characters sets; uses the \fIsetlocal\fP\|() function.
399 .IP MAILGROUP
400 Makes \fIinc\fP set-group-id.
401 You may need this option if your \fB/usr/spool/mail\fP
402 is not world-writeable.
403 .IP MIME
404 Multi-media mail.
405 .IP MPOP
406 Mobile POP (see above).
407 .IP MSGID
408 Enables \fIslocal\fP to detect and surpress duplicate messages.
409 .IP OSF1
410 Support for DEC OSF1 systems.  May be incomplete.
411 .IP RENAME
412 Include this option if your system has a \fIrename\fP\|()
413 system call.
414 .IP SVR4
415 Support for System 5 Release 4 or newer systems.
416 .IP TYPESIG
417 This option has been dropped.  See `signal' above.
418 .IP UNISTD
419 Include this option if your system has the include
420 file \fB<unistd.h>\fP.
421 .IP VSPRINTF
422 Include this option if your system has the \fIvsprintf\fP\|()
423 library routine; otherwise, \fI\(rudoprnt\fP\|() will be used.
424 .IP YEARMOD
425 Forces the \fImh-format\fP `year' function to
426 return 2-digit values.
427 Use this option during a brief transition period if 
428 you have local \fImh-format\fP files which need to
429 be converted to support 4-digit years.
430 .SH 
431 FUNCTIONAL CHANGES
432 .LP
433 In addition to the configuration changes mentioned above,
434 a number of functional changes have been made to the system.
435 Many programs have new features added and a few new 
436 programs have are provided.  
437 Each command's manual page gives
438 complete information about the its operation.
439 Here is a short summary of the changes.
440 .SH
441 MH Sequences
442 .LP
443 A larger number of user-defined sequences are available.
444 Previously, this number had been 10.
445 On 32-bit systems, 26 user-defined sequences are available.
446 .SH
447 Profile Components
448 .LP
449 \fIMH\fP programs will now complain if the 
450 \fB\&.mh\(ruprofile\fR does not end in a newline.
451 Also, one enhancement and one new profile component are provided:
452 .IP Aliasfile: \w'AliasfileX'u+2n
453 Multiple filenames may now be given.
454 .IP Inbox:
455 New; the default folder (for \fIinc\fP, etc.) if not \*(lqinbox\*(rq.
456 .KS
457 .SH
458 Format Strings
459 .LP
460 A few minor bugs were fixed in format string handling,
461 and a few new features were added.  See \fImh-format\fP\|(5)
462 for complete details.
463 .IP Addresses \w'Xxyearxdatexx'u+2n
464 An attempt is made to decipher X\&.400 RFC\ 987-style addresses.
465 .IP Comments
466 Comments may be added to \fImh-format\fP files; a comment
467 begins with the 2-character sequence \*(lq%;\*(rq,
468 and ends with an un-escaped newline.
469 .IP "%(modulo n)"
470 The `modulo' function escape has been added.
471 .IP %(year{date})
472 The date parser has been enhanced to understand more
473 illegal date formats; `year' now returns a 4-digit number.
474 .KE
475 .SH
476 User Interface Programs
477 .LP
478 A number of \fIMH\fP commands have minor changes:
479 .IP ali \w'packmbox'u+2n
480 The output with `\-user\0\-list' was
481 changed to match the output with `\-nouser\0\-list'.
482 .IP burst
483 Will no longer drop the last message of a digest.
484 .IP inc
485 Accepts the `\-apop' switch for authenticated POP (see above);
486 will attempt to detect write
487 errors (e.g., no space left on device) when incorporating mail;
488 no longer replaces newline characters with NULLs.
489 .IP folder
490 The `\-noprint' option was broken and has been dropped.
491 .IP forw
492 Supports `\-mime' to use MIME-style multi-part messages.
493 .IP mhl
494 Will no longer put an extra space at the end of the
495 `%{text}' in a formatfield.
496 .IP mhn
497 New; manipulates multi-media (MIME) messages; a detailed
498 man page is provided.
499 .IP mhparam
500 New; reads the \fIMH\fP profile (and context) 
501 and writes the values of the specified components on the
502 standard output; useful in programmatic constructs.
503 .IP msgchk
504 Supports `\-apop' (see above).
505 .IP packmbox
506 New; packs an \fIMH\fP folder into a UUCP-style mailbox.
507 .IP popi
508 New; a client-side POP initiator; available only if you
509 built \fIMH\fP with the MPOP option (see above).
510 .IP refile
511 A bug where the `rmmproc' did not remove all specified
512 message files has been fixed.
513 .IP scan
514 The `\-file' option is fully supported and will no longer
515 complain about empty folders.
516 .IP send
517 Supports `\-mime' and `\-split' to split large messages
518 into multiple partial messages using MIME.
519 .SH
520 Support Programs
521 .IP fmtdump \w'packmbox'u+2n
522 Can now read a format file, or a format string given
523 on the command line.
524 .IP popauth
525 New; manages the APOP authorization database (see above).
526 .IP sendmail
527 The \fIsendmail\fP replacement will be installed
528 only if your `mts' setting uses the `/smtp' option.
529 .IP slocal
530 A new man page for \fIslocal\fP is available;
531 the new `mbox' action is available to write a file
532 in \fIpackf\fP format;
533 a bug where extra `>' characters were written to MMDF-style
534 maildrops has been fixed; 
535 if compiled with the MSGID option, can detect and suppress
536 reception of duplicate messages.
537 .IP viamail
538 New; bundles a directory (like \fIshar\fP\|) and
539 sends it through multi-media mail.
540
541 .ds LH Changes for MH 6.7.2
542 .bp
543 .ds CF Feb 1, 1992
544 .SH
545 CHANGES FOR MH 6.7.2
546 .LP
547 The MH.6.7.2 patch release is a maintenance
548 release.
549 This is the
550 current released version of \fIMH\fP as of February 1, 1992.
551 .PP
552 This release now supports the NCR Tower running SYS5R4.
553 The WP changes installed in MH.6.7.0 have been removed.
554 .SH 
555 Shared Libraries
556 .LP
557 Support for SYS 5 shared libraries is in progress.
558 .PP
559 Support for Sun OS 4.0 shared libraries had been improved.
560 The \fIMH\fP library has been modified to move initialized
561 data into a data definition file.  The shared library will
562 now consist of a \fBlibmh.so\fP and \fBlibmh.sa\fP file.
563 The shared library version number will no longer track the
564 \fIMH\fP patch release number, and its numbering begins with
565 version `1.1' with this release.
566 .SH
567 Replacement SendMail
568 .LP
569 Since many standard system programs expect to post mail by 
570 invoking \fB/usr/lib/sendmail\fP,
571 a minimal replacement \fISendMail\fP is provided in 
572 this release.  This replacement is meant to be installed
573 on (e.g., diskless) client workstations which post mail
574 using SMTP, and do not run a message transport system.
575 It will call \fIpost\fP to post mail; be sure you have
576 configured \fIMH\fP with the `/smtp' mts option.
577 This sendmail replacement is installed in your 
578 \fIMH\fP etc directory, and you should link 
579 \fB/usr/lib/sendmail\fP
580 to it.
581 .KS
582 .SH
583 Format Strings
584 .LP
585 A manual page for the \fIfmtdump\fP format string disassembler
586 is supplied, and some new format functions were added:
587 .IP folder \w'%getenv'u+2n
588 In \fIscan\fP, this component escape
589 contains the name of the current folder.
590 It is not defined for other \fIMH\fP commands.
591 .IP getenv
592 This function escape returns the value of an environment variable.
593 .KE
594 .PP
595 There will be some additional changes in these routines in the
596 next patch release.
597 .KS
598 .SH
599 Other Bug Fixes and Enhancements
600 .LP
601 In addition to some other minor enhancements,
602 some bugs were fixed which in general were not user\-visible:
603 .IP "Blind lists" \w'datexparsing'u+2n
604 Users may now specify RFC822 address groups in their
605 alias files.  These groups are implemented by \fIMH\fP 
606 as blind lists.
607 .IP "date parsing"
608 A number of sites have brain-damaged versions of \fBlex\fP.
609 \fIMH\fP will now come with the date parser already run
610 through lex.
611 .IP mark
612 A bug dealing with \fImark\fP and the sequence named `cur'
613 is fixed.  This was previously a problem for mh-e users.
614 .IP MH.doc
615 The \fIMH\fP nroff version of the manual no longer contains
616 teletype escape sequences.
617 .IP scan
618 Can now handle headers as long as 512 bytes.
619 .IP Signals
620 \fIMH\fP programs will no longer catch the \fBHUP\fP
621 and \fBTERM\fP signals while waiting for a sub-process.
622 This was causing hung processes when your terminal line was
623 was dropped unexpectedly.
624 .IP Signature
625 If your signature is not defined, \fIMH\fP will 
626 use the value of the gecos field of your \fB/etc/passwd\fP
627 entry as your signature.
628 .IP "version.sh"
629 A bug in the \fBawk\fP script in \fBconfig/version.sh\fP 
630 was fixed.
631 .KE
632 .ds LH Changes for MH 6.7.1a
633 .bp
634 .ds CF January 25, 1991
635 .SH 
636 CHANGES FOR MH 6.7.1a
637 .LP
638 The MH.6.7.1a patch was made available 
639 on January 25, 1991 for limited distribution only.
640 (This release had some known bugs, and so was
641 not widely distributed.)
642 This release incorporates several new features
643 of particular note to users of sequences and format strings,
644 as well as some general documentation improvements.
645 There are a few minor enhancements and internal bug fixes also.
646 Complete documentation of these changes is given in
647 the individual manual pages, and the \fBREAD-ME\fP file.
648 .SH
649 Message Sequences
650 .LP
651 A new manual page, \fImh\-sequence\0\fP(5), has been added.
652 This manual page attempts to completely document the
653 syntax and semantics of \fIMH\fP message sequence specifications.
654 .PP
655 A powerful new feature is the ability to specify message
656 ranges with user-defined sequences.  The  specification
657 \*(lqname:n\*(rq may be used, and it designates up to the
658 first `n' messages (or  last  `n' messages  for  `-n')
659 which  are  elements  of the user-defined sequence `name'.
660 .PP
661 The message
662 specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq
663 may also be used, and they
664 designate the
665 next or previous message (relative to the current message)
666 which is an element of the user-defined sequence `name'.
667 The specifications
668 \*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent
669 to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively.
670 The specification \*(lqname:cur\*(rq is not allowed
671 (use just \*(lqcur\*(rq instead).
672 .PP
673 These specifications allow the user to step through
674 a sequence with a command like \*(lqshow name:next\*(rq.
675 .SH
676 Format Strings
677 .LP
678 \fIMH\fP format strings now support an if-then-elseif-else
679 clause (the `elseif' is new).  This will make
680 format strings with multi-case conditions somewhat less complex.
681 .PP
682 A new format function `addr' had been added.  This function
683 takes an address header name as its argument, and returns
684 a rendering of the address contained in that header
685 as \*(lquser@host\*(rq or \*(lqhost!user\*(rq.
686 .PP
687 Format widths now may be specified as a negative number.
688 This causes the output to be right-justified
689 within the format width.
690 .KS
691 .SH
692 Other Changes
693 .LP
694 Along with a few minor enhancements,
695 some bugs were fixed which in general were not user-visible:
696 .IP "fmtdump" \w'whatnow'u+2n
697 This new program 
698 produces an pseudo-language
699 representation of an \fIMH\fP format file, vaguely
700 reminiscent of assembly language.  While this output format
701 is not explicitly documented,
702 it can still be useful when debugging \fIMH\fP format files.
703 .IP "refile"
704 Now takes a `\-[no]rmmproc' switch.  This makes it
705 easier to avoid loops when your \*(lqrmmproc\*(rq calls \fIrefile\fP.
706 .IP "slocal"
707 A problem with the UUCP-style mailboxes,
708 the `RPATHS' configuration option,
709 and the \*(lqReturn-Path:\*(rq header was fixed.
710 .IP "sortm"
711 Will ensure that no messages are lost if it is interrupted.
712 .IP "whatnow"
713 Will now tell you where it is leaving the draft, when
714 interrupted in the initial edit.  Previously the draft 
715 was simply unlinked.
716 .KE
717 .KS
718 .SH
719 Compilation Options
720 .IP "LOCKF" \w'whatnow'u+2n
721 This option causes \fIMH\fP to use the \fBlockf()\fP
722 system call for locking (if available),
723 instead of \fBflock()\fP.
724 .KE
725 .ds LH Changes for MH 6.7.1
726 .bp
727 .ds CF December 14, 1990
728 .SH 
729 CHANGES FOR MH 6.7.1
730 .LP
731 The MH.6.7.1 patch release is a maintenance
732 release, and as such, provides few changes from 
733 the previous release.  This is the
734 current released version of \fIMH\fP as of December 14, 1990.
735 .SH
736 User-Visible Changes
737 .LP
738 The major change in this release is to the
739 POP daemon (popd).  In \fIMH\fP 6.7,
740 it was changed to be able to read both UUCP and
741 MMDF-style mailboxes.  This did not work as reported.  The
742 code has now been changed to parse MMDF-style mailboxes if
743 you are configuring MH to run with MMDF as your message
744 transport system.  Otherwise, UUCP-style mailboxes are
745 expected.
746 .PP
747 Since there are number of client programs available for
748 only the POP2 protocol instead of POP3, popd has been
749 updated to support both protocols.  This is a major
750 win.  If you are compiling
751 with POP turned on, add the `POP2' option to
752 your \fIMH\fP config file, and the POP daemon
753 will respond to POP2 or POP3 commands.  If you're using
754 POP, there's no reason not to include this option; it does
755 not affect the existing support for POP3.
756 .KS
757 .SH
758 Internal Changes
759 .LP
760 Some bugs were fixed which in general were not user-visible:
761 .IP "context" \w'replnnetcn'u+2n
762 Errors when writing out sequences are detected correctly.
763 .IP "inc"
764 No longer inserts extra blank lines into messages.
765 .IP "mh-format"
766 A nil pointer bug in the address parser was fixed.
767 .IP "repl, etc."
768 The malloc/free problem has been fixed.
769 .IP "rmf"
770 A spelling error in the `\-nointeractive' switch has been corrected.
771 .IP "rcvtty"
772 Will not print the message size if not available (i.e., zero).
773 .IP "send/post"
774 Illegal signatures (those containing unquoted "."s) will be quoted.
775 .KE
776 .ds LH Changes for MH 6.7.0
777 .bp
778 .ds CF April 12, 1990
779 .SH
780 GENERAL CHANGES FOR MH 6.7.0
781 .LP
782 The author is pleased to announce that there are very few
783 user\-visible
784 changes to \fIMH\fP 6.7 from the previous \fIMH\fP 6.6 distribution.
785 The majority of development was in the form of bug fixes and
786 slight enhancements.
787 In addition, this release is slightly faster than the
788 previous release.
789 With a few minor exceptions,
790 it is backward\-compatible with the previous release.
791 \fIMH\fP 6.7.0 is the current released version of \fIMH\fP
792 as of April 12, 1990.
793 .PP
794 The changes were made mainly to generalize the source code to
795 be compatible with a larger range of systems and compilers.
796 There were many small changes to add declarations for ANSI C compliance.
797 The System 5 support has been brought up to SYS5 R3, and there is
798 support for Sun OS 4.0.
799 .SH
800 User\-Visible Changes
801 .LP
802 Here a quick summary of the
803 changes that were made which are not backward\-compatible with the
804 previous release of \fIMH\fP:
805 .IP repl \w'sortm'u+2n
806 The `\-format' and `\-noformat' switches
807 have not been functional since \fIMH\fP 5, and have been removed.
808 Any users who have these switches in their \fB\&.mh\(ruprofile\fP,
809 will have to remove them.
810 .IP sortm
811 Previously, in most cases \fIsortm\fP would fill\-in any
812 gaps in the numbering of a folder, 
813 by renumbering the messages starting with `1'.
814 This will no longer occur; for this behavior,
815 use \*(lqfolder \-pack\*(rq.
816 .PP
817 .SH
818 Using Aliases
819 .LP
820 A new profile entry `Aliasfile:' has been added.  The
821 \fIali\fP\^, \fIsend\fP\^, and \fIwhom\fP programs will look for
822 this profile entry and treat it as they would an argument to
823 `\-alias'.
824 This should make it easier for novice \fIMH\fP users to begin
825 using aliases.
826 .PP
827 .SH
828 Reading Network News & BBoards
829 .LP
830 The UCI BBoards facility can read local BBoards, and if compiled
831 with the `bboards: pop' and `pop: on' options, can also read remote
832 BBoards using the Post Office Protocol (POP ver. 3).
833 With this release,
834 \fIMH\fP can instead be compiled to read the Network News
835 (i.e., USENET) using the Network News Transfer Protocol (NNTP).
836 .PP
837 This capability is enabled by compiling \fIMH\fP with
838 the `bboards: nntp' and `pop: on' options.
839 Unfortunately, reading remote BBoards via the POP and reading the Network
840 News via the NNTP are mutually exclusive options.
841 .PP
842 To support the NNTP,
843 a new module, \fBuip/pshsbr.c\fP, is compiled and loaded into
844 \fIbbc\fP and \fImsh\fP instead of \fBuip/popsbr.c\fP.
845 The default BBoard is changed from \*(lqsystem\*(rq to \*(lqgeneral\*(rq
846 for the NNTP.
847 .PP
848 When reading BBoards,
849 \fIbbc\fP will first look for local BBoards, and then contact the
850 NNTP server to read the Network News.  The location of the
851 NNTP server should be specified with the `nntphost:'
852 entry in the \fBmtstailor\fP file
853 (see the \fIMH\fP Administrator's Guide for details),
854 or may be specified on
855 the command line with the `\-host' switch.
856 .PP
857 .SH
858 Format Strings
859 .LP
860 The manual page \fImh\-format\fP\0(5) has
861 been rewritten to give a better explanation of how to write format strings,
862 and how they are interpreted by \fIMH\fP.
863 A line\-by\-line
864 description of the 
865 default \fIrepl\fP form file (\fBreplcomps\fP)
866 is now included in that manual page.
867 .PP
868 .KS
869 Some new format functions were added, and others were augmented:
870 .IP trim \w'date2local'u+2n
871 Strips any leading and trailing white\-space from the current string value.
872 .IP date2local
873 Will coerce the date to the local timezone.
874 .IP date2gmt
875 Will coerce the date to GMT.
876 .IP divide
877 Divides the current numeric value by its argument.
878 This could be useful for
879 building \fIscan\fP format strings which print large
880 message sizes in \*(lqKb\*(rq or \*(lqMb\*(rq.
881 .IP friendly
882 If the address field cannot be parsed,
883 this function will return the text of the address header,
884 instead of a null string.
885 .IP szone
886 A flag indicating whether the timezone was explicit
887 in the date string.
888 .KE
889 .SH
890 PROGRAM CHANGES
891 .LP
892 In addition to the general changes mentioned above,
893 many programs have specific new features added,
894 either by new switches or by expanded functionality.
895 Each command's manual page gives complete information about
896 its new options.  Here is a short summary.
897 .SH
898 User Interface Programs
899 .IP anno \w'prompter'u+2n
900 Accepts a `\-nodate' switch which inhibits the date annotation,
901 leaving only the body annotation.
902 .IP folder
903 When invoked with the `\-pack' switch
904 and the new `\-verbose' switch, \fIfolder\fP will
905 give information about the actions taken to renumber the folder.
906 .IP
907 On most systems, \fIfolder\fP can now create any non\-existing
908 parent folders of a new sub\-folder.
909 .IP forw
910 When making digests, \fIforw\fP\^
911 will put the issue and volume numbers
912 in addition to the digest list name, in the digest trailer.
913 .IP inc
914 Detects NFS write failures, and will
915 not zero your maildrop in that event.
916 .IP msh
917 Supports a variant of the new \fIsortm\fP\^.
918 .IP prompter
919 Considers a period on a line by itself to signify end\-of\-file
920 when the `\-doteof' switch is specified.
921 .IP repl
922 The `\-[no]format' switches
923 have not been used since \fIMH\fP 5 and have been deleted. \fIrepl\fP
924 will now find filter files in the \fIMH\fP library area.
925 .IP scan
926 With the `\-file msgbox' switch, \fIscan\fP\^
927 can list a \fIpackf\fP\|'d\-format file directly
928 (without using \fImsh\fP\^).
929 .IP
930 Lists messages in reverse order with the `\-reverse' switch.
931 This should be considered a bug.
932 .IP sortm
933 Now has the options:
934 `\-textfield field', `\-notextfield',
935 `\-limit days', and `\-nolimit'.
936 .IP
937 With these options, \fIsortm\fP can be instructed to sort a
938 folder based on the contents of an arbitrary header such
939 as \*(lqsubject\*(rq.
940 .IP
941 \fIsortm\fP minimizes renaming messages, and
942 will no longer arbitrarily pack folders; for this behavior,
943 use \*(lqfolder \-pack\*(rq.
944 .IP whatnow
945 Deletes the draft by renaming it with leading comma, instead
946 of unlinking it.
947 .SH
948 \fIMH\fP Support Programs
949 .LP
950 .KS
951 The following support programs also have changes or enhancements:
952 .IP mhl \w'rcvtty'u+2n
953 Will now accept a format string on any component, not just on
954 addresses and dates.
955 .KE
956 .IP popd
957 Will use \fIshadow\fP passwords if compiled with the
958 \fBSHADOW\fP option.  It can now also
959 read UUCP\-style maildrops directly.
960 .IP rcvtty
961 If given no arguments, \fIrcvtty\fP will produce a \fBscan\fP
962 listing as specified by a format string or file; a default
963 format string is used if one is not specified.
964 .IP
965 Before the listing is written to the users terminal, the
966 terminal's bell is rung and a newline is output.
967 The `\-nobell' and the `\-nonewline' options
968 inhibit these functions.
969 .IP
970 \fIrcvtty\fP will obey terminal write
971 notification set by \fImesg\fP.
972 With the `\-biff' switch, \fIrcvtty\fP will
973 also obey the mail notification status set by
974 \fIbiff\fP.  
975 .IP
976 On \fBBSD43\fP systems, as with \fIwrite\fP,
977 \fIrcvtty\fP will be installed set\-group\-id to the group \*(lqtty\*(rq.
978 .IP slocal
979 Understands UUCP\-style \*(lqFrom \*(rq lines and will write
980 output files using this format if appropriate.
981 Before invoking a delivery program, \fIslocal\fP will strip
982 such lines unless compiled with the \fBRPATHS\fP option,
983 in which case it will will convert such lines into
984 \*(lqReturn\-Path:\*(rq headers.
985 .IP
986 \fIslocal\fP has a new result code \*(lqN\*(rq,
987 for use in \fB.maildelivery\fP files.
988 With this result code,
989 \fIslocal\fP will
990 perform the action only if the message has not been delivered
991 and the previous action succeeded.  This allows for performing
992 an action only if multiple conditions are true.
993 .SH
994 DOCUMENTATION
995 .LP
996 Several of the older \fIMH\fP papers have been difficult to format
997 because they depended on an older version of
998 PhDTeX which was
999 not supplied.  These papers have been updated, and some TeX
1000 library files are supplied in \fBpapers/doclib/\fP, so that
1001 these papers may be generated on any system with TeX.
1002 .PP
1003 Many of the manual pages have been revised to include documentation
1004 of new command options, and some have been expanded to give more detail.
1005 All are now slightly reformatted at installation time
1006 to make them more compatible with programs like \fImakewhatis\fP\^.
1007 .PP
1008 .SH
1009 \fIMH\fP ADMINISTRATION
1010 .LP
1011 This section describes changes in configuring, compiling and
1012 installing \fIMH\fP 6.7 and should not
1013 be of interest to casual \fIMH\fP users.
1014 The \fBREAD\-ME\fP file has been 
1015 considerably revised and expanded to give more detail 
1016 about the configuration and compilation options which
1017 have been included in this release.  Some compilation options
1018 have been removed, and many new options have been added.
1019 .PP
1020 All \fIMH\fP \fBMakefile\fPs have been updated to work around some
1021 incompatibilities introduced in newer versions of \fImake\fP\^.
1022 \fIMH\fP programs will no longer be installed with the sticky\-bit
1023 turned on.
1024 .PP
1025 Reading this section not a substitute for carefully
1026 reading the \fBREAD\-ME\fP file before attempting to compile \fIMH\fP
1027 .PP
1028 .KS
1029 .SH
1030 Bug Fixes
1031 .LP
1032 Some bugs were fixed which in general were not user\-visible:
1033 .IP "address parser" \w'dynamicnmemory'u+2n
1034 Fixed to allow use of the \*(lqAT\*(rq domain, and some
1035 minor bugs were fixed pertaining to address groups.
1036 .IP "date parser"
1037 Improved to accept more forms of illegal dates.  Military
1038 timezones were removed.
1039 .IP "dynamic memory"
1040 Many problems with corruption of the dynamic memory pool
1041 have been fixed.
1042 .IP locking
1043 Will open files for write, if necessary to enable locking.
1044 .IP "nil pointers"
1045 All reported nil pointer problems have been fixed.
1046 .IP replcomps
1047 The \*(lqIn\-Reply\-To:\*(rq header had quotes added
1048 around the date field to comply with RFC822.
1049 .KE
1050 .SH
1051 White Pages
1052 .LP
1053 If \fIMH\fP is compiled with the \fBWP\fP option,
1054 \fIsend\fP recognizes an address between \*(lq<<\*(rq and \*(lq>>\*(rq characters
1055 such as:
1056 .DS
1057 To: << rose \-org psi >>
1058 .DE
1059 to be a name meaningful to a whitepages service.  In order to expand the
1060 name, \fIsend\fP must be invoked interactively
1061 (i.e., not from \fIpush\fP\^).  For each
1062 name, \fIsend\fP will invoke a command called \fIfred\fP\^
1063 in a special mode asking to expand the name.
1064 .PP
1065 To get a copy of the white pages service, contact wpp\-manager@psi.com.
1066 .SH
1067 Configuration Options
1068 .LP
1069 Some configuration options have been added or changed:
1070 .IP cc \w'bbdelivery'u+2n
1071 To specify an alternate C compiler.
1072 .IP ccoptions
1073 Defaults to `\-O'.
1074 .IP bboards
1075 May now be defined as \*(lqon\*(rq,
1076 \*(lqoff\*(rq, \*(lqpop\*(rq, or \*(lqnntp\*(rq.
1077 .IP bbdelivery
1078 Determines whether the bboard delivery agent
1079 and library files should be installed.
1080 .IP lex
1081 To specify an alternate version of \fIlex\fP\^.
1082 .IP mailgroup
1083 If defined, \fIinc\fP will be made set\-group\-id to this group.
1084 .IP sharedlib
1085 For \fBSUN40\fP systems; if \*(lqon\*(rq, makes \fBlibmh.a\fP
1086 into a shared library.
1087 .IP slibdir
1088 The directory where the above shared library should be installed.
1089 .IP sprintf
1090 Set this to \*(lqint\*(rq if that's what your \fIsprintf\fP\0(3) library
1091 routine returns.
1092 .SH
1093 Compilation Options
1094 .LP
1095 For different configurations,
1096 several `\-D' options to \fIcc\fP have been added or changed:
1097 .IP BERK \w'SENDMAILBUG'u+1n
1098 This disables the address and date parsing routines.  If you
1099 want to do much with \fImh\-format\fP\0(5), don't enable this.
1100 .IP BSD43
1101 Will make \fIrcvtty\fP set\-group\-id to the group \*(lqtty\*(rq.
1102 .IP DBM
1103 For sites with a dbm\-style password file (such as with Yellow
1104 Pages), \fIMH\fP will not read the entire passwd file into a cache.
1105 At one site that runs YP on a large passwd file, using this
1106 showed a 6:1 performance improvement.
1107 .IP NETWORK
1108 This option has been deleted.  See \fBSOCKETS\fP.
1109 .IP NOIOCTLH
1110 Tells \fIMH\fP not to include the file \fBsys/ioctl.h\fP.  Use this
1111 if this file is not present on your system.
1112 .IP NTOHLSWAP
1113 On systems with TCP/IP networking,
1114 \fImsh\fP will try to use the \fBntohl()\fP macro from the
1115 file \fBnetinet/in.h\fP to byte\-swap the binary map files
1116 it writes.
1117 .IP SENDMAILBUG
1118 Some versions of \fIsendmail\fP return a \fB451\fP (failure) reply code
1119 when they don't mean to indicate failure.  This option considers
1120 that code to be equivalent to \fB250\fP (OK).
1121 .IP SHADOW
1122 Causes \fIpopd\fP to read the file \fB/etc/shadow\fP for
1123 encrypted passwords instead of \fB/etc/passwd\fP.  Use this if you
1124 have a shadow password file (such as on newer versions of SYSTEM 5).
1125 .IP SOCKETS
1126 Enable this if you are on a non\-BSD system with a
1127 socket interface for TCP/IP networking compatible with 4.2BSD
1128 .SM
1129 UNIX.
1130 .NL
1131 .IP SUN40
1132 Use on Suns running Sun OS 4.0 and later.
1133 .IP SYS5
1134 This option has been updated to refer to SYS5 R3 and later systems.
1135 .IP SYS5DIR
1136 Use this if your system uses \*(lqstruct dirent\*(rq instead of
1137 \*(lqstruct direct\*(rq.  This should be true for systems based
1138 on SYS5 R3 and later.
1139 .IP TYPESIG
1140 Defines the base type for the \fIsignal\fP system call.  This
1141 defaults to \*(lqint\*(rq, but should be defined as \*(lqvoid\*(rq
1142 if appropriate for your system.
1143 .IP WP
1144 Enables support for the White Pages service.
1145 .SH
1146 Installation
1147 .LP
1148 \fIMH\fP will now
1149 explicitly set the protection mode on every file it installs.
1150 .PP
1151 Previously any existing file installed by \fIMH\fP
1152 would be backed up into
1153 the source tree, and then overwritten.
1154 Now, a few system\-dependent files will not be overwritten, and your
1155 changes will have to be merged in by hand.
1156 See the \fBREAD\-ME\fP file for more details.