/* Scaling factors for various unit conversions: 1 inch = 2.54 cm */
#ifndef METRIC_CONVERSION_CONSTANT
- #define METRIC_CONVERSION_CONSTANT (1./254)
+ #define METRIC_CONVERSION_CONSTANT (1/25.4)
#endif
#ifndef mm2inches
#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__WATCOMC__)
#include <float.h>
#define wxFinite(x) _finite(x)
-#elif defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \
+#elif defined(__MINGW64__)
+ // add more compilers with C99 support here: using C99 isfinite() is
+ // preferable to using BSD-ish finite()
+ #define wxFinite(x) isfinite(x)
+#elif ( defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \
defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \
- defined(__HPUX__)||defined(__MWERKS__)
+ defined(__HPUX__)||defined(__MWERKS__) ) && ( !defined(wxOSX_USE_IPHONE) || wxOSX_USE_IPHONE == 0 )
+#ifdef __SOLARIS__
+#include <ieeefp.h>
+#endif
#define wxFinite(x) finite(x)
#else
#define wxFinite(x) ((x) == (x))
// shouldn't be used with doubles, but we get too many of them and
// removing these operators is probably not a good idea
//
- // Maybe we should alway compare doubles up to some "epsilon" precision
+ // Maybe we should always compare doubles up to some "epsilon" precision
#pragma warning(push)
// floating-point equality and inequality comparisons are unreliable
extern "C" {
#endif
/* functions from common/extended.c */
- WXDLLEXPORT wxFloat64 wxConvertFromIeeeExtended(const wxInt8 *bytes);
- WXDLLEXPORT void wxConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes);
+ WXDLLIMPEXP_BASE wxFloat64 wxConvertFromIeeeExtended(const wxInt8 *bytes);
+ WXDLLIMPEXP_BASE void wxConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes);
/* use wxConvertFromIeeeExtended() and wxConvertToIeeeExtended() instead */
#if WXWIN_COMPATIBILITY_2_8
- wxDEPRECATED( WXDLLEXPORT wxFloat64 ConvertFromIeeeExtended(const wxInt8 *bytes) );
- wxDEPRECATED( WXDLLEXPORT void ConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes) );
+ wxDEPRECATED( WXDLLIMPEXP_BASE wxFloat64 ConvertFromIeeeExtended(const wxInt8 *bytes) );
+ wxDEPRECATED( WXDLLIMPEXP_BASE void ConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes) );
#endif // WXWIN_COMPATIBILITY_2_8
#ifdef __cplusplus