aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2010-11-28 10:56:51 -0500
committerGavin Andresen <gavinandresen@gmail.com>2010-11-28 10:56:51 -0500
commit6f8ba620c278e8552f502b63a3a7b5844c34505b (patch)
treee72e05c315a3efedcff33993299272e5c38ebc73
parent94073ecf7b1e605628872176e14a25409e4857c2 (diff)
parent84d7c981dc52cc738053f9ec48648ab6fbf9311b (diff)
downloadbitcoin-6f8ba620c278e8552f502b63a3a7b5844c34505b.tar.xz
Merge remote branch 'refs/remotes/svn/trunk' into svn
-rw-r--r--build-unix.txt3
-rw-r--r--db.cpp4
-rw-r--r--rpc.cpp6
-rw-r--r--serialize.h80
-rw-r--r--setup.nsi6
-rw-r--r--ui.cpp3
6 files changed, 95 insertions, 7 deletions
diff --git a/build-unix.txt b/build-unix.txt
index cb8c3ae111..7e0d8fe289 100644
--- a/build-unix.txt
+++ b/build-unix.txt
@@ -21,7 +21,8 @@ or Boost 1.37: sudo apt-get install libboost1.37-dev
If using Boost 1.37, append -mt to the boost libraries in the makefile.
-We're now using wxWidgets 2.9, which uses UTF-8. Don't try 2.8, it won't work.
+We're using wxWidgets 2.9.0, which uses UTF-8. Don't try 2.8, it won't work.
+The build hasn't been updated to work with wxWidgets 2.9.1 yet.
You need to download wxWidgets from http://www.wxwidgets.org/downloads/
and build it yourself. See the build instructions and configure parameters
diff --git a/db.cpp b/db.cpp
index c768778c5f..2833a8be91 100644
--- a/db.cpp
+++ b/db.cpp
@@ -592,7 +592,7 @@ bool CWalletDB::WriteAccount(const string& strAccount, const CAccount& account)
bool CWalletDB::WriteAccountingEntry(const string& strAccount, const CAccountingEntry& acentry)
{
- return Write(make_pair(string("acentry"), make_pair(strAccount, ++nAccountingEntryNumber)), acentry);
+ return Write(make_tuple(string("acentry"), strAccount, ++nAccountingEntryNumber), acentry);
}
int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
@@ -608,7 +608,7 @@ int64 CWalletDB::GetAccountCreditDebit(const string& strAccount)
// Read next record
CDataStream ssKey;
if (fFlags == DB_SET_RANGE)
- ssKey << make_pair(string("acentry"), make_pair(strAccount, uint64(0)));
+ ssKey << make_tuple(string("acentry"), strAccount, uint64(0));
CDataStream ssValue;
int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags);
fFlags = DB_NEXT;
diff --git a/rpc.cpp b/rpc.cpp
index 113de85a9d..a7066ab3e9 100644
--- a/rpc.cpp
+++ b/rpc.cpp
@@ -628,6 +628,8 @@ Value getbalance(const Array& params, bool fHelp)
if (params.size() == 0)
return ((double)GetBalance() / (double)COIN);
+ throw runtime_error("under construction"); //// to be released soon
+
string strAccount = params[0].get_str();
int nMinDepth = 1;
if (params.size() > 1)
@@ -646,6 +648,8 @@ Value movecmd(const Array& params, bool fHelp)
"move <fromaccount> <toaccount> <amount> [minconf=1] [comment]\n"
"Move from one account in your wallet to another.");
+ throw runtime_error("under construction");
+
string strFrom = params[0].get_str();
string strTo = params[1].get_str();
int64 nAmount = AmountFromValue(params[2]);
@@ -707,6 +711,8 @@ Value sendfrom(const Array& params, bool fHelp)
"sendfrom <fromaccount> <tobitcoinaddress> <amount> [minconf=1] [comment] [comment-to]\n"
"<amount> is a real and is rounded to the nearest 0.01");
+ throw runtime_error("under construction");
+
string strAccount = params[0].get_str();
string strAddress = params[1].get_str();
int64 nAmount = AmountFromValue(params[2]);
diff --git a/serialize.h b/serialize.h
index a289769f22..3debdf08e1 100644
--- a/serialize.h
+++ b/serialize.h
@@ -7,6 +7,9 @@
#include <map>
#include <set>
#include <boost/type_traits/is_fundamental.hpp>
+#include <boost/tuple/tuple.hpp>
+#include <boost/tuple/tuple_comparison.hpp>
+#include <boost/tuple/tuple_io.hpp>
#if defined(_MSC_VER) || defined(__BORLANDC__)
typedef __int64 int64;
typedef unsigned __int64 uint64;
@@ -22,7 +25,7 @@ class CDataStream;
class CAutoFile;
static const unsigned int MAX_SIZE = 0x02000000;
-static const int VERSION = 31601;
+static const int VERSION = 31701;
static const char* pszSubVer = "";
@@ -338,6 +341,16 @@ template<typename K, typename T> unsigned int GetSerializeSize(const std::pair<K
template<typename Stream, typename K, typename T> void Serialize(Stream& os, const std::pair<K, T>& item, int nType, int nVersion=VERSION);
template<typename Stream, typename K, typename T> void Unserialize(Stream& is, std::pair<K, T>& item, int nType, int nVersion=VERSION);
+// 3 tuple
+template<typename T0, typename T1, typename T2> unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2>& item, int nType, int nVersion=VERSION);
+template<typename Stream, typename T0, typename T1, typename T2> void Serialize(Stream& os, const boost::tuple<T0, T1, T2>& item, int nType, int nVersion=VERSION);
+template<typename Stream, typename T0, typename T1, typename T2> void Unserialize(Stream& is, boost::tuple<T0, T1, T2>& item, int nType, int nVersion=VERSION);
+
+// 4 tuple
+template<typename T0, typename T1, typename T2, typename T3> unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion=VERSION);
+template<typename Stream, typename T0, typename T1, typename T2, typename T3> void Serialize(Stream& os, const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion=VERSION);
+template<typename Stream, typename T0, typename T1, typename T2, typename T3> void Unserialize(Stream& is, boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion=VERSION);
+
// map
template<typename K, typename T, typename Pred, typename A> unsigned int GetSerializeSize(const std::map<K, T, Pred, A>& m, int nType, int nVersion=VERSION);
template<typename Stream, typename K, typename T, typename Pred, typename A> void Serialize(Stream& os, const std::map<K, T, Pred, A>& m, int nType, int nVersion=VERSION);
@@ -555,6 +568,71 @@ void Unserialize(Stream& is, std::pair<K, T>& item, int nType, int nVersion)
//
+// 3 tuple
+//
+template<typename T0, typename T1, typename T2>
+unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2>& item, int nType, int nVersion)
+{
+ unsigned int nSize = 0;
+ nSize += GetSerializeSize(get<0>(item), nType, nVersion);
+ nSize += GetSerializeSize(get<1>(item), nType, nVersion);
+ nSize += GetSerializeSize(get<2>(item), nType, nVersion);
+ return nSize;
+}
+
+template<typename Stream, typename T0, typename T1, typename T2>
+void Serialize(Stream& os, const boost::tuple<T0, T1, T2>& item, int nType, int nVersion)
+{
+ Serialize(os, get<0>(item), nType, nVersion);
+ Serialize(os, get<1>(item), nType, nVersion);
+ Serialize(os, get<2>(item), nType, nVersion);
+}
+
+template<typename Stream, typename T0, typename T1, typename T2>
+void Unserialize(Stream& is, boost::tuple<T0, T1, T2>& item, int nType, int nVersion)
+{
+ Unserialize(is, get<0>(item), nType, nVersion);
+ Unserialize(is, get<1>(item), nType, nVersion);
+ Unserialize(is, get<2>(item), nType, nVersion);
+}
+
+
+
+//
+// 4 tuple
+//
+template<typename T0, typename T1, typename T2, typename T3>
+unsigned int GetSerializeSize(const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion)
+{
+ unsigned int nSize = 0;
+ nSize += GetSerializeSize(get<0>(item), nType, nVersion);
+ nSize += GetSerializeSize(get<1>(item), nType, nVersion);
+ nSize += GetSerializeSize(get<2>(item), nType, nVersion);
+ nSize += GetSerializeSize(get<3>(item), nType, nVersion);
+ return nSize;
+}
+
+template<typename Stream, typename T0, typename T1, typename T2, typename T3>
+void Serialize(Stream& os, const boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion)
+{
+ Serialize(os, get<0>(item), nType, nVersion);
+ Serialize(os, get<1>(item), nType, nVersion);
+ Serialize(os, get<2>(item), nType, nVersion);
+ Serialize(os, get<3>(item), nType, nVersion);
+}
+
+template<typename Stream, typename T0, typename T1, typename T2, typename T3>
+void Unserialize(Stream& is, boost::tuple<T0, T1, T2, T3>& item, int nType, int nVersion)
+{
+ Unserialize(is, get<0>(item), nType, nVersion);
+ Unserialize(is, get<1>(item), nType, nVersion);
+ Unserialize(is, get<2>(item), nType, nVersion);
+ Unserialize(is, get<3>(item), nType, nVersion);
+}
+
+
+
+//
// map
//
template<typename K, typename T, typename Pred, typename A>
diff --git a/setup.nsi b/setup.nsi
index e999b6e1a8..1cb005490b 100644
--- a/setup.nsi
+++ b/setup.nsi
@@ -7,7 +7,7 @@ RequestExecutionLevel highest
# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
-!define VERSION 0.3.15
+!define VERSION 0.3.17
!define COMPANY "Bitcoin project"
!define URL http://www.bitcoin.org/
@@ -42,12 +42,12 @@ Var StartMenuGroup
!insertmacro MUI_LANGUAGE English
# Installer attributes
-OutFile bitcoin-0.3.15-win32-setup.exe
+OutFile bitcoin-0.3.17-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on
XPStyle on
ShowInstDetails show
-VIProductVersion 0.3.15.0
+VIProductVersion 0.3.17.0
VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
diff --git a/ui.cpp b/ui.cpp
index aafd4a7a8a..321214fe51 100644
--- a/ui.cpp
+++ b/ui.cpp
@@ -1631,6 +1631,9 @@ COptionsDialog::COptionsDialog(wxWindow* parent) : COptionsDialogBase(parent)
//m_listBox->Append(_("Test 2"));
m_listBox->SetSelection(0);
SelectPage(0);
+#ifndef __WXMSW__
+ SetSize(1.0 * GetSize().GetWidth(), 1.2 * GetSize().GetHeight());
+#endif
#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
m_checkBoxStartOnSystemStartup->SetLabel(_("&Start Bitcoin on window system startup"));
if (!mapArgs.count("-minimizetotray"))