summaryrefslogtreecommitdiffstats
path: root/extensions/browser/file_highlighter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/browser/file_highlighter.cc')
-rw-r--r--extensions/browser/file_highlighter.cc15
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),