X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Futil.cpp;h=d8804c729125aa5d2a5b120df58b5c05bfe0c82a;hb=28a498d5a6794bce952fe8a1938720b73946c1d8;hp=19005fc7618811c6f03e8aad929d539654f5bc2c;hpb=ed6d0b5f852dc5f1c9407abecb5a9c6a7e42b4b2;p=novacoin.git diff --git a/src/util.cpp b/src/util.cpp index 19005fc..d8804c7 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -6,6 +6,7 @@ #include "util.h" #include "strlcpy.h" #include "version.h" +#include "ui_interface.h" #include // Work around clang compilation problem in Boost 1.46: @@ -173,6 +174,12 @@ int GetRandInt(int nMax) return GetRand(nMax); } +uint256 GetRandHash() +{ + uint256 hash; + RAND_bytes((unsigned char*)&hash, sizeof(hash)); + return hash; +} @@ -251,7 +258,7 @@ inline int OutputDebugStringF(const char* pszFormat, ...) *pend = '\0'; char* p1 = pszBuffer; char* p2; - while (p2 = strchr(p1, '\n')) + while ((p2 = strchr(p1, '\n'))) { p2++; char c = *p2; @@ -282,7 +289,7 @@ int my_snprintf(char* buffer, size_t limit, const char* format, ...) va_start(arg_ptr, format); int ret = _vsnprintf(buffer, limit, format, arg_ptr); va_end(arg_ptr); - if (ret < 0 || ret >= limit) + if (ret < 0 || ret >= (int)limit) { ret = limit - 1; buffer[limit-1] = 0; @@ -424,14 +431,14 @@ bool ParseMoney(const char* pszIn, int64& nRet) } -static char phexdigit[256] = +static signed char phexdigit[256] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1, -1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, - -1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1 + -1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, @@ -460,12 +467,12 @@ vector ParseHex(const char* psz) { while (isspace(*psz)) psz++; - char c = phexdigit[(unsigned char)*psz++]; - if (c == (char)-1) + signed char c = phexdigit[(unsigned char)*psz++]; + if (c == (signed char)-1) break; unsigned char n = (c << 4); c = phexdigit[(unsigned char)*psz++]; - if (c == (char)-1) + if (c == (signed char)-1) break; n |= c; vch.push_back(n); @@ -869,7 +876,11 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific) LOCK(csPathCached); if (mapArgs.count("-datadir")) { - path = mapArgs["-datadir"]; + path = fs::system_complete(mapArgs["-datadir"]); + if (!fs::is_directory(path)) { + path = ""; + return path; + } } else { path = GetDefaultDataDir(); } @@ -891,7 +902,7 @@ boost::filesystem::path GetConfigFile() return pathConfigFile; } -bool ReadConfigFile(map& mapSettingsRet, +void ReadConfigFile(map& mapSettingsRet, map >& mapMultiSettingsRet) { namespace fs = boost::filesystem; @@ -899,7 +910,7 @@ bool ReadConfigFile(map& mapSettingsRet, fs::ifstream streamConfig(GetConfigFile()); if (!streamConfig.good()) - return true; // No bitcoin.conf file is OK + return; // No bitcoin.conf file is OK set setOptions; setOptions.insert("*"); @@ -916,7 +927,6 @@ bool ReadConfigFile(map& mapSettingsRet, } mapMultiSettingsRet[strKey].push_back(it->value[0]); } - return true; } boost::filesystem::path GetPidFile()