#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.
Also added ULTRIX 4.2A to the list of OSes that have an initgroups() function
but no prototype in the system headers.
+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
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
+* 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
* 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
#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 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
#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>
#undef INITGROUPS_HEADER
/* Define if your system actually has a prototype for snprintf() in <stdio.h>
AC_REPLACE_FUNCS(snprintf strerror strdup)
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
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
#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
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.
*/
* "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> */
for (cp = fullname; *np && *np != (MMailids ? '<' : ','); *cp++ = *np++)
continue;
for (cp = fullname; *np && *np != (MMailids ? '<' : ','); *cp++ = *np++)
continue;
+#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);
for (cp = fullname; *np && *np != (MMailids ? '<' : ','); ) {
if (*np == '&') { /* blech! */
strcpy (cp, pw->pw_name);
*cp = '\0';
if (MMailids) {
*cp = '\0';
if (MMailids) {