xref: /trunk/main/redland/rasqal/rasqal-0.9.33.patch.ucrt (revision 9d37da743abb7db0a497688391f6e55a19f27c44)
1--- misc/rasqal-0.9.33/src/win32_rasqal_config.h
2+++ misc/build/rasqal-0.9.33/src/win32_rasqal_config.h
3@@ -45,7 +45,12 @@
4 /* MS names for these functions */
5 // next line breaks build on wntmsci12
6 //#define vsnprintf _vsnprintf
7+#if !defined(_MSC_VER) || (_MSC_VER < 1900)
8+/*  The UCRT -- VS2015 and every toolset since -- declares a real, conforming
9+    snprintf.  Defining the name away here rewrites that declaration as it is
10+    being parsed, so the shim has to stop at the runtime that gained one. */
11 #define snprintf _snprintf
12+#endif
13 #define access _access
14 #define stricmp _stricmp
15 #define strnicmp _strnicmp
16@@ -69,9 +74,16 @@
17 #undef HAVE_GETTIMEOFDAY
18
19 #include <float.h>
20+#ifndef isnan
21 #define isnan(n) _isnan(n)
22-/* no round function available */
23+#endif
24+#if !defined(_MSC_VER) || (_MSC_VER < 1900)
25+/*  no round function available.  On the UCRT there is one, and it is
26+    DECLARED in corecrt_math.h -- so a function-like macro of the same
27+    name mangles that declaration and the header stops parsing
28+    (C2059/C2143), some distance from anything that mentions round. */
29 #define round(x) floor(x+0.5)
30+#endif
31
32 /* These are SPARQL token definitions */
33 #ifdef OPTIONAL
34