diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-06-12 16:08:25 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-06-12 16:08:25 +0100 |
| commit | 4fa8274be83aeaa0c9503a778b2b17f673570723 (patch) | |
| tree | 658eb50fb5aa73614dfeb455d2cf39e43a699fd5 /src | |
| parent | b7c7e14463d91608b080a5a63fcfb4d330ced863 (diff) | |
Add another type to raw/locale convert.
Diffstat (limited to 'src')
| -rw-r--r-- | src/locale_convert.cc | 13 | ||||
| -rw-r--r-- | src/locale_convert.h | 4 | ||||
| -rw-r--r-- | src/raw_convert.cc | 7 | ||||
| -rw-r--r-- | src/raw_convert.h | 4 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/locale_convert.cc b/src/locale_convert.cc index 5164f89f..46d5507f 100644 --- a/src/locale_convert.cc +++ b/src/locale_convert.cc @@ -243,6 +243,19 @@ dcp::locale_convert (string x, int, bool) } template<> +unsigned long +dcp::locale_convert (string x, int, bool) +{ + unsigned long y = 0; +#ifdef LIBDCP_WINDOWS + __mingw_sscanf (x.c_str(), "%lud", &y); +#else + sscanf (x.c_str(), "%lud", &y); +#endif + return y; +} + +template<> long long dcp::locale_convert (string x, int, bool) { diff --git a/src/locale_convert.h b/src/locale_convert.h index 7d09c8e7..d8d84711 100644 --- a/src/locale_convert.h +++ b/src/locale_convert.h @@ -136,6 +136,10 @@ long locale_convert (std::string x, int, bool); template <> +unsigned long +locale_convert (std::string x, int, bool); + +template <> long long locale_convert (std::string x, int, bool); diff --git a/src/raw_convert.cc b/src/raw_convert.cc index f51a10f6..7b4e6c6d 100644 --- a/src/raw_convert.cc +++ b/src/raw_convert.cc @@ -197,6 +197,13 @@ dcp::raw_convert (string v, int precision, bool fixed) } template <> +unsigned long +dcp::raw_convert (string v, int precision, bool fixed) +{ + return locale_convert<unsigned long> (make_local (v), precision, fixed); +} + +template <> long long dcp::raw_convert (string v, int precision, bool fixed) { diff --git a/src/raw_convert.h b/src/raw_convert.h index 4945c7f8..c7b04823 100644 --- a/src/raw_convert.h +++ b/src/raw_convert.h @@ -129,6 +129,10 @@ long raw_convert (std::string v, int, bool); template <> +unsigned long +raw_convert (std::string v, int, bool); + +template <> long long raw_convert (std::string v, int, bool); |
