// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin 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 "headers.h"
#include "db.h"
#include "bitcoinrpc.h"
#endif
}
+void StartShutdown()
+{
+#ifdef QT_GUI
+ // ensure we leave the Qt main loop for a clean GUI exit (Shutdown() is called in bitcoin.cpp afterwards)
+ QueueShutdown();
+#else
+ // Without UI, Shutdown() can simply be started in a new thread
+ CreateThread(Shutdown, NULL);
+#endif
+}
+
void Shutdown(void* parg)
{
static CCriticalSection cs_Shutdown;
Sleep(50);
printf("Bitcoin exiting\n\n");
fExit = true;
+#ifndef QT_GUI
+ // ensure non UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp
exit(0);
+#endif
}
else
{
#endif
#endif
" -paytxfee=<amt> \t " + _("Fee per kB to add to transactions you send\n") +
-#ifdef GUI
+#ifdef QT_GUI
" -server \t\t " + _("Accept command line and JSON-RPC commands\n") +
#endif
-#if !defined(WIN32) && !defined(GUI)
+#if !defined(WIN32) && !defined(QT_GUI)
" -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") +
#endif
" -testnet \t\t " + _("Use the test network\n") +
// Remove tabs
strUsage.erase(std::remove(strUsage.begin(), strUsage.end(), '\t'), strUsage.end());
+#if defined(QT_GUI) && defined(WIN32)
+ // On windows, show a message box, as there is no stderr
+ wxMessageBox(strUsage, "Usage");
+#else
fprintf(stderr, "%s", strUsage.c_str());
+#endif
return false;
}
fTestNet = GetBoolArg("-testnet");
fDebug = GetBoolArg("-debug");
-#if !defined(WIN32) && !defined(GUI)
+#if !defined(WIN32) && !defined(QT_GUI)
fDaemon = GetBoolArg("-daemon");
#else
fDaemon = false;
}
#endif
-#if !defined(WIN32) && !defined(GUI)
+#if !defined(WIN32) && !defined(QT_GUI)
if (fDaemon)
{
// Daemonize
else if (nLoadWalletRet == DB_NEED_REWRITE)
{
strErrors += _("Wallet needed to be rewritten: restart Bitcoin to complete \n");
+ printf("%s", strErrors.c_str());
wxMessageBox(strErrors, "Bitcoin", wxOK | wxICON_ERROR);
return false;
}
else
strErrors += _("Error loading wallet.dat \n");
}
+ printf("%s", strErrors.c_str());
printf(" wallet %15"PRI64d"ms\n", GetTimeMillis() - nStart);
RegisterWallet(pwalletMain);