X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Futil.cpp;h=89509b1805a92612f7e8223f95f24c1d9655a149;hb=0561bbd1c69263dceb24ffacf850788e6e961a13;hp=d8804c729125aa5d2a5b120df58b5c05bfe0c82a;hpb=28a498d5a6794bce952fe8a1938720b73946c1d8;p=novacoin.git diff --git a/src/util.cpp b/src/util.cpp index d8804c7..89509b1 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,7 +1,8 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers +// Copyright (c) 2011-2012 The PPCoin developers // Distributed under the MIT/X11 software license, see the accompanying -// file license.txt or http://www.opensource.org/licenses/mit-license.php. +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "util.h" #include "strlcpy.h" @@ -26,6 +27,7 @@ namespace boost { #include #include #include +#include #include #include @@ -52,6 +54,10 @@ namespace boost { #include "shlwapi.h" #endif +#ifndef WIN32 +#include +#endif + using namespace std; using namespace boost; @@ -188,7 +194,7 @@ uint256 GetRandHash() - +static FILE* fileout = NULL; inline int OutputDebugStringF(const char* pszFormat, ...) { @@ -204,8 +210,6 @@ inline int OutputDebugStringF(const char* pszFormat, ...) else { // print to debug.log - static FILE* fileout = NULL; - if (!fileout) { boost::filesystem::path pathDebug = GetDataDir() / "debug.log"; @@ -215,6 +219,8 @@ inline int OutputDebugStringF(const char* pszFormat, ...) if (fileout) { static bool fStartedNewLine = true; + static boost::mutex mutexDebugLog; + boost::mutex::scoped_lock scoped_lock(mutexDebugLog); // Debug print useful for profiling if (fLogTimestamps && fStartedNewLine) @@ -368,7 +374,7 @@ string FormatMoney(int64 n, bool fPlus) int64 n_abs = (n > 0 ? n : -n); int64 quotient = n_abs/COIN; int64 remainder = n_abs%COIN; - string str = strprintf("%"PRI64d".%08"PRI64d, quotient, remainder); + string str = strprintf("%"PRI64d".%06"PRI64d, quotient, remainder); // Right-trim excess 0's before the decimal point: int nTrim = 0; @@ -798,6 +804,19 @@ void PrintException(std::exception* pex, const char* pszThread) throw; } +void LogStackTrace() { + printf("\n\n******* exception encountered *******\n"); + if (fileout) + { +#ifndef WIN32 + void* pszBuffer[32]; + size_t size; + size = backtrace(pszBuffer, 32); + backtrace_symbols_fd(pszBuffer, size, fileno(fileout)); +#endif + } +} + void PrintExceptionContinue(std::exception* pex, const char* pszThread) { char pszMessage[10000]; @@ -833,12 +852,12 @@ boost::filesystem::path GetDefaultDataDir() { namespace fs = boost::filesystem; - // Windows: C:\Documents and Settings\username\Application Data\Bitcoin - // Mac: ~/Library/Application Support/Bitcoin - // Unix: ~/.bitcoin + // Windows: C:\Documents and Settings\username\Application Data\PPCoin + // Mac: ~/Library/Application Support/PPCoin + // Unix: ~/.ppcoin #ifdef WIN32 // Windows - return MyGetSpecialFolderPath(CSIDL_APPDATA, true) / "Bitcoin"; + return MyGetSpecialFolderPath(CSIDL_APPDATA, true) / "PPCoin"; #else fs::path pathRet; char* pszHome = getenv("HOME"); @@ -849,11 +868,11 @@ boost::filesystem::path GetDefaultDataDir() #ifdef MAC_OSX // Mac pathRet /= "Library/Application Support"; - filesystem::create_directory(pathRet); - return pathRet / "Bitcoin"; + fs::create_directory(pathRet); + return pathRet / "PPCoin"; #else // Unix - return pathRet / ".bitcoin"; + return pathRet / ".ppcoin"; #endif #endif } @@ -897,7 +916,7 @@ boost::filesystem::path GetConfigFile() { namespace fs = boost::filesystem; - fs::path pathConfigFile(GetArg("-conf", "bitcoin.conf")); + fs::path pathConfigFile(GetArg("-conf", "ppcoin.conf")); if (!pathConfigFile.is_complete()) pathConfigFile = GetDataDir(false) / pathConfigFile; return pathConfigFile; } @@ -933,7 +952,7 @@ boost::filesystem::path GetPidFile() { namespace fs = boost::filesystem; - fs::path pathPidFile(GetArg("-pid", "bitcoind.pid")); + fs::path pathPidFile(GetArg("-pid", "ppcoind.pid")); if (!pathPidFile.is_complete()) pathPidFile = GetDataDir() / pathPidFile; return pathPidFile; } @@ -1200,6 +1219,7 @@ bool GetStartOnSystemStartup() if (line.find("Hidden") != string::npos && line.find("true") != string::npos) return false; +>>>>>>> bitcoin } optionFile.close();