Home | History | Annotate | Download | only in libxslt
      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