From f3f511af1b0937cd64f739976cdcf485d0e3e2e0 Mon Sep 17 00:00:00 2001 From: Shohei Wada Date: Mon, 24 Dec 2018 06:12:28 +0900 Subject: [PATCH] Fix #2973 in Windows CRLF env. --- src/comment.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/comment.rs b/src/comment.rs index 6f229414e0d6..89f9258fd7a8 100644 --- a/src/comment.rs +++ b/src/comment.rs @@ -1304,7 +1304,13 @@ impl<'a> Iterator for LineClasses<'a> { None => FullCodeCharKind::Normal, }; - while let Some((kind, c)) = self.base.next() { + while let Some((kind, mut c)) = self.base.next() { + // If \r\n newline appears, consume one more character. + // Then do the same process with the single \n case. + if c == '\r' && self.base.peek().map_or(false, |(_, c2)| *c2 == '\n') { + self.base.next(); + c = '\n'; + } if c == '\n' { self.kind = match (start_class, kind) { (FullCodeCharKind::Normal, FullCodeCharKind::InString) => {