Browse Source

Merge pull request #4193

71aaff3 Remove double-dash parameters from mapArgs (Kosta Zertsekel)
0.10
Wladimir J. van der Laan 11 years ago
parent
commit
8047fb04ed
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 20
      src/util.cpp

20
src/util.cpp

@ -460,6 +460,7 @@ void ParseParameters(int argc, const char* const argv[])
{ {
mapArgs.clear(); mapArgs.clear();
mapMultiArgs.clear(); mapMultiArgs.clear();
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
{ {
std::string str(argv[i]); std::string str(argv[i]);
@ -475,9 +476,15 @@ void ParseParameters(int argc, const char* const argv[])
if (boost::algorithm::starts_with(str, "/")) if (boost::algorithm::starts_with(str, "/"))
str = "-" + str.substr(1); str = "-" + str.substr(1);
#endif #endif
if (str[0] != '-') if (str[0] != '-')
break; break;
// Interpret --foo as -foo.
// If both --foo and -foo are set, the last takes effect.
if (str.length() > 1 && str[1] == '-')
str = str.substr(1);
mapArgs[str] = strValue; mapArgs[str] = strValue;
mapMultiArgs[str].push_back(strValue); mapMultiArgs[str].push_back(strValue);
} }
@ -485,19 +492,8 @@ void ParseParameters(int argc, const char* const argv[])
// New 0.6 features: // New 0.6 features:
BOOST_FOREACH(const PAIRTYPE(string,string)& entry, mapArgs) BOOST_FOREACH(const PAIRTYPE(string,string)& entry, mapArgs)
{ {
string name = entry.first;
// interpret --foo as -foo (as long as both are not set)
if (name.find("--") == 0)
{
std::string singleDash(name.begin()+1, name.end());
if (mapArgs.count(singleDash) == 0)
mapArgs[singleDash] = entry.second;
name = singleDash;
}
// interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1) as long as -foo not set // interpret -nofoo as -foo=0 (and -nofoo=0 as -foo=1) as long as -foo not set
InterpretNegativeSetting(name, mapArgs); InterpretNegativeSetting(entry.first, mapArgs);
} }
} }

Loading…
Cancel
Save