/* * This file should be included after all system includes and before * all local includes. */ #ifndef __MC_GLOBAL_H #define __MC_GLOBAL_H #include /* for free() and other useful routins */ #if defined(STDC_HEADERS) || defined(HAVE_STRING_H) # include /* An ANSI string.h and pre-ANSI memory.h might conflict */ # if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) # include # endif /* !STDC_HEADERS & HAVE_MEMORY_H */ #else /* !STDC_HEADERS & !HAVE_STRING_H */ # include /* memory and strings.h conflict on other systems */ #endif /* !STDC_HEADERS & !HAVE_STRING_H */ #ifdef HAVE_SYS_PARAM_H # include #endif #ifdef HAVE_FCNTL_H # include #endif /* The O_BINARY definition was taken from gettext */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY #endif #ifdef __BEOS__ /* BeOS 5 has O_BINARY, but is has no effect. */ # undef O_BINARY #endif /* On reasonable systems, binary I/O is the default. */ #ifndef O_BINARY # define O_BINARY 0 #endif /* Replacement for O_NONBLOCK */ #ifndef O_NONBLOCK #ifdef O_NDELAY /* SYSV */ #define O_NONBLOCK O_NDELAY #else /* BSD */ #define O_NONBLOCK FNDELAY #endif /* !O_NDELAY */ #endif /* !O_NONBLOCK */ #ifdef HAVE_SYS_TIMEB_H # include #endif #ifdef TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #if !defined(HAVE_SYS_TIME_H) struct timeval { long int tv_sec; /* seconds */ long int tv_usec; /* microseconds */ }; #endif /* !HAVE_SYS_TIME_H */ #ifdef HAVE_UTIME_H # include #elif defined(HAVE_SYS_UTIME_H) # include #endif #ifdef HAVE_SYS_WAIT_H # include #endif #ifdef HAVE_SYS_SELECT_H # include #endif #ifdef HAVE_GRP_H # include #endif #ifdef HAVE_PWD_H # include #endif #if defined(__QNX__) && !defined(__QNXNTO__) /* exec*() from */ # include #endif #include #include "glibcompat.h" #if defined(HAVE_RX_H) && defined(HAVE_REGCOMP) #include #else #include "eregex.h" #endif #ifndef __GNUC__ # define __attribute__(x) #endif #ifndef HAVE_GETUID # define getuid() 0 #endif #ifndef HAVE_GETGID # define getgid() 0 #endif #ifndef HAVE_GETEUID # define geteuid() getuid() #endif #ifndef HAVE_GETEGID # define getegid() getgid() #endif #ifdef ENABLE_NLS # include # define _(String) gettext (String) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else # define N_(String) (String) # endif #else /* Stubs that do something close enough. */ # define textdomain(String) # define gettext(String) (String) # define dgettext(Domain,Message) (Message) # define dcgettext(Domain,Message,Type) (Message) # define bindtextdomain(Domain,Directory) # define _(String) (String) # define N_(String) (String) #endif /* !ENABLE_NLS */ #include "fs.h" #include "util.h" #include "textconf.h" #ifdef USE_VFS #include "../vfs/vfs.h" #else #include "vfsdummy.h" #endif extern const char *home_dir; #ifdef min #undef min #endif #ifdef max #undef max #endif #define min(x, y) ((x) > (y) ? (y) : (x)) #define max(x, y) ((x) > (y) ? (x) : (y)) /* Just for keeping Your's brains from invention a proper size of the buffer :-) */ #define BUF_10K 10240L #define BUF_8K 8192L #define BUF_4K 4096L #define BUF_1K 1024L #define BUF_LARGE BUF_1K #define BUF_MEDIUM 512 #define BUF_SMALL 128 #define BUF_TINY 64 void refresh_screen (void *); /* AIX compiler doesn't understand '\e' */ #define ESC_CHAR '\033' #define ESC_STR "\033" /* C++ style type casts */ #define const_cast(m_type, m_expr) ((m_type) (m_expr)) #endif /* !__MC_GLOBAL_H */