From ef9d05fee3dd5cb23cc7712b189e96a8947cff94 Mon Sep 17 00:00:00 2001 From: Wilfred Hughes Date: Tue, 22 Jan 2019 00:54:25 +0000 Subject: [PATCH] Enforcing length should not remove newlines --- src/lines.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/lines.rs b/src/lines.rs index a20f93a71..14e03007b 100644 --- a/src/lines.rs +++ b/src/lines.rs @@ -249,6 +249,7 @@ pub fn enforce_length(s: &str, line_length: usize) -> String { if line.len() > line_length { // Truncate. result.push_str(&line[0..line_length]); + result.push_str("\n"); } else { // Pad with spaces. result.push_str(&format!("{:width$}\n", line, width = line_length)); @@ -257,3 +258,15 @@ pub fn enforce_length(s: &str, line_length: usize) -> String { result } + +#[test] +fn enforce_length_short() { + let result = enforce_length("foo\nbar\n", 5); + assert_eq!(result, "foo \nbar \n"); +} + +#[test] +fn enforce_length_long() { + let result = enforce_length("foobar\nbarbaz\n", 3); + assert_eq!(result, "foo\nbar\n"); +}