X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Futil.cpp;h=79de9db5625303b7f2828ca7cd176d9851fcbc2a;hb=60cf27d9500deb3bc80ffa8ce5dc3e8284a4c658;hp=393d8e89b280b181b00f499c5431ca914bf89a28;hpb=fd3035cd568a2a8d3017845d9eed7fc0daeaa2e7;p=novacoin.git diff --git a/src/util.cpp b/src/util.cpp index 393d8e8..79de9db 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -4,51 +4,24 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "util.h" +#include "interface.h" #include "sync.h" #include "version.h" -#include "interface.h" -#include -#include // for to_lower() -#include // for startswith() and endswith() - -// Work around clang compilation problem in Boost 1.46: -// /usr/include/boost/program_options/detail/config_file.hpp:163:17: error: call to function 'to_internal' that is neither visible in the template definition nor found by argument-dependent lookup -// See also: http://stackoverflow.com/questions/10020179/compilation-fail-in-boost-librairies-program-options -// http://clang.debian.net/status.php?version=3.0&key=CANNOT_FIND_FUNCTION -namespace boost { - namespace program_options { - std::string to_internal(const std::string&); - } -} #include #include #include #include - #include -#include #include #include #include #ifdef WIN32 -#ifdef _WIN32_WINNT -#undef _WIN32_WINNT -#endif -#define _WIN32_WINNT 0x0501 -#ifdef _WIN32_IE -#undef _WIN32_IE -#endif -#define _WIN32_IE 0x0501 -#define WIN32_LEAN_AND_MEAN 1 -#ifndef NOMINMAX -#define NOMINMAX -#endif #include /* for _commit */ #include "shlobj.h" #elif defined(__linux__) -# include +#include #endif #if !defined(WIN32) && !defined(ANDROID) @@ -202,18 +175,6 @@ int GetRandInt(int nMax) return static_cast(GetRand(nMax)); } -uint256 GetRandHash() -{ - uint256 hash; - RAND_bytes((unsigned char*)&hash, sizeof(hash)); - return hash; -} - - - - - - static FILE* fileout = NULL; inline int OutputDebugStringF(const char* pszFormat, ...) @@ -245,9 +206,9 @@ inline int OutputDebugStringF(const char* pszFormat, ...) // Since the order of destruction of static/global objects is undefined, // allocate mutexDebugLog on the heap the first time this routine // is called to avoid crashes during shutdown. - static boost::mutex* mutexDebugLog = NULL; - if (mutexDebugLog == NULL) mutexDebugLog = new boost::mutex(); - boost::mutex::scoped_lock scoped_lock(*mutexDebugLog); + static std::mutex* mutexDebugLog = nullptr; + if (mutexDebugLog == nullptr) mutexDebugLog = new std::mutex(); + std::scoped_lock scoped_lock(*mutexDebugLog); // reopen the log file, if requested if (fReopenDebugLog) { @@ -474,7 +435,7 @@ static const signed char phexdigit[256] = bool IsHex(const string& str) { - BOOST_FOREACH(unsigned char c, str) + for (unsigned char c : str) { if (phexdigit[c] < 0) return false; @@ -538,8 +499,8 @@ void ParseParameters(int argc, const char* const argv[]) str = str.substr(0, is_index); } #ifdef WIN32 - boost::to_lower(str); - if (boost::algorithm::starts_with(str, "/")) + std::transform(str.begin(), str.end(), str.begin(), ::tolower); + if (str.compare(0,1, "/") == 0) str = "-" + str.substr(1); #endif if (str[0] != '-') @@ -550,7 +511,7 @@ void ParseParameters(int argc, const char* const argv[]) } // New 0.6 features: - BOOST_FOREACH(const PAIRTYPE(string,string)& entry, mapArgs) + for (const auto& entry : mapArgs) { string name = entry.first; @@ -975,7 +936,7 @@ std::string EncodeDumpTime(int64_t nTime) { std::string EncodeDumpString(const std::string &str) { std::stringstream ret; - BOOST_FOREACH(unsigned char c, str) { + for (unsigned char c : str) { if (c <= 32 || c >= 128 || c == '%') { ret << '%' << HexStr(&c, &c + 1); } else { @@ -1381,7 +1342,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nTime) bool fMatch = false; // If nobody has a time different than ours but within 5 minutes of ours, give a warning - BOOST_FOREACH(int64_t nOffset, vSorted) + for (int64_t nOffset : vSorted) if (nOffset != 0 && abs64(nOffset) < 5 * 60) fMatch = true; @@ -1396,7 +1357,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nTime) } } if (fDebug) { - BOOST_FOREACH(int64_t n, vSorted) + for (int64_t n : vSorted) printf("%+" PRId64 " ", n); printf("| "); } @@ -1425,7 +1386,16 @@ std::string FormatSubVersion(const std::string& name, int nClientVersion, const ss << "/"; ss << name << ":" << FormatVersion(nClientVersion); if (!comments.empty()) - ss << "(" << boost::algorithm::join(comments, "; ") << ")"; + { + ss << "("; + for (const auto& st : comments) + { + ss << st; + if (st == comments.back()) break; + ss << "; "; + } + ss << ")"; + } ss << "/"; return ss.str(); }