1 /* 2 * Summary: Windows configuration header 3 * Description: Windows configuration header 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Igor Zlatkovic 8 */ 9 #ifndef __LIBXSLT_WIN32_CONFIG__ 10 #define __LIBXSLT_WIN32_CONFIG__ 11 12 #define HAVE_CTYPE_H 1 13 #define HAVE_STDLIB_H 1 14 #define HAVE_STDARG_H 1 15 #define HAVE_MALLOC_H 1 16 #define HAVE_TIME_H 1 17 #define HAVE_LOCALTIME 1 18 #define HAVE_GMTIME 1 19 #define HAVE_TIME 1 20 #define HAVE_MATH_H 1 21 #define HAVE_FCNTL_H 1 22 23 #include <io.h> 24 25 #define HAVE_ISINF 26 #define HAVE_ISNAN 27 28 #include <math.h> 29 #if defined _MSC_VER || defined __MINGW32__ 30 /* MS C-runtime has functions which can be used in order to determine if 31 a given floating-point variable contains NaN, (+-)INF. These are 32 preferred, because floating-point technology is considered propriatary 33 by MS and we can assume that their functions know more about their 34 oddities than we do. */ 35 #include <float.h> 36 /* Bjorn Reese figured a quite nice construct for isinf() using the 37 _fpclass() function. */ 38 #ifndef isinf 39 #define isinf(d) ((_fpclass(d) == _FPCLASS_PINF) ? 1 \ 40 : ((_fpclass(d) == _FPCLASS_NINF) ? -1 : 0)) 41 #endif 42 /* _isnan(x) returns nonzero if (x == NaN) and zero otherwise. */ 43 #ifndef isnan 44 #define isnan(d) (_isnan(d)) 45 #endif 46 #else /* _MSC_VER */ 47 static int isinf (double d) { 48 int expon = 0; 49 double val = frexp (d, &expon); 50 if (expon == 1025) { 51 if (val == 0.5) { 52 return 1; 53 } else if (val == -0.5) { 54 return -1; 55 } else { 56 return 0; 57 } 58 } else { 59 return 0; 60 } 61 } 62 static int isnan (double d) { 63 int expon = 0; 64 double val = frexp (d, &expon); 65 if (expon == 1025) { 66 if (val == 0.5) { 67 return 0; 68 } else if (val == -0.5) { 69 return 0; 70 } else { 71 return 1; 72 } 73 } else { 74 return 0; 75 } 76 } 77 #endif /* _MSC_VER */ 78 79 #include <direct.h> 80 #if defined(_MSC_VER) || defined(__MINGW32__) 81 #define mkdir(p,m) _mkdir(p) 82 #define snprintf _snprintf 83 #if _MSC_VER < 1500 84 #define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a) 85 #endif 86 #endif 87 88 #define HAVE_SYS_STAT_H 89 #define HAVE__STAT 90 #define HAVE_STRING_H 91 92 #include <libxml/xmlversion.h> 93 94 #ifndef ATTRIBUTE_UNUSED 95 #define ATTRIBUTE_UNUSED 96 #endif 97 98 #define _WINSOCKAPI_ 99 100 #endif /* __LIBXSLT_WIN32_CONFIG__ */ 101 102