Try to fix 32/64-bit int confusion with compose.hpp.
authorCarl Hetherington <cth@carlh.net>
Fri, 12 Aug 2016 13:02:09 +0000 (14:02 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 12 Aug 2016 13:02:09 +0000 (14:02 +0100)
src/lib/compose.hpp

index 85a9e9b0f8eb482a1015f344c886f0c43bcb8270..425aceabf09725e135a867564c79cb3af810e5d2 100644 (file)
@@ -121,42 +121,50 @@ namespace StringPrivate
   }
 
   template <>
-  inline void write(std::string& s, const int64_t& obj)
+  inline void write(std::string& s, const int32_t& obj)
   {
     char buffer[64];
 #ifdef DCPOMATIC_WINDOWS
-    __mingw_snprintf(buffer, 64, "%" PRId64, obj);
+    __mingw_snprintf(buffer, 64, "%" PRId32, obj);
 #else
-    snprintf(buffer, 64, "%" PRId64, obj);
+    snprintf(buffer, 64, "%" PRId32, obj);
 #endif
     s += buffer;
   }
 
   template <>
-  inline void write(std::string& s, const uint64_t& obj)
+  inline void write(std::string& s, const uint32_t& obj)
   {
     char buffer[64];
 #ifdef DCPOMATIC_WINDOWS
-    __mingw_snprintf(buffer, 64, "%" PRIu64, obj);
+    __mingw_snprintf(buffer, 64, "%" PRIu32, obj);
 #else
-    snprintf(buffer, 64, "%" PRIu64, obj);
+    snprintf(buffer, 64, "%" PRIu32, obj);
 #endif
     s += buffer;
   }
 
   template <>
-  inline void write(std::string& s, const int& obj)
+  inline void write(std::string& s, const int64_t& obj)
   {
     char buffer[64];
-    snprintf(buffer, 64, "%d", obj);
+#ifdef DCPOMATIC_WINDOWS
+    __mingw_snprintf(buffer, 64, "%" PRId64, obj);
+#else
+    snprintf(buffer, 64, "%" PRId64, obj);
+#endif
     s += buffer;
   }
 
   template <>
-  inline void write(std::string& s, const unsigned int& obj)
+  inline void write(std::string& s, const uint64_t& obj)
   {
     char buffer[64];
-    snprintf(buffer, 64, "%ud", obj);
+#ifdef DCPOMATIC_WINDOWS
+    __mingw_snprintf(buffer, 64, "%" PRIu64, obj);
+#else
+    snprintf(buffer, 64, "%" PRIu64, obj);
+#endif
     s += buffer;
   }