From 5a474370ddda92a3a92b6b84cd561ecaf4d6d858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Ser=C3=A9?= Date: Sun, 29 Aug 2021 19:33:45 +0000 Subject: [PATCH] fix(reporter): Only inc the line count if we haven't already done so with '\n' or '\r\n' (#37) --- src/printer/graphical_printer.rs | 6 +++++- tests/printer.rs | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/printer/graphical_printer.rs b/src/printer/graphical_printer.rs index 82a76b8..897c65f 100644 --- a/src/printer/graphical_printer.rs +++ b/src/printer/graphical_printer.rs @@ -461,6 +461,7 @@ impl GraphicalReportPrinter { let mut lines = Vec::new(); while let Some(char) = iter.next() { offset += char.len_utf8(); + let mut at_end_of_file = false; match char { '\r' => { if iter.next_if_eq(&'\n').is_some() { @@ -471,8 +472,10 @@ impl GraphicalReportPrinter { line_str.push(char); column += 1; } + at_end_of_file = iter.peek().is_none(); } '\n' => { + at_end_of_file = iter.peek().is_none(); line += 1; column = 0; } @@ -481,7 +484,8 @@ impl GraphicalReportPrinter { column += 1; } } - if iter.peek().is_none() { + + if iter.peek().is_none() && !at_end_of_file { line += 1; } diff --git a/tests/printer.rs b/tests/printer.rs index 11330da..2591899 100644 --- a/tests/printer.rs +++ b/tests/printer.rs @@ -277,7 +277,7 @@ line5 3 │ ││ line3 4 │ │├─▶ line4 · │╰──── block 2 - 6 │ ├──▶ line5 + 5 │ ├──▶ line5 · ╰───── block 1 ‽ try doing it better next time? @@ -329,7 +329,7 @@ line5 2 │ │╭─▶ line2 3 │ ││ line3 4 │ │╰─▶ line4 - 6 │ ├──▶ line5 + 5 │ ├──▶ line5 · ╰───── block 1 ‽ try doing it better next time?