| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <map> | 5 #include <map> |
| 6 #include <set> | 6 #include <set> |
| 7 | 7 |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/strings/string_split.h" | 10 #include "base/strings/string_split.h" |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 setup->build_settings().set_check_for_bad_items(false); | 401 setup->build_settings().set_check_for_bad_items(false); |
| 402 if (!setup->DoSetup(args[0], false) || !setup->Run()) | 402 if (!setup->DoSetup(args[0], false) || !setup->Run()) |
| 403 return 1; | 403 return 1; |
| 404 | 404 |
| 405 // The inputs are everything but the first arg (which is the build dir). | 405 // The inputs are everything but the first arg (which is the build dir). |
| 406 std::vector<std::string> inputs; | 406 std::vector<std::string> inputs; |
| 407 for (size_t i = 1; i < args.size(); i++) { | 407 for (size_t i = 1; i < args.size(); i++) { |
| 408 if (args[i][0] == '@') { | 408 if (args[i][0] == '@') { |
| 409 // The argument is as a path to a response file. | 409 // The argument is as a path to a response file. |
| 410 std::string contents; | 410 std::string contents; |
| 411 std::vector<std::string> lines; | |
| 412 bool ret = base::ReadFileToString(UTF8ToFilePath(args[i].substr(1)), | 411 bool ret = base::ReadFileToString(UTF8ToFilePath(args[i].substr(1)), |
| 413 &contents); | 412 &contents); |
| 414 if (!ret) { | 413 if (!ret) { |
| 415 Err(Location(), "Response file " + args[i].substr(1) + " not found.") | 414 Err(Location(), "Response file " + args[i].substr(1) + " not found.") |
| 416 .PrintToStdout(); | 415 .PrintToStdout(); |
| 417 return 1; | 416 return 1; |
| 418 } | 417 } |
| 419 base::SplitString(contents, '\n', &lines); | 418 for (const std::string& line : base::SplitString( |
| 420 for (const auto& line : lines) { | 419 contents, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) { |
| 421 if (!line.empty()) | 420 if (!line.empty()) |
| 422 inputs.push_back(line); | 421 inputs.push_back(line); |
| 423 } | 422 } |
| 424 } else { | 423 } else { |
| 425 // The argument is a label or a path. | 424 // The argument is a label or a path. |
| 426 inputs.push_back(args[i]); | 425 inputs.push_back(args[i]); |
| 427 } | 426 } |
| 428 } | 427 } |
| 429 | 428 |
| 430 // Get the matches for the command-line input. | 429 // Get the matches for the command-line input. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 | 480 |
| 482 // If you ask for the references of a valid target, but that target has | 481 // If you ask for the references of a valid target, but that target has |
| 483 // nothing referencing it, we'll get here without having printed anything. | 482 // nothing referencing it, we'll get here without having printed anything. |
| 484 if (!quiet && cnt == 0) | 483 if (!quiet && cnt == 0) |
| 485 OutputString("Nothing references this.\n", DECORATION_YELLOW); | 484 OutputString("Nothing references this.\n", DECORATION_YELLOW); |
| 486 | 485 |
| 487 return 0; | 486 return 0; |
| 488 } | 487 } |
| 489 | 488 |
| 490 } // namespace commands | 489 } // namespace commands |
| OLD | NEW |