/*
 * config.h.in.  Generated automatically from configure.in by autoheader, and
 * manually changed after that.
 */

/* Define if we have EBCDIC code */
#undef EBCDIC

/* Define unless no X support found */
#undef HAVE_X11

/* Define when terminfo support found */
#undef TERMINFO

/* Define when termcap.h contains ospeed */
#undef HAVE_OSPEED

/* Define when ospeed can be extern */
#undef OSPEED_EXTERN

/* Define when termcap.h contains UP, BC and PC */
#undef HAVE_UP_BC_PC

/* Define when UP, BC and PC can be extern */
#undef UP_BC_PC_EXTERN

/* Define when termcap.h defines outfuntype */
#undef HAVE_OUTFUNTYPE

/* Define when __DATE__ " " __TIME__ can be used */
#undef HAVE_DATE_TIME

/* Define when __attribute__((unused)) can be used */
#undef HAVE_ATTRIBUTE_UNUSED

/* defined always when using configure */
#undef UNIX

/* Defined to the size of an int */
#undef SIZEOF_INT

/* Define when wchar_t is only 2 bytes. */
#undef SMALL_WCHAR_T

/*
 * If we cannot trust one of the following from the libraries, we use our
 * own safe but probably slower vim_memmove().
 */
#undef USEBCOPY
#undef USEMEMMOVE
#undef USEMEMCPY

/* Define when "man -s 2" is to be used */
#undef USEMAN_S

/* Define to empty if the keyword does not work.  */
#undef const

/* Define to empty if the keyword does not work.  */
#undef volatile

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef mode_t

/* Define to `long' if <sys/types.h> doesn't define.  */
#undef off_t

/* Define to `long' if <sys/types.h> doesn't define.  */
#undef pid_t

/* Define to `unsigned' if <sys/types.h> doesn't define.  */
#undef size_t

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef uid_t

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef gid_t

/* Define to `long' if <sys/types.h> doesn't define.  */
#undef ino_t

/* Define to `unsigned' if <sys/types.h> doesn't define.  */
#undef dev_t

/* Define to `unsigned long' if <sys/types.h> doesn't define.  */
#undef rlim_t

/* Define to `struct sigaltstack' if <signal.h> doesn't define.  */
#undef stack_t

/* Define if stack_t has the ss_base field. */
#undef HAVE_SS_BASE

/* Define if you can safely include both <sys/time.h> and <time.h>.  */
#undef TIME_WITH_SYS_TIME

/* Define if you can safely include both <sys/time.h> and <sys/select.h>.  */
#undef SYS_SELECT_WITH_SYS_TIME

/* Define if you have /dev/ptc */
#undef HAVE_DEV_PTC

/* Define if you have Sys4 ptys */
#undef HAVE_SVR4_PTYS

/* Define to range of pty names to try */
#undef PTYRANGE0
#undef PTYRANGE1

/* Define mode for pty */
#undef PTYMODE

/* Define group for pty */
#undef PTYGROUP

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

/* Define as the command at the end of signal handlers ("" or "return 0;").  */
#undef SIGRETURN

/* Define if struct sigcontext is present */
#undef HAVE_SIGCONTEXT

/* Define if touuper/tolower only work on lower/upercase characters */
#undef BROKEN_TOUPPER

/* Define if stat() ignores a trailing slash */
#undef STAT_IGNORES_SLASH

/* Define if tgetstr() has a second argument that is (char *) */
#undef TGETSTR_CHAR_P

/* Define if tgetent() returns zero for an error */
#undef TGETENT_ZERO_ERR

/* Define if the getcwd() function should not be used.  */
#undef BAD_GETCWD

/* Define if you the function: */
#undef HAVE_BCMP
#undef HAVE_FCHDIR
#undef HAVE_FCHOWN
#undef HAVE_FSEEKO
#undef HAVE_FSYNC
#undef HAVE_FTELLO
#undef HAVE_GETCWD
#undef HAVE_GETPSEUDOTTY
#undef HAVE_GETPWNAM
#undef HAVE_GETPWUID
#undef HAVE_GETRLIMIT
#undef HAVE_GETTIMEOFDAY
#undef HAVE_GETWD
#undef HAVE_ICONV
#undef HAVE_NL_LANGINFO_CODESET
#undef HAVE_LSTAT
#undef HAVE_MEMCMP
#undef HAVE_MEMSET
#undef HAVE_NANOSLEEP
#undef HAVE_OPENDIR
#undef HAVE_FLOAT_FUNCS
#undef HAVE_PUTENV
#undef HAVE_QSORT
#undef HAVE_READLINK
#undef HAVE_RENAME
#undef HAVE_SELECT
#undef HAVE_SELINUX
#undef HAVE_SETENV
#undef HAVE_SETPGID
#undef HAVE_SETSID
#undef HAVE_SIGACTION
#undef HAVE_SIGALTSTACK
#undef HAVE_SIGSET
#undef HAVE_SIGSETJMP
#undef HAVE_SIGSTACK
#undef HAVE_SIGVEC
#undef HAVE_STRCASECMP
#undef HAVE_STRERROR
#undef HAVE_STRFTIME
#undef HAVE_STRICMP
#undef HAVE_STRNCASECMP
#undef HAVE_STRNICMP
#undef HAVE_STRPBRK
#undef HAVE_STRTOL
#undef HAVE_ST_BLKSIZE
#undef HAVE_SYSCONF
#undef HAVE_SYSCTL
#undef HAVE_SYSINFO
#undef HAVE_SYSINFO_MEM_UNIT
#undef HAVE_TGETENT
#undef HAVE_TOWLOWER
#undef HAVE_TOWUPPER
#undef HAVE_ISWUPPER
#undef HAVE_USLEEP
#undef HAVE_UTIME
#undef HAVE_BIND_TEXTDOMAIN_CODESET

/* Define if you do not have utime(), but do have the utimes() function. */
#undef HAVE_UTIMES

/* Define if you have the header file: */
#undef HAVE_DIRENT_H
#undef HAVE_ERRNO_H
#undef HAVE_FCNTL_H
#undef HAVE_FRAME_H
#undef HAVE_ICONV_H
#undef HAVE_LANGINFO_H
#undef HAVE_LIBC_H
#undef HAVE_LIBGEN_H
#undef HAVE_LIBINTL_H
#undef HAVE_LOCALE_H
#undef HAVE_MATH_H
#undef HAVE_NDIR_H
#undef HAVE_POLL_H
#undef HAVE_PTHREAD_NP_H
#undef HAVE_PWD_H
#undef HAVE_SETJMP_H
#undef HAVE_SGTTY_H
#undef HAVE_STRINGS_H
#undef HAVE_STROPTS_H
#undef HAVE_SYS_ACCESS_H
#undef HAVE_SYS_ACL_H
#undef HAVE_SYS_DIR_H
#undef HAVE_SYS_IOCTL_H
#undef HAVE_SYS_NDIR_H
#undef HAVE_SYS_PARAM_H
#undef HAVE_SYS_POLL_H
#undef HAVE_SYS_PTEM_H
#undef HAVE_SYS_RESOURCE_H
#undef HAVE_SYS_SELECT_H
#undef HAVE_SYS_STATFS_H
#undef HAVE_SYS_STREAM_H
#undef HAVE_SYS_SYSCTL_H
#undef HAVE_SYS_SYSINFO_H
#undef HAVE_SYS_SYSTEMINFO_H
#undef HAVE_SYS_TIME_H
#undef HAVE_SYS_UTSNAME_H
#undef HAVE_WCHAR_H
#undef HAVE_WCTYPE_H
#undef HAVE_TERMCAP_H
#undef HAVE_TERMIOS_H
#undef HAVE_TERMIO_H
#undef HAVE_UNISTD_H
#undef HAVE_UTIL_DEBUG_H
#undef HAVE_UTIL_MSGI18N_H
#undef HAVE_UTIME_H
#undef HAVE_X11_SUNKEYSYM_H
#undef HAVE_XM_XM_H
#undef HAVE_XM_XPMP_H
#undef HAVE_XM_TRAITP_H
#undef HAVE_XM_MANAGER_H
#undef HAVE_XM_UNHIGHLIGHTT_H
#undef HAVE_XM_JOINSIDET_H
#undef HAVE_XM_NOTEBOOK_H
#undef HAVE_X11_XPM_H
#undef HAVE_X11_XMU_EDITRES_H
#undef HAVE_X11_SM_SMLIB_H

/* Define to the type of the XpmAttributes type. */
#undef XPMATTRIBUTES_TYPE

/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
#undef HAVE_SYS_WAIT_H

/* Define if you have a <sys/wait.h> that is not POSIX.1 compatible. */
#undef HAVE_UNION_WAIT

/* This is currently unused in vim: */
/* Define if you have the ANSI C header files. */
/* #undef STDC_HEADERS */

/* instead, we check a few STDC things ourselves */
#undef HAVE_STDARG_H
#undef HAVE_STDLIB_H
#undef HAVE_STRING_H

/* Define if strings.h cannot be included when strings.h already is */
#undef NO_STRINGS_WITH_STRING_H

/* Define if you want tiny features. */
#undef FEAT_TINY

/* Define if you want small features. */
#undef FEAT_SMALL

/* Define if you want normal features. */
#undef FEAT_NORMAL

/* Define if you want big features. */
#undef FEAT_BIG

/* Define if you want huge features. */
#undef FEAT_HUGE

/* Define if you want to include the MzScheme interpreter. */
#undef FEAT_MZSCHEME

/* Define if you want to include the Perl interpreter. */
#undef FEAT_PERL

/* Define if you want to include the Python interpreter. */
#undef FEAT_PYTHON

/* Define if you want to include the Ruby interpreter. */
#undef FEAT_RUBY

/* Define if you want to include the Tcl interpreter. */
#undef FEAT_TCL

/* Define if you want to include the Sniff interface. */
#undef FEAT_SNIFF

/* Define if you want to add support for ACL */
#undef HAVE_POSIX_ACL
#undef HAVE_SOLARIS_ACL
#undef HAVE_AIX_ACL

/* Define if you want to add support of GPM (Linux console mouse daemon) */
#undef HAVE_GPM

/* Define if you want to add support of sysmouse (*BSD console mouse) */
#undef HAVE_SYSMOUSE

/* Define if you want to include the Cscope interface. */
#undef FEAT_CSCOPE

/* Define if you want to include multibyte support. */
#undef FEAT_MBYTE

/* Define if you want to include fontset support. */
#undef FEAT_XFONTSET

/* Define if you want to include XIM support. */
#undef FEAT_XIM

/* Define if you want to include Hangul input support. */
#undef FEAT_HANGULIN

/* Define if you use GTK and want GNOME support. */
#undef FEAT_GUI_GNOME

/* Define if you use KDE and want KDE Toolbar support. */
#undef FEAT_KDETOOLBAR

/* Define if GTK+ 2 is available. */
#undef HAVE_GTK2

/* Define if GTK+ multihead support is available (requires GTK+ >= 2.1.1). */
#undef HAVE_GTK_MULTIHEAD

/* Define if your X has own locale library */
#undef X_LOCALE

/* Define if we have dlfcn.h. */
#undef HAVE_DLFCN_H

/* Define if there is a working gettext(). */
#undef HAVE_GETTEXT

/* Define if _nl_msg_cat_cntr is present. */
#undef HAVE_NL_MSG_CAT_CNTR

/* Define if we have dlopen() */
#undef HAVE_DLOPEN

/* Define if we have dlsym() */
#undef HAVE_DLSYM

/* Define if we have dl.h. */
#undef HAVE_DL_H

/* Define if we have shl_load() */
#undef HAVE_SHL_LOAD

/* Define if you want to include Sun Visual Workshop support. */
#undef FEAT_SUN_WORKSHOP

/* Define if you want to include NetBeans integration. */
#undef FEAT_NETBEANS_INTG

/* Define default global runtime path */
#undef RUNTIME_GLOBAL

/* Define name of who modified a released Vim */
#undef MODIFIED_BY

/* Define if you want XSMP interaction as well as vanilla swapfile safety */
#undef USE_XSMP_INTERACT
