summaryrefslogtreecommitdiff
path: root/src/lib/compose.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/compose.hpp')
-rw-r--r--src/lib/compose.hpp37
1 files changed, 30 insertions, 7 deletions
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
@@ -121,6 +121,30 @@ namespace StringPrivate
}
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)
{
char buffer[64];
@@ -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 <>