diff options
author | gab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-29 21:31:31 +0000 |
---|---|---|
committer | gab@chromium.org <gab@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-29 21:31:31 +0000 |
commit | 45f982ef3e2267388089826ca1c875f7436f7e82 (patch) | |
tree | 03a7e390ab53d311c4438898fca2843b2421757c /base/command_line.cc | |
parent | 3642e2dc31e87fb1445f586acd8707732042bdf2 (diff) | |
download | chromium_src-45f982ef3e2267388089826ca1c875f7436f7e82.zip chromium_src-45f982ef3e2267388089826ca1c875f7436f7e82.tar.gz chromium_src-45f982ef3e2267388089826ca1c875f7436f7e82.tar.bz2 |
Extract arguments reconstruction logic out of GetCommandLineString() into GetArgumentsString().
BUG=To get arguments we had to GetCommandLineString() and piece out the program: http://code.google.com/searchframe#OAMlx_jo-ck/src/chrome/installer/util/install_util.cc&exact_package=chromium&q=GetCommandLineString&type=cs&l=125
TEST=base_unittests.exe --gtest_filter=CommandLineTest*
Review URL: https://chromiumcodereview.appspot.com/11305010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164740 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/command_line.cc')
-rw-r--r-- | base/command_line.cc | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/base/command_line.cc b/base/command_line.cc index 29467e3..f4553ea 100644 --- a/base/command_line.cc +++ b/base/command_line.cc @@ -228,31 +228,42 @@ CommandLine::StringType CommandLine::GetCommandLineString() const { #if defined(OS_WIN) string = QuoteForCommandLineToArgvW(string); #endif + StringType params(GetArgumentsString()); + if (!params.empty()) { + string.append(StringType(FILE_PATH_LITERAL(" "))); + string.append(params); + } + return string; +} + +CommandLine::StringType CommandLine::GetArgumentsString() const { + StringType params; // Append switches and arguments. bool parse_switches = true; for (size_t i = 1; i < argv_.size(); ++i) { - CommandLine::StringType arg = argv_[i]; - CommandLine::StringType switch_string; - CommandLine::StringType switch_value; + StringType arg = argv_[i]; + StringType switch_string; + StringType switch_value; parse_switches &= arg != kSwitchTerminator; - string.append(StringType(FILE_PATH_LITERAL(" "))); + if (i > 1) + params.append(StringType(FILE_PATH_LITERAL(" "))); if (parse_switches && IsSwitch(arg, &switch_string, &switch_value)) { - string.append(switch_string); + params.append(switch_string); if (!switch_value.empty()) { #if defined(OS_WIN) switch_value = QuoteForCommandLineToArgvW(switch_value); #endif - string.append(kSwitchValueSeparator + switch_value); + params.append(kSwitchValueSeparator + switch_value); } } else { #if defined(OS_WIN) arg = QuoteForCommandLineToArgvW(arg); #endif - string.append(arg); + params.append(arg); } } - return string; + return params; } FilePath CommandLine::GetProgram() const { |