/* config.h.in.  Generated automatically from configure.in by autoheader.  */

/* Define if you have the strcoll function and it is properly defined.  */
#undef HAVE_STRCOLL

/* Define if on MINIX.  */
#undef _MINIX

/* Define if the system does not provide POSIX.1 features except
   with this defined.  */
#undef _POSIX_1_SOURCE

/* Define if you need to in order for stat and other things to work.  */
#undef _POSIX_SOURCE

/* Define as the return type of signal handlers (int or void).  */
#undef RETSIGTYPE

/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
#undef STAT_MACROS_BROKEN

/* Definitions pulled in from aclocal.m4. */
#undef VOID_SIGHANDLER

#undef TIOCSTAT_IN_SYS_IOCTL

#undef HAVE_GETPW_DECLS

#undef FIONREAD_IN_SYS_IOCTL

#undef HAVE_BSD_SIGNALS

#undef HAVE_LSTAT

#undef HAVE_POSIX_SIGNALS

#undef HAVE_POSIX_SIGSETJMP

#undef HAVE_USG_SIGHOLD

#undef MUST_REINSTALL_SIGHANDLERS

#undef SPEED_T_IN_SYS_TYPES

#undef STRCOLL_BROKEN

#undef STRUCT_DIRENT_HAS_D_FILENO

#undef STRUCT_DIRENT_HAS_D_INO

#undef STRUCT_WINSIZE_IN_SYS_IOCTL

#undef STRUCT_WINSIZE_IN_TERMIOS

/* Define if you have the lstat function.  */
#undef HAVE_LSTAT

/* Define if you have the putenv function.  */
#undef HAVE_PUTENV

/* Define if you have the select function.  */
#undef HAVE_SELECT

/* Define if you have the setenv function.  */
#undef HAVE_SETENV

/* Define if you have the setlocale function.  */
#undef HAVE_SETLOCALE

/* Define if you have the strcasecmp function.  */
#undef HAVE_STRCASECMP

/* Define if you have the tcgetattr function.  */
#undef HAVE_TCGETATTR

/* Define if you have the <dirent.h> header file.  */
#undef HAVE_DIRENT_H

/* Define if you have the <locale.h> header file.  */
#undef HAVE_LOCALE_H

/* Define if you have the <ndir.h> header file.  */
#undef HAVE_NDIR_H

/* Define if you have the <stdarg.h> header file.  */
#undef HAVE_STDARG_H

/* Define if you have the <stdlib.h> header file.  */
#undef HAVE_STDLIB_H

/* Define if you have the <string.h> header file.  */
#undef HAVE_STRING_H

/* Define if you have the <sys/dir.h> header file.  */
#undef HAVE_SYS_DIR_H

/* Define if you have the <sys/file.h> header file.  */
#undef HAVE_SYS_FILE_H

/* Define if you have the <sys/ndir.h> header file.  */
#undef HAVE_SYS_NDIR_H

/* Define if you have the <sys/pte.h> header file.  */
#undef HAVE_SYS_PTE_H

/* Define if you have the <sys/ptem.h> header file.  */
#undef HAVE_SYS_PTEM_H

/* Define if you have the <sys/select.h> header file.  */
#undef HAVE_SYS_SELECT_H

/* Define if you have the <sys/stream.h> header file.  */
#undef HAVE_SYS_STREAM_H

/* Define if you have the <termcap.h> header file.  */
#undef HAVE_TERMCAP_H

/* Define if you have the <termio.h> header file.  */
#undef HAVE_TERMIO_H

/* Define if you have the <termios.h> header file.  */
#undef HAVE_TERMIOS_H

/* Define if you have the <unistd.h> header file.  */
#undef HAVE_UNISTD_H

/* Define if you have the <varargs.h> header file.  */
#undef HAVE_VARARGS_H
/* config.h.bot */
/* modify settings or make new ones based on what autoconf tells us. */

/* Ultrix botches type-ahead when switching from canonical to
   non-canonical mode, at least through version 4.3 */
#if !defined (HAVE_TERMIOS_H) || !defined (HAVE_TCGETATTR) || defined (ultrix)
#  define TERMIOS_MISSING
#endif

#if defined (STRCOLL_BROKEN)
#  undef HAVE_STRCOLL
#endif

#if defined (__STDC__) && defined (HAVE_STDARG_H)
#  define PREFER_STDARG
#  define USE_VARARGS
#else
#  if defined (HAVE_VARARGS_H)
#    define PREFER_VARARGS
#    define USE_VARARGS
#  endif
#endif
