From 3ad226cf54a06d88952f9c42837b122fef18239b Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Wed, 20 Mar 2024 10:26:11 +0100 Subject: [PATCH] fmt: show error if goal > default width --- src/uu/fmt/src/fmt.rs | 3 +++ tests/by-util/test_fmt.rs | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/uu/fmt/src/fmt.rs b/src/uu/fmt/src/fmt.rs index b795ad277..7e10c41e7 100644 --- a/src/uu/fmt/src/fmt.rs +++ b/src/uu/fmt/src/fmt.rs @@ -101,6 +101,9 @@ impl FmtOptions { (w, g) } (None, Some(&g)) => { + if g > DEFAULT_WIDTH { + return Err(USimpleError::new(1, "GOAL cannot be greater than WIDTH.")); + } let w = (g * 100 / DEFAULT_GOAL_TO_WIDTH_RATIO).max(g + 3); (w, g) } diff --git a/tests/by-util/test_fmt.rs b/tests/by-util/test_fmt.rs index 411ab322c..8d50023f3 100644 --- a/tests/by-util/test_fmt.rs +++ b/tests/by-util/test_fmt.rs @@ -93,6 +93,17 @@ fn test_fmt_goal_too_big() { } } +#[test] +fn test_fmt_goal_bigger_than_default_width_of_75() { + for param in ["-g", "--goal"] { + new_ucmd!() + .args(&["one-word-per-line.txt", param, "76"]) + .fails() + .code_is(1) + .stderr_is("fmt: GOAL cannot be greater than WIDTH.\n"); + } +} + #[test] fn test_fmt_invalid_goal() { for param in ["-g", "--goal"] {