libFLAC: Tweak MSVC support
authorErik de Castro Lopo <erikd@mega-nerd.com>
Sun, 3 Jan 2016 23:28:49 +0000 (10:28 +1100)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Sun, 3 Jan 2016 23:31:18 +0000 (10:31 +1100)
Visual Studio 2013 and newer has better support for C99.

Patch-from: lvqcl <lvqcl.mail@gmail.com>

include/share/compat.h
src/libFLAC/lpc.c

index 671b110..faf9688 100644 (file)
 #endif
 
 #if defined _MSC_VER
-#  if _MSC_VER >= 1600
+#  if _MSC_VER >= 1800
+#    include <inttypes.h>
+#  elif _MSC_VER >= 1600
 /* Visual Studio 2010 has decent C99 support */
 #    include <stdint.h>
 #    define PRIu64 "llu"
index 882862c..e5900ef 100644 (file)
 
 #ifndef FLAC__INTEGER_ONLY_LIBRARY
 
-#if !defined(HAVE_LROUND)
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && (_MSC_VER < 1800)
 #include <float.h>
-#define copysign _copysign
-#elif defined(__GNUC__)
-#define copysign __builtin_copysign
-#endif
 static inline long int lround(double x) {
-       return (long)(x + copysign (0.5, x));
+       return (long)(x + _copysign(0.5, x));
+}
+#elif !defined(HAVE_LROUND) && defined(__GNUC__)
+static inline long int lround(double x) {
+       return (long)(x + __builtin_copysign(0.5, x));
 }
 /* If this fails, we are in the presence of a mid 90's compiler, move along... */
 #endif