/* os_os2_cfg.h */
/* vi:set ts=8 sts=4 sw=4: */

#define CASE_INSENSITIVE_FILENAME   /* ignore case when comparing file names */
#define SPACE_IN_FILENAME
#define BACKSLASH_IN_FILENAME
#define BINARY_FILE_IO
#define USE_CRNL		/* lines end in CR-NL instead of NL */
#define NO_EXPANDPATH		/* always call mch_expand_wildcards */
#define USE_EXE_NAME		/* use argv[0] for $VIM */
#define USE_TERM_CONSOLE
#define HAVE_DUP		/* have dup() */

#define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */

/*
 * The rest is manually generated from configure.in by Paul Slootman.
 */

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

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

/* Define when termcap.h contains ospeed */
#define HAVE_OSPEED	1

#define HAVE_STRICMP
#define HAVE_STRNICMP

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

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

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

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

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

#undef UNIX	/* define always by current configure script */

/* Defined to the size of an int */
#define SIZEOF_INT 4

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

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

/* 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 if you can safely include both <sys/time.h> and <time.h>.  */
#define TIME_WITH_SYS_TIME	1

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

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

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

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

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

/* Define if you have the sigset() function.  */
#undef HAVE_SIGSET

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

/* Define if you have the getcwd() function.  */
#define HAVE_GETCWD	1

/* Define if you have the getwd() function.  */
#define HAVE_GETWD	1

/* Define if you have the select() function.  */
#define HAVE_SELECT	1

/* Define if you have the strcspn() function.  */
#define HAVE_STRCSPN	1

/* Define if you have the strtol() function.  */
#define HAVE_STRTOL	1

/* Define if you have the tgetent() function.  */
#define HAVE_TGETENT	1

#define HAVE_STRFTIME	    /* guessed */

/* Define if you have the memset() function.  */
#define HAVE_MEMSET	1

/* Define if you have the strerror() function.	*/
#define HAVE_STRERROR	1

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

/* Define if you have the fchown() function.  */
#undef HAVE_FCHOWN

/* Define if you have the rename() function. */
#define HAVE_RENAME	1

/* Define if you have the fsync() function. */
#undef HAVE_FSYNC   /* exists, but apparently Bad Things happen when used */

/* Define if you have the fchdir() function. */
#undef HAVE_FCHDIR

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

/* Define if you have the putenv() function. */
#define HAVE_PUTENV	1

/* Define if you have the gettimeofday() function. */
#undef HAVE_GETTIMEOFDAY

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

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

/* Define if you have the qsort() function. */
#define HAVE_QSORT  1

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

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

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

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

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

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

/* added by David Sanders */
#define HAVE_STDARG_H 1

/* instead, we check a few STDC things ourselves */
#define HAVE_STDLIB_H	1
#undef HAVE_STRING_H	/* On EMX it is better to use strings.h */

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

/* Define if you have the <sys/utsname.h> header file.	*/
#define HAVE_SYS_UTSNAME_H	1

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

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

/* Define if you have the <sgtty.h> header file.  */
#define HAVE_SGTTY_H	1

/* Define if you have the <sys/ioctl.h> header file.  */
#define HAVE_SYS_IOCTL_H	1

/* Define if you have the <sys/time.h> header file.  */
#define HAVE_SYS_TIME_H

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

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

/* Define if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H

/* Define if you have the <errno.h> header file. */
#define HAVE_ERRNO_H	1

/* Define if you have the <strings.h> header file. */
#define HAVE_STRINGS_H	1

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

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

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

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

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

/* Define if you have the <libc.h> header file. */
#undef HAVE_LIBC_H

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

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

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