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 */ 47static 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} 62static 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