aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2012-02-17 13:50:40 -0500
committerGavin Andresen <gavinandresen@gmail.com>2012-02-17 13:50:40 -0500
commitd3a4b85670e0cf1ebee7e9ed2205ee2083ec30e2 (patch)
treebf5d1ac96b502e45eff5d7b34692d9fdc300129c
parent0a6b081ccaafb57f98098437ee52f7a14b924062 (diff)
parentd64e124cf4212a9e5b4607c4f752a0c2921bc308 (diff)
downloadbitcoin-d3a4b85670e0cf1ebee7e9ed2205ee2083ec30e2.tar.xz
Merge branch 'nolisten_bitcoin_conf_2' of https://github.com/dooglus/bitcoin
-rw-r--r--src/util.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/util.cpp b/src/util.cpp
index 12ac076f0d..f1af91de27 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -454,6 +454,21 @@ vector<unsigned char> ParseHex(const string& str)
return ParseHex(str.c_str());
}
+static void InterpretNegativeSetting(string name, map<string, string>& mapSettingsRet)
+{
+ // interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1) as long as -foo not set
+ if (name.find("-no") == 0)
+ {
+ std::string positive("-");
+ positive.append(name.begin()+3, name.end());
+ if (mapSettingsRet.count(positive) == 0)
+ {
+ bool value = !GetBoolArg(name);
+ mapSettingsRet[positive] = (value ? "1" : "0");
+ }
+ }
+}
+
void ParseParameters(int argc, const char*const argv[])
{
mapArgs.clear();
@@ -494,17 +509,8 @@ void ParseParameters(int argc, const char*const argv[])
name = singleDash;
}
- // interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1, as long as -foo not set)
- if (name.find("-no") == 0)
- {
- std::string positive("-");
- positive.append(name.begin()+3, name.end());
- if (mapArgs.count(positive) == 0)
- {
- bool value = !GetBoolArg(name);
- mapArgs[positive] = (value ? "1" : "0");
- }
- }
+ // interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1) as long as -foo not set
+ InterpretNegativeSetting(name, mapArgs);
}
}
@@ -920,7 +926,11 @@ void ReadConfigFile(map<string, string>& mapSettingsRet,
// Don't overwrite existing settings so command line settings override bitcoin.conf
string strKey = string("-") + it->string_key;
if (mapSettingsRet.count(strKey) == 0)
+ {
mapSettingsRet[strKey] = it->value[0];
+ // interpret nofoo=1 as foo=0 (and nofoo=0 as foo=1) as long as foo not set)
+ InterpretNegativeSetting(strKey, mapSettingsRet);
+ }
mapMultiSettingsRet[strKey].push_back(it->value[0]);
}
}