diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/moneystr.cpp | 16 | ||||
-rw-r--r-- | src/util/strencodings.cpp | 10 | ||||
-rw-r--r-- | src/util/strencodings.h | 4 | ||||
-rw-r--r-- | src/util/string.h | 14 | ||||
-rw-r--r-- | src/util/time.cpp | 12 |
5 files changed, 28 insertions, 28 deletions
diff --git a/src/util/moneystr.cpp b/src/util/moneystr.cpp index 40d8918dfc..544cfb58f9 100644 --- a/src/util/moneystr.cpp +++ b/src/util/moneystr.cpp @@ -31,12 +31,12 @@ std::string FormatMoney(const CAmount& n) } -bool ParseMoney(const std::string& str, CAmount& nRet) +bool ParseMoney(const std::string& money_string, CAmount& nRet) { - if (!ValidAsCString(str)) { + if (!ValidAsCString(money_string)) { return false; } - + const std::string str = TrimString(money_string); if (str.empty()) { return false; } @@ -44,8 +44,6 @@ bool ParseMoney(const std::string& str, CAmount& nRet) std::string strWhole; int64_t nUnits = 0; const char* p = str.c_str(); - while (IsSpace(*p)) - p++; for (; *p; p++) { if (*p == '.') @@ -60,14 +58,14 @@ bool ParseMoney(const std::string& str, CAmount& nRet) break; } if (IsSpace(*p)) - break; + return false; if (!IsDigit(*p)) return false; strWhole.insert(strWhole.end(), *p); } - for (; *p; p++) - if (!IsSpace(*p)) - return false; + if (*p) { + return false; + } if (strWhole.size() > 10) // guard against 63 bit overflow return false; if (nUnits < 0 || nUnits > COIN) diff --git a/src/util/strencodings.cpp b/src/util/strencodings.cpp index eec1a52e95..16917ccb47 100644 --- a/src/util/strencodings.cpp +++ b/src/util/strencodings.cpp @@ -407,16 +407,6 @@ std::string FormatParagraph(const std::string& in, size_t width, size_t indent) return out.str(); } -std::string i64tostr(int64_t n) -{ - return strprintf("%d", n); -} - -std::string itostr(int n) -{ - return strprintf("%d", n); -} - int64_t atoi64(const char* psz) { #ifdef _MSC_VER diff --git a/src/util/strencodings.h b/src/util/strencodings.h index ccc4edac12..11317f0432 100644 --- a/src/util/strencodings.h +++ b/src/util/strencodings.h @@ -54,9 +54,7 @@ std::string DecodeBase32(const std::string& str, bool* pf_invalid = nullptr); std::string EncodeBase32(const unsigned char* pch, size_t len); std::string EncodeBase32(const std::string& str); -void SplitHostPort(std::string in, int &portOut, std::string &hostOut); -std::string i64tostr(int64_t n); -std::string itostr(int n); +void SplitHostPort(std::string in, int& portOut, std::string& hostOut); int64_t atoi64(const char* psz); int64_t atoi64(const std::string& str); int atoi(const std::string& str); diff --git a/src/util/string.h b/src/util/string.h index 3db8fc8b98..694f0a1ca4 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -8,6 +8,8 @@ #include <attributes.h> #include <cstring> +#include <locale> +#include <sstream> #include <string> #include <vector> @@ -52,4 +54,16 @@ NODISCARD inline bool ValidAsCString(const std::string& str) noexcept return str.size() == strlen(str.c_str()); } +/** + * Locale-independent version of std::to_string + */ +template <typename T> +std::string ToString(const T& t) +{ + std::ostringstream oss; + oss.imbue(std::locale::classic()); + oss << t; + return oss.str(); +} + #endif // BITCOIN_UTIL_STRENCODINGS_H diff --git a/src/util/time.cpp b/src/util/time.cpp index 14937b985e..0938ff36a6 100644 --- a/src/util/time.cpp +++ b/src/util/time.cpp @@ -78,10 +78,10 @@ int64_t GetSystemTimeInSeconds() std::string FormatISO8601DateTime(int64_t nTime) { struct tm ts; time_t time_val = nTime; -#ifdef _MSC_VER - if (gmtime_s(&ts, &time_val) != 0) { -#else +#ifdef HAVE_GMTIME_R if (gmtime_r(&time_val, &ts) == nullptr) { +#else + if (gmtime_s(&ts, &time_val) != 0) { #endif return {}; } @@ -91,10 +91,10 @@ std::string FormatISO8601DateTime(int64_t nTime) { std::string FormatISO8601Date(int64_t nTime) { struct tm ts; time_t time_val = nTime; -#ifdef _MSC_VER - if (gmtime_s(&ts, &time_val) != 0) { -#else +#ifdef HAVE_GMTIME_R if (gmtime_r(&time_val, &ts) == nullptr) { +#else + if (gmtime_s(&ts, &time_val) != 0) { #endif return {}; } |