+Wed Mar 01 23:30:50 2000 Dan Harkless <dan-nmh@dilvish.speed.net>
+
+       * Changed the GECOS-field '&' translation behavior to be
+       controlled by the BSD42 #define rather than GCOS_HACK, since it's
+       apparently always appropriate on OSes where BSD42 is #defined, and
+       never appropriate on any other OSes.  Thanks to Kimmo Suominen for
+       responding to my "What is this code here for?" comment in mts.c
+       and explaining the feature.
+       
 Mon Feb 28 21:50:29 2000 Dan Harkless <dan-nmh@dilvish.speed.net>
 
        * Upped the version number to 1.0.3+dev (ideally this should be
 
 
 MAN PAGES
 ---------
+* Change all man pages to group all the commandline options together in one
+  section with each as a separate mini-heading.  Having to dig through prose to
+  find what a particular option does is a pain in the nads.
 * Update mh-tailor man page.
 * generate mh-chart man page from other man pages
 * update default mode in man pages with sed
 
 #undef HAVE_DB1_NDBM_H
 
 /* Define to the header containing the declaration of initgroups() on your
-   system, if any.  AIX 4.[13] and SunOS 4.1.3 have the function in libc but
-   don't have a declaration anywhere. */
+   system, if any.  AIX 4.[13], SunOS 4.1.3, and ULTRIX 4.2A have the function
+   in libc but don't have a declaration anywhere. */
 #undef INITGROUPS_HEADER
 
 /* Define if your system actually has a prototype for snprintf() in <stdio.h>
 
 #undef HAVE_GETHOSTBYNAME
 
 /* Define to the header containing the declaration of initgroups() on your
-   system, if any.  AIX 4.[13] and SunOS 4.1.3 have the function in libc but
-   don't have a declaration anywhere. */
+   system, if any.  AIX 4.[13], SunOS 4.1.3, and ULTRIX 4.2A have the function
+   in libc but don't have a declaration anywhere. */
 #undef INITGROUPS_HEADER
 
 /* Define if your system actually has a prototype for snprintf() in <stdio.h>
 
 
 AC_REPLACE_FUNCS(snprintf strerror strdup)
 
-dnl Look for the initgroups() declaration.  On AIX 4.[13] and Solaris 4.1.3,
-dnl the function is defined in libc but there's no declaration in any system
-dnl header.  
+dnl Look for the initgroups() declaration.  On AIX 4.[13], Solaris 4.1.3, and
+dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
+dnl any system header.  
 dnl
 dnl On Solaris 2.[456], the declaration is in <grp.h>.  On HP-UX 9-11 and
 dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>.  Any other locations we
 
-Mon Feb 28 22:19:07 PST 2000
+Wed Mar  1 23:36:54 PST 2000
 
 #else
 /* On AIX 4.1, initgroups() is defined and even documented (giving the parameter
    types as char* and int), but doesn't have a prototype in any of the system
-   header files.  AIX 4.3 and SunOS 4.1.3 have the same problem. */
+   header files.  AIX 4.3, SunOS 4.1.3, and ULTRIX 4.2A have the same
+   problem. */
 extern int  initgroups(char*, int);
 #endif
 
 
      * "Dan Harkless <Dan.Harkless>".  Naturally, you'll want your MTA to have
      * an alias (e.g. in /etc/aliases) from "fakeusername" to your account name.
      */
-#ifndef        GCOS_HACK
-    /* What is this code here for?  As of 2000-01-25, GCOS_HACK doesn't appear
-       anywhere else in nmh.  -- Dan Harkless <dan-nmh@dilvish.speed.net> */
+#ifndef BSD42
     for (cp = fullname; *np && *np != (MMailids ? '<' : ','); *cp++ = *np++)
        continue;
-#else
+#else /* BSD42 */
+    /* On BSD(-derived) systems, the system utilities that deal with the GECOS
+       field (finger, mail, sendmail, etc.) translate any '&' character in it to
+       the login name, with the first letter capitalized.  So, for instance,
+       fingering a user "bob" with the GECOS field "& Jones" would reveal him to
+       be "In real life: Bob Jones".  Surprisingly, though, the OS doesn't do
+       the translation for you, so we have to do it manually here. */
     for (cp = fullname; *np && *np != (MMailids ? '<' : ','); ) {
        if (*np == '&') {       /* blech! */
            strcpy (cp, pw->pw_name);
            *cp++ = *np++;
        }
     }
-#endif
+#endif /* BSD42 */
 
     *cp = '\0';
     if (MMailids) {