#include <inttypes.h>
using std::string;
+using std::wstring;
template<>
string
template<>
string
-dcp::locale_convert (int64_t x, int, bool)
+dcp::locale_convert (unsigned int x, int, bool)
{
char buffer[64];
- snprintf (buffer, sizeof(buffer), "%" PRId64, x);
+ snprintf (buffer, sizeof(buffer), "%u", x);
return buffer;
}
template<>
string
-dcp::locale_convert (uint64_t x, int, bool)
+dcp::locale_convert (long int x, int, bool)
{
char buffer[64];
- snprintf (buffer, sizeof(buffer), "%" PRIu64, x);
+#ifdef LIBDCP_WINDOWS
+ __mingw_snprintf (buffer, sizeof(buffer), "%ld", x);
+#else
+ snprintf (buffer, sizeof(buffer), "%ld", x);
+#endif
+ return buffer;
+}
+
+template<>
+string
+dcp::locale_convert (unsigned long int x, int, bool)
+{
+ char buffer[64];
+ snprintf (buffer, sizeof(buffer), "%lu", x);
+ return buffer;
+}
+
+template<>
+string
+dcp::locale_convert (long long int x, int, bool)
+{
+ char buffer[64];
+#ifdef LIBDCP_WINDOWS
+ __mingw_snprintf (buffer, sizeof(buffer), "%lld", x);
+#else
+ snprintf (buffer, sizeof(buffer), "%lld", x);
+#endif
+ return buffer;
+}
+
+template<>
+string
+dcp::locale_convert (unsigned long long int x, int, bool)
+{
+ char buffer[64];
+#ifdef LIBDCP_WINDOWS
+ __mingw_snprintf (buffer, sizeof(buffer), "%llu", x);
+#else
+ snprintf (buffer, sizeof(buffer), "%llu", x);
+#endif
return buffer;
}
return x;
}
+template<>
+string
+dcp::locale_convert (wchar_t const * x, int, bool)
+{
+ wstring s (x);
+ return string (s.begin(), s.end());
+}
+
+template<>
+string
+dcp::locale_convert (char x, int, bool)
+{
+ string s;
+ s += x;
+ return s;
+}
+
+template<>
+string
+dcp::locale_convert (boost::filesystem::path x, int, bool)
+{
+ return x.string();
+}
+
template<>
int
dcp::locale_convert (string x, int, bool)
}
template<>
-int64_t
+long
+dcp::locale_convert (string x, int, bool)
+{
+ long int y = 0;
+ sscanf (x.c_str(), "%ld", &y);
+ return y;
+}
+
+template<>
+long long
dcp::locale_convert (string x, int, bool)
{
- int64_t y = 0;
- sscanf (x.c_str(), "%" PRId64, &y);
+ long long y = 0;
+#ifdef LIBDCP_WINDOWS
+ __mingw_sscanf (x.c_str(), "%lld", &y);
+#else
+ sscanf (x.c_str(), "%lld", &y);
+#endif
return y;
}