#pragma once #if defined(__GNUC__) #define INLINE __inline__ #elif defined(_MSC_VER) #define INLINE inline #endif #ifdef OS_WINDOWS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "xdirent.h" #include "xgetopt.h" #define S_ISDIR(m) (m & _S_IFDIR) #define snprintf _snprintf #define __USE_SELECT__ #define PATH_MAX _MAX_PATH // C runtime library adjustments #define strcasecmp(s1, s2) stricmp(s1, s2) #define strncasecmp(s1, s2, n) strnicmp(s1, s2, n) #define strtok_r(s, delim, ptrptr) strtok_s(s, delim, ptrptr) #define strlcat(dst, src, size) strcat_s(dst, size, src) #define localtime_r(timet, result) localtime_s(result, timet) #define strlcpy(dst, src, size) strncpy_s(dst, size, src, _TRUNCATE) #define __typeof(t) auto // dummy declaration of non-supported signals #define SIGUSR1 30 /* user defined signal 1 */ #define SIGUSR2 31 /* user defined signal 2 */ inline void usleep(unsigned long usec) { ::Sleep(usec / 1000); } inline unsigned sleep(unsigned sec) { ::Sleep(sec * 1000); return 0; } inline double rint(double x) { return ::floor(x+.5); } #else #ifndef OS_FREEBSD #define __USE_SELECT__ #ifdef __CYGWIN__ #define _POSIX_SOURCE 1 #endif #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef OS_FREEBSD #include #endif #endif #ifndef FALSE #define FALSE false #define TRUE true #endif #include "typedef.h" #include "heart.h" #include "fdwatch.h" #include "socket.h" #include "kstbl.h" #include "hangul.h" #include "buffer.h" #include "signal.h" #include "log.h" #include "main.h" #include "utils.h" #include "crypt.h" #include "memcpy.h"