/* config.h.in.  Maintained by hand. */

/* Template definitions for autoconf */
#undef __EXTENSIONS__
#undef _ALL_SOURCE
#undef _GNU_SOURCE
#undef _POSIX_SOURCE
#undef _POSIX_1_SOURCE
#undef _POSIX_PTHREAD_SEMANTICS
#undef _TANDEM_SOURCE
#undef _MINIX

/* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte
   characters, even if the OS supports them. */
#undef NO_MULTIBYTE_SUPPORT

#undef _FILE_OFFSET_BITS

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

#undef VOID_SIGHANDLER

/* Characteristics of the compiler. */
#undef sig_atomic_t

#undef size_t

#undef ssize_t

#undef const

#undef volatile

#undef PROTOTYPES
#undef __PROTOTYPES

#undef __CHAR_UNSIGNED__

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

/* Define if you have the chown function. */
#undef HAVE_CHOWN

/* Define if you have the fcntl function. */
#undef HAVE_FCNTL

/* Define if you have the fnmatch function. */
#undef HAVE_FNMATCH

/* Define if you have the getpwent function. */
#undef HAVE_GETPWENT

/* Define if you have the getpwnam function. */
#undef HAVE_GETPWNAM

/* Define if you have the getpwuid function. */
#undef HAVE_GETPWUID

/* Define if you have the isascii function. */
#undef HAVE_ISASCII

/* Define if you have the iswctype function.  */
#undef HAVE_ISWCTYPE

/* Define if you have the iswlower function.  */
#undef HAVE_ISWLOWER

/* Define if you have the iswupper function.  */
#undef HAVE_ISWUPPER

/* Define if you have the isxdigit function. */
#undef HAVE_ISXDIGIT

/* Define if you have the kill function. */
#undef HAVE_KILL

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

/* Define if you have the mbrlen function. */
#undef HAVE_MBRLEN

/* Define if you have the mbrtowc function. */
#undef HAVE_MBRTOWC

/* Define if you have the mbsrtowcs function. */
#undef HAVE_MBSRTOWCS

/* Define if you have the memmove function. */
#undef HAVE_MEMMOVE

/* Define if you have the pselect function.  */
#undef HAVE_PSELECT

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

/* Define if you have the readlink function.  */
#undef HAVE_READLINK

/* 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 strcoll function.  */
#undef HAVE_STRCOLL

#undef STRCOLL_BROKEN

/* Define if you have the strpbrk function.  */
#undef HAVE_STRPBRK

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

/* Define if you have the towlower function.  */
#undef HAVE_TOWLOWER

/* Define if you have the towupper function.  */
#undef HAVE_TOWUPPER

/* Define if you have the vsnprintf function.  */
#undef HAVE_VSNPRINTF

/* Define if you have the wcrtomb function.  */
#undef HAVE_WCRTOMB 

/* Define if you have the wcscoll function.  */
#undef HAVE_WCSCOLL

/* Define if you have the wctype function.  */
#undef HAVE_WCTYPE

/* Define if you have the wcwidth function.  */
#undef HAVE_WCWIDTH

/* and whether it works */
#undef WCWIDTH_BROKEN

#undef STDC_HEADERS

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

/* Define if you have the <fcntl.h> header file.  */
#undef HAVE_FCNTL_H

/* Define if you have the <langinfo.h> header file.  */
#undef HAVE_LANGINFO_H

/* Define if you have the <libaudit.h> header file.  */
#undef HAVE_LIBAUDIT_H

/* Define if you have the <limits.h> header file.  */
#undef HAVE_LIMITS_H

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

/* Define if you have the <memory.h> header file.  */
#undef HAVE_MEMORY_H

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

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

/* Define if you have the <pwd.h> header file.  */
#undef HAVE_PWD_H

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

/* Define if you have the <stdbool.h> header file.  */
#undef HAVE_STDBOOL_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 <strings.h> header file.  */
#undef HAVE_STRINGS_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/ioctl.h> header file.  */
#undef HAVE_SYS_IOCTL_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

/* Define if you have the <wchar.h> header file.  */
#undef HAVE_WCHAR_H

/* Define if you have the <wctype.h> header file.  */
#undef HAVE_WCTYPE_H

#undef HAVE_MBSTATE_T

/* Define if you have wchar_t in <wctype.h>. */
#undef HAVE_WCHAR_T 

/* Define if you have wctype_t in <wctype.h>. */
#undef HAVE_WCTYPE_T

/* Define if you have wint_t in <wctype.h>. */  
#undef HAVE_WINT_T  

/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET

/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */
#undef HAVE_DECL_AUDIT_USER_TTY

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

#undef GWINSZ_IN_SYS_IOCTL

#undef STRUCT_WINSIZE_IN_SYS_IOCTL

#undef STRUCT_WINSIZE_IN_TERMIOS

#undef TIOCSTAT_IN_SYS_IOCTL

#undef FIONREAD_IN_SYS_IOCTL

#undef SPEED_T_IN_SYS_TYPES

#undef HAVE_GETPW_DECLS

#undef HAVE_STRUCT_DIRENT_D_INO

#undef HAVE_STRUCT_DIRENT_D_FILENO

#undef HAVE_STRUCT_DIRENT_D_NAMLEN

#undef HAVE_BSD_SIGNALS

#undef HAVE_POSIX_SIGNALS

#undef HAVE_USG_SIGHOLD

#undef MUST_REINSTALL_SIGHANDLERS

#undef HAVE_POSIX_SIGSETJMP

#undef CTYPE_NON_ASCII

/* 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

/* VARARGS defines moved to rlstdc.h */
