Merge pull request #88 from weltling/master

Several MSVC fixes
diff --git a/json_inttypes.h b/json_inttypes.h
index 2f84ade..bfe1060 100644
--- a/json_inttypes.h
+++ b/json_inttypes.h
@@ -4,7 +4,7 @@
 
 #include "json_config.h"
 
-#if defined(_MSC_VER) && _MSC_VER < 1700
+#if defined(_MSC_VER) && _MSC_VER =< 1700
 
 /* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */
 typedef __int32 int32_t;
diff --git a/json_object.c b/json_object.c
index f2b5ce0..facb824 100644
--- a/json_object.c
+++ b/json_object.c
@@ -37,6 +37,13 @@
   char* strndup(const char* str, size_t n);
 #endif /* !HAVE_STRNDUP */
 
+#if !defined(HAVE_SNPRINTF) && defined(_MSC_VER)
+  /* MSC has the version as _snprintf */
+# define snprintf _snprintf
+#elif !defined(HAVE_SNPRINTF)
+# error You do not have snprintf on your system.
+#endif /* HAVE_SNPRINTF */
+
 // Don't define this.  It's not thread-safe.
 /* #define REFCOUNT_DEBUG 1 */
 
diff --git a/json_util.c b/json_util.c
index 111fa01..d62d54e 100644
--- a/json_util.c
+++ b/json_util.c
@@ -159,14 +159,15 @@
 static void sscanf_is_broken_test()
 {
 	int64_t num64;
+	int ret_errno, is_int64_min, ret_errno2, is_int64_max;
 
 	(void)sscanf(" -01234567890123456789012345", "%" SCNd64, &num64);
-	int ret_errno = errno;
-	int is_int64_min = (num64 == INT64_MIN);
+	ret_errno = errno;
+	is_int64_min = (num64 == INT64_MIN);
 
 	(void)sscanf(" 01234567890123456789012345", "%" SCNd64, &num64);
-	int ret_errno2 = errno;
-	int is_int64_max = (num64 == INT64_MAX);
+	ret_errno2 = errno;
+	is_int64_max = (num64 == INT64_MAX);
 
 	if (ret_errno != ERANGE || !is_int64_min ||
 	    ret_errno2 != ERANGE || !is_int64_max)