|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|