diff options
author | Benjamin Peterson <bp@benjamin.pe> | 2017-07-19 15:12:52 +0200 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2017-07-19 16:51:49 +0200 |
commit | 0a295b4b3010664051780b3f187b547019062b5f (patch) | |
tree | 5ba15f81209015b04f7e5a0c55add8e7a36edc9b /src/main/cpp/option_processor.cc | |
parent | bf65cf3192e4ee4a0c2f6ef150179b2e991a0349 (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.cc | 21 |
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); } } } |