// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2011 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.
-
#include "headers.h"
-
+#include "strlcpy.h"
+#include <boost/program_options/detail/config_file.hpp>
+#include <boost/program_options/parsers.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/filesystem/fstream.hpp>
+#include <boost/interprocess/sync/interprocess_mutex.hpp>
+#include <boost/interprocess/sync/interprocess_recursive_mutex.hpp>
+#include <boost/foreach.hpp>
+
+using namespace std;
+using namespace boost;
map<string, string> mapArgs;
map<string, vector<string> > mapMultiArgs;
if (ret >= 0 && ret < limit)
break;
if (p != buffer)
- delete p;
+ delete[] p;
limit *= 2;
p = new char[limit];
if (p == NULL)
}
string str(p, p+ret);
if (p != buffer)
- delete p;
+ delete[] p;
return str;
}
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".%04"PRI64d, quotient, remainder);
// Right-trim excess 0's before the decimal point:
int nTrim = 0;
if (nTrim)
str.erase(str.size()-nTrim, nTrim);
- // Insert thousands-separators:
- size_t point = str.find(".");
- for (int i = (str.size()-point)+3; i < str.size(); i += 4)
- if (isdigit(str[str.size() - i - 1]))
- str.insert(str.size() - i, 1, ',');
if (n < 0)
str.insert((unsigned int)0, 1, '-');
else if (fPlus && n > 0)
p++;
for (; *p; p++)
{
- if (*p == ',' && p > pszIn && isdigit(p[-1]) && isdigit(p[1]) && isdigit(p[2]) && isdigit(p[3]) && !isdigit(p[4]))
- continue;
if (*p == '.')
{
p++;
string GetDefaultDataDir()
{
- // 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 __WXMSW__
// Windows
- return MyGetSpecialFolderPath(CSIDL_APPDATA, true) + "\\Bitcoin";
+ return MyGetSpecialFolderPath(CSIDL_APPDATA, true) + "\\PPCoin";
#else
char* pszHome = getenv("HOME");
if (pszHome == NULL || strlen(pszHome) == 0)
// Mac
strHome += "Library/Application Support/";
filesystem::create_directory(strHome.c_str());
- return strHome + "Bitcoin";
+ return strHome + "PPCoin";
#else
// Unix
- return strHome + ".bitcoin";
+ return strHome + ".ppcoin";
#endif
#endif
}
if (!pfMkdir[nVariation])
{
pfMkdir[nVariation] = true;
- filesystem::create_directory(pszDir);
+ boost::filesystem::create_directory(pszDir);
}
}
string GetConfigFile()
{
namespace fs = boost::filesystem;
- fs::path pathConfig(GetArg("-conf", "bitcoin.conf"));
+ fs::path pathConfig(GetArg("-conf", "ppcoin.conf"));
if (!pathConfig.is_complete())
pathConfig = fs::path(GetDataDir()) / pathConfig;
return pathConfig.string();
string GetPidFile()
{
namespace fs = boost::filesystem;
- fs::path pathConfig(GetArg("-pid", "bitcoind.pid"));
+ fs::path pathConfig(GetArg("-pid", "ppcoind.pid"));
if (!pathConfig.is_complete())
pathConfig = fs::path(GetDataDir()) / pathConfig;
return pathConfig.string();
{
// If nobody has a time different than ours but within 5 minutes of ours, give a warning
bool fMatch = false;
- foreach(int64 nOffset, vTimeOffsets)
+ BOOST_FOREACH(int64 nOffset, vTimeOffsets)
if (nOffset != 0 && abs64(nOffset) < 5 * 60)
fMatch = true;
}
}
}
- foreach(int64 n, vTimeOffsets)
+ BOOST_FOREACH(int64 n, vTimeOffsets)
printf("%+"PRI64d" ", n);
printf("| nTimeOffset = %+"PRI64d" (%+"PRI64d" minutes)\n", nTimeOffset, nTimeOffset/60);
}
string FormatFullVersion()
{
string s = FormatVersion(VERSION) + pszSubVer;
- if (VERSION_IS_BETA)
- s += _("-beta");
+ if (VERSION_IS_BETA) {
+ s += "-";
+ s += _("beta");
+ }
return s;
}