diff options
Diffstat (limited to 'base')
-rw-r--r-- | base/command_line.cc | 19 | ||||
-rw-r--r-- | base/command_line_unittest.cc | 27 |
2 files changed, 4 insertions, 42 deletions
diff --git a/base/command_line.cc b/base/command_line.cc index b335e7c..3308e80 100644 --- a/base/command_line.cc +++ b/base/command_line.cc @@ -431,14 +431,7 @@ void CommandLine::AppendArguments(const CommandLine& other, // Verify include_program is used correctly. // Logic could be shorter but this is clearer. DCHECK_EQ(include_program, !other.GetProgram().empty()); - if (include_program) - program_ = other.program_; - - if (!command_line_string_.empty()) - command_line_string_ += L' '; - - command_line_string_ += other.command_line_string_; - + command_line_string_ += L" " + other.command_line_string_; std::map<std::string, StringType>::const_iterator i; for (i = other.switches_.begin(); i != other.switches_.end(); ++i) switches_[i->first] = i->second; @@ -489,15 +482,9 @@ void CommandLine::AppendArguments(const CommandLine& other, // Verify include_program is used correctly. // Logic could be shorter but this is clearer. DCHECK_EQ(include_program, !other.GetProgram().empty()); - - if (include_program) - argv_[0] = other.argv_[0]; - - // Skip the first arg when copying since it's the program but push all - // arguments to our arg vector. - for (size_t i = 1; i < other.argv_.size(); ++i) + size_t first_arg = include_program ? 0 : 1; + for (size_t i = first_arg; i < other.argv_.size(); ++i) argv_.push_back(other.argv_[i]); - std::map<std::string, StringType>::const_iterator i; for (i = other.switches_.begin(); i != other.switches_.end(); ++i) switches_[i->first] = i->second; diff --git a/base/command_line_unittest.cc b/base/command_line_unittest.cc index 5c525ae..9184aa3 100644 --- a/base/command_line_unittest.cc +++ b/base/command_line_unittest.cc @@ -5,8 +5,8 @@ #include <string> #include <vector> -#include "base/basictypes.h" #include "base/command_line.h" +#include "base/basictypes.h" #include "base/file_path.h" #include "base/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" @@ -154,28 +154,3 @@ TEST(CommandLineTest, AppendSwitches) { cl.command_line_string()); #endif } - -// Tests that when AppendArguments is called that the program is set correctly -// on the target CommandLine object and the switches from the source -// CommandLine are added to the target. -TEST(CommandLineTest, AppendArguments) { - CommandLine cl1(FilePath(FILE_PATH_LITERAL("Program"))); - cl1.AppendSwitch("switch1"); - cl1.AppendSwitchASCII("switch2", "foo"); - - CommandLine cl2(CommandLine::NO_PROGRAM); - cl2.AppendArguments(cl1, true); - EXPECT_EQ(cl1.GetProgram().value(), cl2.GetProgram().value()); - EXPECT_EQ(cl1.command_line_string(), cl2.command_line_string()); - - CommandLine c1(FilePath(FILE_PATH_LITERAL("Program1"))); - c1.AppendSwitch("switch1"); - CommandLine c2(FilePath(FILE_PATH_LITERAL("Program2"))); - c2.AppendSwitch("switch2"); - - c1.AppendArguments(c2, true); - EXPECT_EQ(c1.GetProgram().value(), c2.GetProgram().value()); - EXPECT_TRUE(c1.HasSwitch("switch1")); - EXPECT_TRUE(c1.HasSwitch("switch2")); -} - |