Index: base/command_line.cc |
diff --git a/base/command_line.cc b/base/command_line.cc |
index b11902bc11f055de77429c26b4a2bc0988bcaf5c..19f508a6e3cfe7d271c934d6c41d6887dd70ce0b 100644 |
--- a/base/command_line.cc |
+++ b/base/command_line.cc |
@@ -291,10 +291,10 @@ std::string CommandLine::GetSwitchValueASCII( |
FilePath CommandLine::GetSwitchValuePath( |
const std::string& switch_string) const { |
- return FilePath::FromWStringHack(GetSwitchValue(switch_string)); |
+ return FilePath(GetSwitchValueNative(switch_string)); |
} |
-std::wstring CommandLine::GetSwitchValue( |
+CommandLine::StringType CommandLine::GetSwitchValueNative( |
const std::string& switch_string) const { |
std::string lowercased_switch(switch_string); |
#if defined(OS_WIN) |
@@ -305,18 +305,26 @@ std::wstring CommandLine::GetSwitchValue( |
switches_.find(lowercased_switch); |
if (result == switches_.end()) { |
- return L""; |
+ return CommandLine::StringType(); |
} else { |
-#if defined(OS_WIN) |
return result->second; |
+ } |
+} |
+ |
+std::wstring CommandLine::GetSwitchValue( |
+ const std::string& switch_string) const { |
+ // TODO(evanm): deprecate. |
+ CommandLine::StringType value = GetSwitchValueNative(switch_string); |
+#if defined(OS_WIN) |
+ return value; |
#else |
- return base::SysNativeMBToWide(result->second); |
+ return base::SysNativeMBToWide(value); |
#endif |
- } |
} |
std::wstring CommandLine::GetSwitchValue( |
const std::wstring& switch_string) const { |
+ // TODO(evanm): deprecate. |
return GetSwitchValue(WideToASCII(switch_string)); |
} |
@@ -377,6 +385,11 @@ void CommandLine::AppendSwitch(const std::string& switch_string) { |
void CommandLine::AppendSwitchWithValue(const std::string& switch_string, |
const std::wstring& value_string) { |
+ AppendSwitchNative(switch_string, value_string); |
+} |
+ |
+void CommandLine::AppendSwitchNative(const std::string& switch_string, |
+ const std::wstring& value_string) { |
std::wstring value_string_edit; |
// NOTE(jhughes): If the value contains a quotation mark at one |
@@ -433,13 +446,18 @@ void CommandLine::AppendSwitch(const std::string& switch_string) { |
switches_[switch_string] = ""; |
} |
+void CommandLine::AppendSwitchNative(const std::string& switch_string, |
+ const std::string& value) { |
+ argv_.push_back(kSwitchPrefixes[0] + switch_string + |
+ kSwitchValueSeparator + value); |
+ switches_[switch_string] = value; |
+} |
+ |
void CommandLine::AppendSwitchWithValue(const std::string& switch_string, |
const std::wstring& value_string) { |
+ // TODO(evanm): deprecate. |
std::string mb_value = base::SysWideToNativeMB(value_string); |
- |
- argv_.push_back(kSwitchPrefixes[0] + switch_string + |
- kSwitchValueSeparator + mb_value); |
- switches_[switch_string] = mb_value; |
+ AppendSwitchNative(switch_string, mb_value); |
} |
void CommandLine::AppendLooseValue(const std::wstring& value) { |
@@ -470,11 +488,27 @@ void CommandLine::PrependWrapper(const std::wstring& wrapper_wide) { |
#endif |
+void CommandLine::AppendSwitchPath(const std::string& switch_string, |
+ const FilePath& path) { |
+ AppendSwitchNative(switch_string, path.value()); |
+} |
+ |
void CommandLine::AppendSwitchWithValue(const std::string& switch_string, |
const std::string& value_string) { |
AppendSwitchWithValue(switch_string, ASCIIToWide(value_string)); |
} |
+void CommandLine::CopySwitchesFrom(const CommandLine& source, |
+ const char* const switches[], |
+ size_t count) { |
+ for (size_t i = 0; i < count; ++i) { |
+ if (source.HasSwitch(switches[i])) { |
+ StringType value = source.GetSwitchValueNative(switches[i]); |
+ AppendSwitchNative(switches[i], value); |
+ } |
+ } |
+} |
+ |
// private |
CommandLine::CommandLine() { |
} |