From c79c37f2b6e647212c36b63841a4628af01c774a Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Fri, 11 Apr 2008 14:12:54 +0000 Subject: [PATCH] move most remaining macros out of acconfig.h which is an obsolete feature of autoconf --- ChangeLog | 7 ++ acconfig.h | 178 -------------------------------------- configure.in | 259 ++++++++++++++++++++++++++++++++++++------------------- sbr/dtime.c | 6 +- sbr/pidwait.c | 12 +-- uip/mhshowsbr.c | 24 +++--- uip/rcvtty.c | 2 +- uip/slocal.c | 2 +- uip/termsbr.c | 6 +- 9 files changed, 204 insertions(+), 292 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7da2dbc..054cf36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-04-11 Oliver Kiddle + + * 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 * bug #18655: fix use of admonish() for a fatal error (should diff --git a/acconfig.h b/acconfig.h index ba744a4..3649bf3 100644 --- a/acconfig.h +++ b/acconfig.h @@ -12,22 +12,6 @@ */ /* - * 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 @@ -120,35 +104,6 @@ #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'. */ @@ -157,136 +112,3 @@ /***** 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 or 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 - (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 diff --git a/configure.in b/configure.in index e113860..6b21a32 100644 --- a/configure.in +++ b/configure.in @@ -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 -#include -#include ]], -[[/* 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 -#include ]], - [[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 -#include ]], - [[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 .]) ]) ]) -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 .]),, [[#if HAVE_SYS_STREAM_H # include #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 ]], - [[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 . On HP-UX 9-11 and dnl (reportedly) FreeBSD 3.[23], it's in . 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, ), AC_EGREP_HEADER(initgroups, unistd.h, AC_DEFINE(INITGROUPS_HEADER, ))) @@ -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 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 ]], [[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 or 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 # include #else @@ -862,40 +917,62 @@ AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff, # else # include # 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 ], -[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 ]) + +AC_MSG_CHECKING(for union wait) +AC_CACHE_VAL(nmh_cv_union_wait, [dnl + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], + [[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 .]) 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*) diff --git a/sbr/dtime.c b/sbr/dtime.c index e485dfd..8cb4c79 100644 --- a/sbr/dtime.c +++ b/sbr/dtime.c @@ -13,7 +13,7 @@ #include #include -#if !defined(HAVE_TM_GMTOFF) && !defined(HAVE_TZSET) +#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && !defined(HAVE_TZSET) # include #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 diff --git a/sbr/pidwait.c b/sbr/pidwait.c index 1572bfe..6043bee 100644 --- a/sbr/pidwait.c +++ b/sbr/pidwait.c @@ -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 } diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index e28c73e..9317def 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -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) { diff --git a/uip/rcvtty.c b/uip/rcvtty.c index 9b272d2..97c3228 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -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 diff --git a/uip/slocal.c b/uip/slocal.c index f500f6e..4a8875e 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -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 diff --git a/uip/termsbr.c b/uip/termsbr.c index 421c367..a1b8ebf 100644 --- a/uip/termsbr.c +++ b/uip/termsbr.c @@ -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 -- 1.7.10.4