diff options
Diffstat (limited to 'extensions/browser/file_highlighter.cc')
-rw-r--r-- | extensions/browser/file_highlighter.cc | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/extensions/browser/file_highlighter.cc b/extensions/browser/file_highlighter.cc index d3edeca..2cc669e 100644 --- a/extensions/browser/file_highlighter.cc +++ b/extensions/browser/file_highlighter.cc @@ -203,8 +203,19 @@ SourceHighlighter::~SourceHighlighter() { } void SourceHighlighter::Parse(size_t line_number) { - for (size_t i = 1; i < line_number; ++i) - start_ = contents_.find('\n', start_) + 1; + // If line 0 is requested, highlight nothing. + if (line_number == 0) { + start_ = contents_.size(); + return; + } + + for (size_t i = 1; i < line_number; ++i) { + start_ = contents_.find('\n', start_); + if (start_ == std::string::npos) + break; + start_ += 1; + } + end_ = contents_.find('\n', start_); // If we went off the end of the string (i.e., the line number was invalid), |