diff options
author | Kosta Zertsekel <zertsekel@gmail.com> | 2014-06-04 07:36:45 +0300 |
---|---|---|
committer | Kosta Zertsekel <zertsekel@gmail.com> | 2014-06-04 11:27:15 +0300 |
commit | 71aaff393f06378150612fc618b6c3f84c1d2066 (patch) | |
tree | 3ac352211fe79d0232cfecdabf7e67e03572d1e8 /src | |
parent | a99f9be0ebd4062fd73648d525b2c7961f845580 (diff) |
Remove double-dash parameters from mapArgs
Should be merged after pull request #4281
("Add `-version` option to get just the version #4281"),
because is changed "--help" to "-help".
Checked that grep of 'mapArgs.count("--' returned only
three places that are fixed by pull request #4281.
Diffstat (limited to 'src')
-rw-r--r-- | src/util.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/util.cpp b/src/util.cpp index 205af738d5..752ebb7bf1 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -459,6 +459,7 @@ void ParseParameters(int argc, const char* const argv[]) { mapArgs.clear(); mapMultiArgs.clear(); + for (int i = 1; i < argc; i++) { std::string str(argv[i]); @@ -474,9 +475,15 @@ void ParseParameters(int argc, const char* const argv[]) if (boost::algorithm::starts_with(str, "/")) str = "-" + str.substr(1); #endif + if (str[0] != '-') 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; mapMultiArgs[str].push_back(strValue); } @@ -484,19 +491,8 @@ void ParseParameters(int argc, const char* const argv[]) // New 0.6 features: 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 - InterpretNegativeSetting(name, mapArgs); + InterpretNegativeSetting(entry.first, mapArgs); } } |