move most remaining macros out of acconfig.h which is an obsolete feature of
authorOliver Kiddle <okiddle@yahoo.co.uk>
Fri, 11 Apr 2008 14:12:54 +0000 (14:12 +0000)
committerOliver Kiddle <okiddle@yahoo.co.uk>
Fri, 11 Apr 2008 14:12:54 +0000 (14:12 +0000)
autoconf

ChangeLog
acconfig.h
configure.in
sbr/dtime.c
sbr/pidwait.c
uip/mhshowsbr.c
uip/rcvtty.c
uip/slocal.c
uip/termsbr.c

index 7da2dbc..054cf36 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-11  Oliver Kiddle <okiddle@yahoo.co.uk>
+
+       * acconfig.h, configure.in, sbr/dtime.c, sbr/pidwait.c,
+       uip/mhshowsbr.c, uip/rcvtty.c, uip/slocal.c, uip/termsbr.c:
+       move most remaining macros out of acconfig.h which is an
+       obsolete feature of autoconf
+
 2008-04-05  Peter Maydell <pmaydell@chiark.greenend.org.uk>
 
        * bug #18655: fix use of admonish() for a fatal error (should
index ba744a4..3649bf3 100644 (file)
  */
 
 /*
- * Turn on locale (setlocale) support
- */
-#define LOCALE  1
-
-/*
- * Define to 1 the type of file locking to use.  You need to
- * make sure the type of locking you use is compatible with
- * other programs which may modify your maildrops.
- * Currently you can only use one type.
- */
-#undef DOT_LOCKING
-#undef FCNTL_LOCKING
-#undef LOCKF_LOCKING
-#undef FLOCK_LOCKING
-
-/*
  * If you have defined DOT_LOCKING, then the default is to
  * place the lock files in the same directory as the file that
  * is to be locked.  Alternately, if you define LOCKDIR, you
 #define LINK "@"
 
 /*
- * If wait/waitpid returns an int (no union wait).
- */
-#define WAITINT 1
-
-/* The following are autoconfigured, but you may wish to override the
- * decisions of autoconf (and AC_CANONICAL_SYSTEM) and do your own
- * thing. If so, you can modify the definitions. The Comments are as
- * useful as ever. */
-
-/* these three are only used in vmh.c, which currently is not being
- * built anyway. -Doug */
-/* Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5 */
-#undef SYS5
-/* Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX */
-#undef SVR4
-/* Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody */
-#undef BSD44
-
-/* Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody 
- * -- does PicoBSD have uname? :) */
-#undef BSD42
-
-/* Defined for SCO5 */
-#undef SCO_5_STDIO
-
-/* This tells nmh to use the Linux _IO_*_ptr defines from libio.h */ 
-#undef LINUX_STDIO
-
-/*
  * Define to 1 if your vi has ATT bug, such that it returns
  * non-zero exit codes on `pseudo-errors'.
  */
 
 /***** END USER CONFIGURATION SECTION *****/
 @TOP@
-
-/*
- * The prefix which is prepended to the name of messages when they
- * are "removed" by rmm.  This should typically be `,' or `#'
- */
-#define BACKUP_PREFIX ","
-
-/*
- * Define this if you want SMTP (simple mail transport protocol)
- * support.  This is currently always enabled.
- */
-#define SMTPMTS 1
-
-/*
- * Define this to compile client-side support for pop into
- * inc and msgchk.  Do not change this value manually.  You
- * must run configure with the '--enable-pop' option to
- * correctly build the pop client support.
- */
-#undef POP
-
-/*
- * Define this to compile client-side support for apop into
- * inc and msgchk. Do not change this value manually. You
- * must run configure with the '--enable-apop' option to
- * correctly build the apop client support.
- */
-#undef APOP
-
-/*
- * Define this to compile client-side support for kpop
- * (kerberized pop) into inc and msgchk.  Do not change this
- * value manually.  You must run configure with the option
- * '--with-krb4=PREFIX' to correctly build the kpop client support.
- */
-#undef KPOP
-
-/*
- * Define this to "pop" when using Kerberos V4
- */
-#undef KPOP_PRINCIPAL
-
-/*
- * Define this to use the Cyrus SASL library for authentication of
- * POP and SMTP
- */
-#undef CYRUS_SASL
-
-/*
- * Define this to compile support for using Hesiod to locate
- * pop servers into inc and msgchk.  Do not change this value
- * manually.  You must run configure with the option
- * '--with-hesiod=PREFIX' to correctly build Hesiod support.
- */
-#undef HESIOD
-
-/*
- * Compile in support for the Emacs front-end mh-e.
- */
-#undef MHE
-
-/* Define to 1 if your termcap library has the ospeed variable */
-#undef HAVE_OSPEED
-/* Define to 1 if you have ospeed, but it is not defined in termcap.h */
-#undef MUST_DEFINE_OSPEED
-
-/* Define to 1 if tgetent() accepts NULL as a buffer */
-#undef TGETENT_ACCEPTS_NULL
-
-/* Define to 1 if you have reliable signals */
-#undef RELIABLE_SIGNALS
-
-/* Define to 1 if you use POSIX style signal handling */
-#undef POSIX_SIGNALS
-/* Define to 1 if you use BSD style signal handling (and can block signals) */
-#undef BSD_SIGNALS
-/* Define to 1 if you use SYS style signal handling (and can block signals) */
-#undef SYSV_SIGNALS
-/* Define to 1 if you have no signal blocking at all (bummer) */
-#undef NO_SIGNAL_BLOCKING
-
-/* Define to `unsigned int' if <sys/types.h> or <signal.h> doesn't define */
-#undef sigset_t
-
-/*
- * Define to 1 if you need to make `inc' set-group-id because your mail spool is
- * not world writable.  There are no guarantees as to the safety of doing this,
- * but this #define will add some extra security checks.
- */
-#undef MAILGROUP
-
-/* Define if your system defines TIOCGWINSZ in sys/ioctl.h.  */
-#undef GWINSZ_IN_SYS_IOCTL
-
-/* Define if your system defines `struct winsize' in sys/ptem.h.  */
-#undef WINSIZE_IN_PTEM
-
-/* Define to 1 if struct tm has gmtoff */
-#undef HAVE_TM_GMTOFF
-
-/* Define to 1 if struct utmp has ut_type */
-#undef HAVE_UTMP_UT_TYPE
-
-/* Define if your system has sigsetjmp */
-#undef HAVE_SIGSETJMP
-
-/* Define if your system has mkstemp */
-#undef HAVE_MKSTEMP
-
-/* Define if your system has sethostent */
-#undef HAVE_SETHOSTENT
-
-/* Define if your system has gethostbyname */
-#undef HAVE_GETHOSTBYNAME
-
-/* Define if your system has netdb.h */
-#undef HAVE_NETDB_H
-
-/* Define to the header containing the declaration of initgroups() on your
-   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 to the header containing the ndbm API prototypes */
-#undef NDBM_HEADER
-
-/* Define if your system actually has a prototype for snprintf() in <stdio.h>
-   (or a file it includes) rather than just having a "stealth" definition of it
-   in libc.a the way AIX 4.1 does. */
-#undef HAVE_SNPRINTF_PROTOTYPE
index e113860..6b21a32 100644 (file)
@@ -47,7 +47,8 @@ dnl Do you want client-side support for apop?
 AC_ARG_ENABLE(apop, AS_HELP_STRING([--enable-apop],
   [enable client-side support for POP3 and APOP]))
 if test x"$enable_apop" = x"yes"; then
-  AC_DEFINE(APOP)dnl
+  AC_DEFINE(APOP, 1,
+    [Define to compile client-side support for apop into inc and msgchk.])dnl
   APOPLIB=md5.o
   enable_pop=yes
 fi
@@ -79,7 +80,8 @@ AC_ARG_ENABLE(mhe,
 dnl mhe support is on by default, so define it unless --disable-mhe or the
 dnl deprecated, undocumented --disable-nmh-mhe are specified.
 if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then
-  AC_DEFINE(MHE)dnl
+  AC_DEFINE(MHE, 1,
+    [Define to compile in support for the Emacs front-end mh-e.])dnl
 fi
 
 dnl Do you want client-side support for pop?
@@ -90,12 +92,24 @@ if test x"$enable_nmh_pop" = x"yes"; then
   enable_pop=yes
 fi
 
+dnl Do you want to disable use of locale functions
+AH_TEMPLATE([LOCALE],
+[Undefine if you don't want locale features.  By default this is defined.])
+AC_ARG_ENABLE([locale],
+AC_HELP_STRING([--disable-locale], [turn off locale features]),
+[if test x$enableval = xyes; then
+  AC_DEFINE(LOCALE)
+fi],
+AC_DEFINE(LOCALE)
+)
+
 dnl Do you want client-side support for using SASL for authentication?
 dnl Note that this code will be enabled for both POP and SMTP
 AC_ARG_WITH(cyrus-sasl, AS_HELP_STRING([--with-cyrus-sasl=DIR],
   [specify location of Cyrus SASL library]))
 if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
-  AC_DEFINE(CYRUS_SASL)dnl
+  AC_DEFINE(CYRUS_SASL, 1,
+    [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl
   sasl_support=yes
 else
   sasl_support=no
@@ -117,13 +131,14 @@ if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then
 else
   backup_prefix=","
 fi
-AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix")dnl
+AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix",
+    [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl
 
 dnl Do you want support for hesiod
 AC_ARG_WITH(hesiod,
   AS_HELP_STRING([--with-hesiod=DIR],[specify location of Hesiod]))
 if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
-  AC_DEFINE(HESIOD)dnl
+  AC_DEFINE(HESIOD,1,[Define this to compile support for using Hesiod.])dnl
 fi
 
 dnl Do you want client-side support for kpop
@@ -131,13 +146,15 @@ AC_ARG_WITH(krb4, AS_HELP_STRING([--with-krb4=DIR],
   [specify location of Kerberos V4 for KPOP support]))
 if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
   enable_pop=yes
-  AC_DEFINE(KPOP)dnl
-  AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl
+  AC_DEFINE(KPOP, 1,
+    [Define to compile client-side support for kpop (kerberized pop) into inc and msgchk.])dnl
+  AC_DEFINE(KPOP_PRINCIPAL, "pop", [Define this to "pop" when using Kerberos V4])dnl
 fi
 
 dnl After we know if we're including apop and kpop support, do pop stuff
 if test x"$enable_pop" = x"yes"; then
-  AC_DEFINE(POP)dnl
+  AC_DEFINE(POP, 1,
+    [Define this to compile client-side support for pop into inc and msgchk.])dnl
   POPLIB=popsbr.o
   POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d'
 else
@@ -153,16 +170,16 @@ AC_ARG_WITH(locking,
 
 if test x"$with_locking" = x"dot"; then
   LOCKTYPE="dot"
-  AC_DEFINE(DOT_LOCKING)dnl
+  AC_DEFINE(DOT_LOCKING, 1, [Define to use dot based file locking.])dnl
 elif test x"$with_locking" = x"flock"; then
   LOCKTYPE="flock"
-  AC_DEFINE(FLOCK_LOCKING)dnl
+  AC_DEFINE(FLOCK_LOCKING, 1, [Define to use flock() based locking.])dnl
 elif test x"$with_locking" = x"lockf"; then
   LOCKTYPE="lockf"
-  AC_DEFINE(LOCKF_LOCKING)dnl
+  AC_DEFINE(LOCKF_LOCKING, 1, [Define to use lockf() based locking.])dnl
 elif test x"$with_locking" = x"fcntl"; then
   LOCKTYPE="fcntl"
-  AC_DEFINE(FCNTL_LOCKING)dnl
+  AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl
 else
   LOCKTYPE="dot"
   AC_DEFINE(DOT_LOCKING)dnl
@@ -183,7 +200,8 @@ fi
 AC_SUBST(MTS)dnl
 
 dnl Both the smtp and sendmail mail transport services use the smtp code
-AC_DEFINE(SMTPMTS)dnl
+AC_DEFINE(SMTPMTS, 1,
+  [Define if you want SMTP (simple mail transport protocol) support.])dnl
 
 dnl What should be the default pager?
 AC_ARG_WITH(pager,
@@ -429,7 +447,8 @@ dnl If mailspool is not world-writable and dotlockfile is not setgid,
 dnl we need to #define MAILGROUP to 1 and make inc setgid.
 if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
   dnl do we really need both of these?
-  AC_DEFINE(MAILGROUP)dnl
+  AC_DEFINE(MAILGROUP,1,
+    [Define to 1 if you need to make `inc' set-group-id because your mail spool is not world writable. There are no guarantees as to the safety of doing this, but this #define will add some extra security checks.])dnl
   SETGID_MAIL=1
 fi
 AC_SUBST(SETGID_MAIL)dnl
@@ -468,42 +487,12 @@ AC_HEADER_STDC
 AC_HEADER_TIME
 AC_HEADER_SYS_WAIT
 AC_HEADER_STAT
+AC_HEADER_TIOCGWINSZ
 AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.h \
                  limits.h crypt.h termcap.h termio.h termios.h locale.h \
                  langinfo.h wchar.h wctype.h iconv.h netdb.h \
                  sys/param.h sys/time.h sys/utsname.h sys/stream.h \
                  arpa/inet.h arpa/ftp.h)
-
-AC_CACHE_CHECK(POSIX termios, nmh_cv_sys_posix_termios,
-[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <unistd.h>
-#include <termios.h>]],
-[[/* SunOS 4.0.3 has termios.h but not the library calls.  */
-tcgetattr(0, 0);]])],
-nmh_cv_sys_posix_termios=yes, nmh_cv_sys_posix_termios=no)])
-if test $nmh_cv_sys_posix_termios = yes; then
-  AC_CACHE_CHECK(TIOCGWINSZ in termios.h,
-  nmh_cv_header_termios_h_tiocgwinsz,
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <termios.h>]],
-  [[int x = TIOCGWINSZ;]])],
-  nmh_cv_header_termios_h_tiocgwinsz=yes,nmh_cv_header_termios_h_tiocgwinsz=no)])
-else
-  nmh_cv_header_termios_h_tiocgwinsz=no
-fi
-if test $nmh_cv_header_termios_h_tiocgwinsz = no; then
-  AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h,
-  nmh_cv_header_sys_ioctl_h_tiocgwinsz,
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <sys/ioctl.h>]],
-  [[int x = TIOCGWINSZ;]])],
-  nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
-  if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
-    AC_DEFINE(GWINSZ_IN_SYS_IOCTL)dnl
-  fi
-fi
  
 dnl
 dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
@@ -512,9 +501,10 @@ dnl sufficient.
 dnl
 AC_CHECK_HEADER(libio.h, [
   AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
-    AC_DEFINE(LINUX_STDIO) ]) ]) 
+    AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ]) 
 
-AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM),,
+AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
+  [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
 [[#if HAVE_SYS_STREAM_H
 #  include <sys/stream.h>
 #endif
@@ -527,16 +517,21 @@ AC_FUNC_VFORK
 AC_CHECK_LIB(mkstemp,mkstemp)
 AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
                sighold sigrelse writev lstat uname tzset killpg mkstemp \
-               sethostent getutent nl_langinfo mbtowc wcwidth)
+               getutent nl_langinfo mbtowc wcwidth)
 
-dnl solaris screws this up
-AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
-  AC_CHECK_LIB(nsl, gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)] ) )
+dnl solaris has these in the nsl library
+AC_SEARCH_LIBS(gethostbyname, nsl,
+  [AC_DEFINE(HAVE_GETHOSTBYNAME,1,
+    [Define to 1 if you have the `gethostbyname' function.])])
+AC_SEARCH_LIBS(sethostent, nsl,
+  [AC_DEFINE(HAVE_SETHOSTENT,1,
+    [Define to 1 if you have the `sethostent' function.])])
 
 dnl sigsetjmp may be a macro
 AC_MSG_CHECKING(for sigsetjmp)
 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]],
-  [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP) AC_MSG_RESULT(yes)],
+  [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP, 1,
+    [Define to 1 if you have the `sigsetjmp'.]) AC_MSG_RESULT(yes)],
   [AC_MSG_RESULT(no)])
 
 AC_REPLACE_FUNCS(snprintf strdup)
@@ -547,7 +542,8 @@ 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 need to check? 
+dnl need to check?
+AH_TEMPLATE(INITGROUPS_HEADER, [Define to the header containing the declaration of `initgroups'.])
 AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
                 AC_EGREP_HEADER(initgroups, unistd.h, 
                                 AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
@@ -559,13 +555,14 @@ dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we
 dnl HAVE_SNPRINTF, we get a billion warnings at compile time.  Use the C
 dnl preprocessor to preprocess stdio.h and make sure that there's actually a 
 dnl prototype. 
-AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE))
+AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1,
+  [Define to 1 if <stdio.h> has a prototype for snprintf().]))
 
 dnl Check for multibyte character set support
 if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \
     -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then
   AC_DEFINE(MULTIBYTE_SUPPORT, 1,
-    [Define to enable support for multibyte character sets])
+    [Define to enable support for multibyte character sets.])
 fi
 
 dnl -------------------
@@ -680,7 +677,8 @@ if test "$nmh_ndbm_found" = "no"; then
 else
   dnl Now export the lib/header to our makefile/config.h:
   if test x"$nmh_ndbmheader" != x; then
-    AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>)
+    AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
+      [Define to the header containing the ndbm API prototypes.])
   fi
   if test x"$nmh_ndbm" != x; then
     NDBM_LIBS="-l$nmh_ndbm"
@@ -803,24 +801,80 @@ if test $nmh_cv_decl_ospeed_include_defines = no; then
   nmh_cv_decl_ospeed_must_define=yes,nmh_cv_decl_ospeed_must_define=no)])
 fi
  
+AH_TEMPLATE(HAVE_OSPEED, [Define to 1 if your termcap library has the ospeed variable.])
 if test $nmh_cv_decl_ospeed_include_defines = yes; then
   AC_DEFINE(HAVE_OSPEED)dnl
 elif test $nmh_cv_decl_ospeed_must_define = yes; then
   AC_DEFINE(HAVE_OSPEED)
-  AC_DEFINE(MUST_DEFINE_OSPEED)
+  AC_DEFINE(MUST_DEFINE_OSPEED, 1,
+    [Define to 1 if you have ospeed, but it is not defined in termcap.h.])
 fi
 
-dnl dnl Checks if tgetent accepts NULL and will
-dnl dnl allocate its own termcap buffer.
-dnl AC_CACHE_CHECK(if tgetent accepts NULL,
-dnl nmh_cv_func_tgetent_accepts_null,
-dnl [AC_TRY_RUN([main(){int i = tgetent((char*)0,"vt100");exit(!i || i == -1);}],
-dnl   nmh_cv_func_tgetent_accepts_null=yes,
-dnl   nmh_cv_func_tgetent_accepts_null=no,
-dnl   nmh_cv_func_tgetent_accepts_null=no)])
-dnl if test $nmh_cv_func_tgetent_accepts_null = yes; then
-dnl   AC_DEFINE(TGETENT_ACCEPTS_NULL)
-dnl fi
+dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
+dnl Some termcaps reportedly accept a zero buffer, but then dump core
+dnl in tgetstr().
+dnl Under Cygwin test program crashes but exit code is still 0. So,
+dnl we test for a file that porgram should create
+AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
+[Define to 1 if tgetent() accepts NULL as a buffer.])
+AC_CACHE_CHECK(if tgetent accepts NULL,
+nmh_cv_func_tgetent_accepts_null,
+[AC_TRY_RUN([
+main()
+{
+    char buf[4096];
+    int r1 = tgetent(buf, "vt100");
+    int r2 = tgetent((char*)0,"vt100");
+    if (r1 >= 0 && r1 == r2) {
+        char tbuf[1024], *u;
+        u = tbuf;
+       tgetstr("cl", &u);
+       creat("conftest.tgetent", 0640);
+    }
+    exit((r1 != r2) || r2 == -1);
+}
+],
+  if test -f conftest.tgetent; then
+    nmh_cv_func_tgetent_accepts_null=yes
+  else
+    nmh_cv_func_tgetent_accepts_null=no
+  fi,
+  nmh_cv_func_tgetent_accepts_null=no,
+  nmh_cv_func_tgetent_accepts_null=no)])
+if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
+  AC_DEFINE(TGETENT_ACCEPTS_NULL)
+fi
+AC_CACHE_CHECK(if tgetent returns 0 on success,
+nmh_cv_func_tgetent_zero_success,
+[AC_TRY_RUN([
+main()
+{
+    char buf[4096];
+    int r1 = tgetent(buf, "!@#$%^&*");
+    int r2 = tgetent(buf, "vt100");
+    if (r1 < 0 && r2 == 0) {
+        char tbuf[1024], *u;
+        u = tbuf;
+       tgetstr("cl", &u);
+       creat("conftest.tgetent0", 0640);
+    }
+    exit(r1 == r2);
+}
+],
+  if test -f conftest.tgetent0; then
+    nmh_cv_func_tgetent_zero_success=yes
+  else
+    nmh_cv_func_tgetent_zero_success=no
+  fi,
+  nmh_cv_func_tgetent_zero_success=no,
+  nmh_cv_func_tgetent_zero_success=no)])
+AH_TEMPLATE([TGETENT_SUCCESS],
+[Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
+if test x$nmh_cv_func_tgetent_zero_success = xyes; then
+  AC_DEFINE(TGETENT_SUCCESS, 0)
+else
+  AC_DEFINE(TGETENT_SUCCESS, 1)
+fi
 
 dnl Now put the libraries back to what it was before we
 dnl starting checking the termcap library.
@@ -844,7 +898,8 @@ AC_CACHE_CHECK(for sigset_t, nmh_cv_type_sigset_t,
 #include <signal.h>]], [[sigset_t tempsigset;]])],
 nmh_cv_type_sigset_t=yes,nmh_cv_type_sigset_t=no)])
 if test $nmh_cv_type_sigset_t = no; then
-  AC_DEFINE(sigset_t, unsigned int)
+  AC_DEFINE(sigset_t, unsigned int,
+    [Define to `unsigned int' if <sys/types.h> or <signal.h> doesn't define.])
 fi
 
 dnl ----------------
@@ -852,8 +907,8 @@ dnl CHECK STRUCTURES
 dnl ----------------
 AC_CHECK_MEMBERS(struct stat.st_blksize)
 
-AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
+AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,,
+  [#ifdef TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
 #else
@@ -862,40 +917,62 @@ AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff,
 # else
 #  include <time.h>
 # endif
-#endif]], [[struct tm temptm; temptm.tm_gmtoff = 0;]])],
-nmh_cv_struct_tm_gmtoff=yes,nmh_cv_struct_tm_gmtoff=no)])
-if test $nmh_cv_struct_tm_gmtoff = yes; then
-  AC_DEFINE(HAVE_TM_GMTOFF)
-fi
-
-AC_CACHE_CHECK(for ut_type in struct utmp, nmh_cv_struct_utmp_ut_type,
-[AC_TRY_COMPILE(
-[#include <utmp.h>],
-[struct utmp temputmp; temputmp.ut_type = 0;],
-  nmh_cv_struct_utmp_ut_type=yes, nmh_cv_struct_utmp_ut_type=no)])
-if test $nmh_cv_struct_utmp_ut_type = yes; then
-  AC_DEFINE(HAVE_UTMP_UT_TYPE)
+#endif])
+
+AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include <utmp.h>])
+
+AC_MSG_CHECKING(for union wait)
+AC_CACHE_VAL(nmh_cv_union_wait, [dnl
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <sys/wait.h>]],
+    [[union wait status; int pid; pid = wait (&status);
+#ifdef WEXITSTATUS
+/* Some POSIXoid systems have both the new-style macros and the old
+   union wait type, and they do not work together.  If union wait
+   conflicts with WEXITSTATUS et al, we don't want to use it at all.  */
+        if (WEXITSTATUS (status) != 0) pid = -1;
+#ifdef WTERMSIG
+        /* If we have WEXITSTATUS and WTERMSIG, just use them on ints.  */
+        -- blow chunks here --
+#endif
+#endif
+#ifdef HAVE_WAITPID
+        /* Make sure union wait works with waitpid.  */
+        pid = waitpid (-1, &status, 0);
+#endif
+      ]])],
+    [nmh_cv_union_wait=yes],
+    [nmh_cv_union_wait=no])])
+if test "$nmh_cv_union_wait" = yes; then
+  AC_DEFINE(HAVE_UNION_WAIT, 1,
+    [Define to 1 if you have the \`union wait' type in <sys/wait.h>.])
 fi
+AC_MSG_RESULT($nmh_cv_union_wait)
 
 dnl -------------
 dnl CHECK SIGNALS
 dnl -------------
 dnl What style of signal do you have (POSIX, BSD, or SYSV)?
+AH_TEMPLATE(RELIABLE_SIGNALS, [Define to 1 if you have reliable signals.])
 AC_MSG_CHECKING(what style of signals to use)
 if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then
   signals_style=POSIX_SIGNALS
-  AC_DEFINE(POSIX_SIGNALS)
+  AC_DEFINE(POSIX_SIGNALS, 1,
+    [Define to 1 if you use POSIX style signal handling.])
   AC_DEFINE(RELIABLE_SIGNALS)
 elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then
   signals_style=BSD_SIGNALS
-  AC_DEFINE(BSD_SIGNALS)
+  AC_DEFINE(BSD_SIGNALS,1,
+    [Define to 1 if you use BSD style signal handling (and can block signals).])
   AC_DEFINE(RELIABLE_SIGNALS)
 elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then
   signals_style=SYSV_SIGNALS
-  AC_DEFINE(SYSV_SIGNALS)
+  AC_DEFINE(SYSV_SIGNALS,1,
+    [Define to 1 if you use SYSV style signal handling (and can block signals).])
 else
   signals_style=NO_SIGNAL_BLOCKING
-  AC_DEFINE(NO_SIGNAL_BLOCKING)
+  AC_DEFINE(NO_SIGNAL_BLOCKING,1,
+    [Define to 1 if you have no signal blocking at all (bummer).])
 fi
 
 AC_MSG_RESULT($signals_style)
@@ -921,6 +998,12 @@ AC_SUBST(SIGNAL_H)dnl
 dnl ----------------
 dnl OS SPECIFIC DEFINES
 dnl ----------------
+AH_TEMPLATE(SYS5, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5; only used in vmh.c which is not built.])
+AH_TEMPLATE(SVR4, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX; only used in vmh.c which is not built.])
+AH_TEMPLATE(BSD44, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody; only used in vmh.c which is not built.])
+AH_TEMPLATE(BSD42, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody -- does PicoBSD have uname?])
+AH_TEMPLATE(SCO_5_STDIO, [Defined for SCO5.])
+
 case "$target_os" in
 
   solaris2*)
index e485dfd..8cb4c79 100644 (file)
@@ -13,7 +13,7 @@
 #include <h/nmh.h>
 #include <h/tws.h>
 
-#if !defined(HAVE_TM_GMTOFF) && !defined(HAVE_TZSET)
+#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && !defined(HAVE_TZSET)
 # include <sys/timeb.h>
 #endif
 
@@ -28,7 +28,7 @@
 # endif
 #endif
 
-#if !defined(HAVE_TM_GMTOFF) && defined(HAVE_TZSET)
+#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && defined(HAVE_TZSET)
 extern int daylight;
 extern long timezone;
 extern char *tzname[];
@@ -142,7 +142,7 @@ dlocaltime (time_t *clock)
     static struct tws tw;
     struct tm *tm;
 
-#if !defined(HAVE_TM_GMTOFF) && !defined(HAVE_TZSET)
+#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && !defined(HAVE_TZSET)
     struct timeb tb;
 #endif
 
index 1572bfe..6043bee 100644 (file)
@@ -24,10 +24,10 @@ pidwait (pid_t id, int sigsok)
     pid_t pid;
     SIGNAL_HANDLER istat, qstat;
 
-#ifdef WAITINT
-    int status;
-#else
+#ifdef HAVE_UNION_WAIT
     union wait status;
+#else
+    int status;
 #endif
 
     if (sigsok == -1) {
@@ -50,9 +50,9 @@ pidwait (pid_t id, int sigsok)
        SIGNAL (SIGQUIT, qstat);
     }
 
-#ifdef WAITINT
-    return (pid == -1 ? -1 : status);
-#else
+#ifdef HAVE_UNION_WAIT
     return (pid == -1 ? -1 : status.w_status);
+#else
+    return (pid == -1 ? -1 : status);
 #endif
 }
index e28c73e..9317def 100644 (file)
@@ -134,10 +134,10 @@ show_single_message (CT ct, char *form)
 {
     sigset_t set, oset;
 
-#ifdef WAITINT
-    int status;
-#else
+#ifdef HAVE_UNION_WAIT
     union wait status;
+#else
+    int status;
 #endif
 
     /* Allow user executable bit so that temporary directories created by
@@ -172,10 +172,10 @@ show_single_message (CT ct, char *form)
     SIGPROCMASK (SIG_BLOCK, &set, &oset);
 
     while (wait (&status) != NOTOK) {
-#ifdef WAITINT
-       pidcheck (status);
-#else
+#ifdef HAVE_UNION_WAIT
        pidcheck (status.w_status);
+#else
+       pidcheck (status);
 #endif
        continue;
     }
@@ -785,10 +785,10 @@ show_multi_internal (CT ct, int serial, int alternate)
     if (serial && !nowserial) {
        pid_t pid;
        int kids;
-#ifdef WAITINT
-       int status;
-#else
+#ifdef HAVE_UNION_WAIT
        union wait status;
+#else
+       int status;
 #endif
 
        kids = 0;
@@ -804,10 +804,10 @@ show_multi_internal (CT ct, int serial, int alternate)
        }
 
        while (kids > 0 && (pid = wait (&status)) != NOTOK) {
-#ifdef WAITINT
-           pidcheck (status);
-#else
+#ifdef HAVE_UNION_WAIT
            pidcheck (status.w_status);
+#else
+           pidcheck (status);
 #endif
 
            for (part = m->mp_parts; part; part = part->mp_next) {
index 9b272d2..97c3228 100644 (file)
@@ -177,7 +177,7 @@ main (int argc, char **argv)
     setutent();
     while ((utp = getutent()) != NULL) {
         if (
-#ifdef HAVE_UTMP_UT_TYPE
+#ifdef HAVE_STRUCT_UTMP_UT_TYPE
               utp->ut_type == USER_PROCESS 
               &&
 #endif
index f500f6e..4a8875e 100644 (file)
@@ -959,7 +959,7 @@ logged_in (void)
 
     while ((utp = getutent()) != NULL) {
         if (
-#ifdef HAVE_UTMP_UT_TYPE
+#ifdef HAVE_STRUCT_UTMP_UT_TYPE
                utp->ut_type == USER_PROCESS
                 &&
 #endif
index 421c367..a1b8ebf 100644 (file)
@@ -105,10 +105,10 @@ read_termcap(void)
  * If possible, we let tgetent allocate its own termcap buffer
  */
 #ifdef TGETENT_ACCEPTS_NULL
-    if (tgetent (NULL, term) <= 0)
-       return
+    if (tgetent (NULL, term) != TGETENT_SUCCESS)
+       return;
 #else
-    if (tgetent (termbuf, term) <= 0)
+    if (tgetent (termbuf, term) != TGETENT_SUCCESS)
        return;
 #endif