+dnl --- *@-mdw_CURSES-@* ---
+dnl
+dnl Author: Mark Wooding
+dnl
+dnl Synopsis: mdw_CURSES
+dnl
+dnl Arguments: ---
+dnl
+dnl Use: Searches for a `curses' library (one of `ncurses' or
+dnl `curses') using mdw_CHECK_MANYLIBS. If one is found, the
+dnl preprocessor macro HAVE_CURSES is defined, and a search is
+dnl made for a `curses' header file (one of <ncurses.h>,
+dnl <ncurses/ncurses.h> or <curses.h>) using AC_CHECK_HEADERS
+dnl and the appropriate preprocessor symbol is defined.
+dnl Finally, a check is made for the function `wresize' using
+dnl AC_CHECK_FUNCS.
+
+AC_DEFUN(mdw_CURSES,
+[mdw_CHECK_MANYLIBS(newwin, ncurses curses, AC_DEFINE(HAVE_CURSES))
+if test $mdw_cv_lib_newwin != no; then
+AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h curses.h], [break])
+if test "$ac_cv_header_ncurses_h" = "no" &&
+ test "$ac_cv_header_ncurses_ncurses_h" = "no" &&
+ test "$ac_cv_header_curses_h" = "no"; then
+ AC_MSG_WARN([couldn't find a \`curses' header. Assuming \`curses.h'.])
+ AC_DEFINE(HAVE_CURSES_H)
+fi
+AC_CHECK_FUNCS(wresize)
+fi])
+
+dnl --- *@-mdw_TYPE_SSIZE_T-@* ---
+dnl
+dnl Author: Mark Wooding
+dnl
+dnl Synopsis: mdw_TYPE_SSIZE_T
+dnl
+dnl Arguments: ---
+dnl
+dnl Use: Checks whether the Posix type `ssize_t' is defined. If not,
+dnl it defaults to `int'.
+
+AC_DEFUN(mdw_TYPE_SSIZE_T,
+[AC_REQUIRE([AC_HEADER_STDC])
+AC_CACHE_CHECK(for ssize_t, mdw_cv_ssize_t,
+[AC_EGREP_CPP(ssize_t,
+[#include <sys/types.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif],
+[mdw_cv_ssize_t=yes], [mdw_cv_ssize_t=no])])
+if test $mdw_cv_ssize_t = no; then
+ AC_DEFINE(ssize_t, int)
+fi])
+
+dnl --- *@-mdw_DECL_ENVIRON-@* ---
+dnl
+dnl Author: Mark Wooding
+dnl
+dnl Synopsis: mdw_DECL_ENVIRON
+dnl
+dnl Arguments: ---
+dnl
+dnl Use: Searches for a declaration of the global `environ' variable.
+dnl If one is found in one of the `usual' places, DECL_ENVIRON
+dnl is defined as a preprocessor symbol.
+
+AC_DEFUN(mdw_DECL_ENVIRON,
+[AC_CACHE_CHECK([for declaration of \`environ'], mdw_cv_environ,
+[AC_EGREP_CPP(environ,
+[#include <sys/types.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif], [mdw_cv_environ=yes], [mdw_cv_environ=no])])
+if test $mdw_cv_environ = yes; then
+ AC_DEFINE(DECL_ENVIRON)
+fi])
+