diff --git a/src/uu/seq/src/seq.rs b/src/uu/seq/src/seq.rs index f28b4d6e8..75e9b1598 100644 --- a/src/uu/seq/src/seq.rs +++ b/src/uu/seq/src/seq.rs @@ -235,6 +235,14 @@ fn write_value_float( width = if width > 0 { width - 1 } else { width }, precision = precision, ) + } else if *value == ExtendedBigDecimal::Infinity || *value == ExtendedBigDecimal::MinusInfinity + { + format!( + "{value:>width$.precision$}", + value = value, + width = width, + precision = precision, + ) } else { format!( "{value:>0width$.precision$}", diff --git a/tests/by-util/test_seq.rs b/tests/by-util/test_seq.rs index 90166de92..490fcf60c 100644 --- a/tests/by-util/test_seq.rs +++ b/tests/by-util/test_seq.rs @@ -524,6 +524,22 @@ fn test_inf() { run(&["inf"], b"1\n2\n3\n"); } +#[test] +fn test_inf_width() { + run( + &["-w", "1.000", "inf", "inf"], + b"1.000\n inf\n inf\n inf\n", + ); +} + +#[test] +fn test_neg_inf_width() { + run( + &["-w", "1.000", "-inf", "-inf"], + b"1.000\n -inf\n -inf\n -inf\n", + ); +} + #[test] fn test_ignore_leading_whitespace() { new_ucmd!()