From e7cd5e4ee467386ff579a76c5f6a6fee03a78fc4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 13 Aug 2016 00:38:33 +0100 Subject: Windows build fixes. --- src/lib/compose.hpp | 37 ++++++++++++++++++++++++++++++------- src/lib/environment_info.cc | 4 ++-- 2 files changed, 32 insertions(+), 9 deletions(-) (limited to 'src/lib') diff --git a/src/lib/compose.hpp b/src/lib/compose.hpp index 8ccd12b50..477000e5d 100644 --- a/src/lib/compose.hpp +++ b/src/lib/compose.hpp @@ -120,6 +120,30 @@ namespace StringPrivate s += to_string (obj); } + template <> + inline void write(std::string& s, const int16_t& obj) + { + char buffer[64]; +#ifdef DCPOMATIC_WINDOWS + __mingw_snprintf(buffer, 64, "%" PRId16, obj); +#else + snprintf(buffer, 64, "%" PRId16, obj); +#endif + s += buffer; + } + + template <> + inline void write(std::string& s, const uint16_t& obj) + { + char buffer[64]; +#ifdef DCPOMATIC_WINDOWS + __mingw_snprintf(buffer, 64, "%" PRIu16, obj); +#else + snprintf(buffer, 64, "%" PRIu16, obj); +#endif + s += buffer; + } + template <> inline void write(std::string& s, const int32_t& obj) { @@ -203,17 +227,16 @@ namespace StringPrivate } template <> - inline void write(std::string& s, wchar_t const & obj) + inline void write(std::string& s, const std::string& obj) { - std::wstring ws (&obj); - std::string w (ws.begin(), ws.end()); - s += w; + s += obj; } - template <> - inline void write(std::string& s, const std::string& obj) + inline void write(std::string& s, wchar_t const * const & obj) { - s += obj; + std::wstring ws (obj); + std::string w (ws.begin(), ws.end()); + s += w; } template <> diff --git a/src/lib/environment_info.cc b/src/lib/environment_info.cc index b5093e4d6..4cdadafb6 100644 --- a/src/lib/environment_info.cc +++ b/src/lib/environment_info.cc @@ -113,8 +113,8 @@ environment_info () GetVersionEx (&os_info); info.push_back ( String::compose ( - "Windows version %1.%2.%3 SP %4", - os_info.dwMajorVersion, os_info.dwMinorVersion, os_info.dwBuildNumber, os_info.szCSDVersion + "Windows version %1.%2.%3", + (int) os_info.dwMajorVersion, (int) os_info.dwMinorVersion, (int) os_info.dwBuildNumber ) ); #endif -- cgit v1.2.3