aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/cpp/option_processor.cc
diff options
context:
space:
mode:
authorGravatar Benjamin Peterson <bp@benjamin.pe>2017-07-19 15:12:52 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-07-19 16:51:49 +0200
commit0a295b4b3010664051780b3f187b547019062b5f (patch)
tree5ba15f81209015b04f7e5a0c55add8e7a36edc9b /src/main/cpp/option_processor.cc
parentbf65cf3192e4ee4a0c2f6ef150179b2e991a0349 (diff)
Use C++ iterators and iteration during rc file parsing.
This is a bit more idiomatic and fixes these GCC complaints: src/main/cpp/option_processor.cc: In static member function 'static blaze_exit_code::ExitCode blaze::OptionProcessor::RcFile::Parse(const string&, const string&, int, const blaze::WorkspaceLayout*, std::vector<blaze::OptionProcessor::RcFile*>*, std::map<std::__cxx11::basic_string<char>, std::vector<blaze::OptionProcessor::RcOption> >*, std::__cxx11::list<std::__cxx11::basic_string<char> >*, std::__cxx11::string*)': src/main/cpp/option_processor.cc:92:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int line = 0; line < lines.size(); ++line) { ~~~~~^~~~~~~~~~~~~~ src/main/cpp/option_processor.cc:151:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int word = 1; word < words.size(); ++word) { ~~~~~^~~~~~~~~~~~~~ Change-Id: Ieb0e8f89194fe802f79c729eb7a851ea2dfad665 PiperOrigin-RevId: 162477025
Diffstat (limited to 'src/main/cpp/option_processor.cc')
-rw-r--r--src/main/cpp/option_processor.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/main/cpp/option_processor.cc b/src/main/cpp/option_processor.cc
index 3a92ae227f..b3b4afa009 100644
--- a/src/main/cpp/option_processor.cc
+++ b/src/main/cpp/option_processor.cc
@@ -89,11 +89,11 @@ blaze_exit_code::ExitCode OptionProcessor::RcFile::Parse(
vector<string> startup_options;
vector<string> lines = blaze_util::Split(contents, '\n');
- for (int line = 0; line < lines.size(); ++line) {
- blaze_util::StripWhitespace(&lines[line]);
+ for (string& line : lines) {
+ blaze_util::StripWhitespace(&line);
// Check for an empty line.
- if (lines[line].empty()) {
+ if (line.empty()) {
continue;
}
@@ -104,7 +104,7 @@ blaze_exit_code::ExitCode OptionProcessor::RcFile::Parse(
// as an escape character.
// TODO(bazel-team): This function silently ignores
// dangling backslash escapes and missing end-quotes.
- blaze_util::Tokenize(lines[line], '#', &words);
+ blaze_util::Tokenize(line, '#', &words);
if (words.empty()) {
// Could happen if line starts with "#"
@@ -119,10 +119,11 @@ blaze_exit_code::ExitCode OptionProcessor::RcFile::Parse(
workspace_layout->WorkspacePrefix) == 0
&& !workspace_layout->WorkspaceRelativizeRcFilePath(
workspace, &words[1]))) {
- blaze_util::StringPrintf(error,
+ blaze_util::StringPrintf(
+ error,
"Invalid import declaration in .blazerc file '%s': '%s'"
" (are you in your source checkout/WORKSPACE?)",
- filename.c_str(), lines[line].c_str());
+ filename.c_str(), line.c_str());
return blaze_exit_code::BAD_ARGV;
}
if (std::find(import_stack->begin(), import_stack->end(), words[1]) !=
@@ -148,10 +149,12 @@ blaze_exit_code::ExitCode OptionProcessor::RcFile::Parse(
}
import_stack->pop_back();
} else {
- for (int word = 1; word < words.size(); ++word) {
- (*rcoptions)[command].push_back(RcOption(index, words[word]));
+ vector<string>::const_iterator words_it = words.begin();
+ words_it++; // Advance past command.
+ for (; words_it != words.end(); words_it++) {
+ (*rcoptions)[command].push_back(RcOption(index, *words_it));
if (command == "startup") {
- startup_options.push_back(words[word]);
+ startup_options.push_back(*words_it);
}
}
}