From 810f1f600d5366fc3d3f95189ce2fe7699532e25 Mon Sep 17 00:00:00 2001
From: Renaud Guillard <dev@nore.fr>
Date: Mon, 5 Jun 2017 13:31:58 +0200
Subject: [PATCH] use _snprintf if MSVC

---
 src/pugixml.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 99739996..37a62fce 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -4632,7 +4632,11 @@ PUGI__NS_BEGIN
 	PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, float value)
 	{
 		char buf[128];
+#if defined(PUGI__MSVC_CRT_VERSION)
+		_snprintf(buf, 128, "%.9g", value);
+#else
 		snprintf(buf, 128, "%.9g", value);
+#endif
 		buf[127] = '\0';
 
 		return set_value_ascii(dest, header, header_mask, buf);
@@ -4642,7 +4646,11 @@ PUGI__NS_BEGIN
 	PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, double value)
 	{
 		char buf[128];
+#if defined(PUGI__MSVC_CRT_VERSION)
+		_snprintf(buf, 128, "%.17g", value);
+#else
 		snprintf(buf, 128, "%.17g", value);
+#endif
 		buf[127] = '\0';
 
 		return set_value_ascii(dest, header, header_mask, buf);
@@ -7999,7 +8007,11 @@ PUGI__NS_BEGIN
 	PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent)
 	{
 		// get a scientific notation value with IEEE DBL_DIG decimals
+#if defined(PUGI__MSVC_CRT_VERSION)
+		_snprintf(buffer, buffer_size, "%.*e", DBL_DIG, value);
+#else
 		snprintf(buffer, buffer_size, "%.*e", DBL_DIG, value);
+#endif
 		buffer[buffer_size - 1] = '\0';
 
 		// get the exponent (possibly negative)
-- 
GitLab