From 483f13e91830c468262aa1e010e753d6ae99c898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Can=20B=C3=B6l=C3=BCk?= Date: Fri, 20 Mar 2026 10:30:19 +0100 Subject: [PATCH] cut: improve function signature and add test for existing functionality --- src/uu/cut/src/cut.rs | 4 ++-- tests/by-util/test_cut.rs | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/uu/cut/src/cut.rs b/src/uu/cut/src/cut.rs index 714e423e8..e0568e810 100644 --- a/src/uu/cut/src/cut.rs +++ b/src/uu/cut/src/cut.rs @@ -260,9 +260,9 @@ fn cut_fields_newline_char_delim( reader: R, out: &mut W, ranges: &[Range], - only_delimited: bool, newline_char: u8, out_delim: &[u8], + only_delimited: bool, ) -> UResult<()> { let mut reader = BufReader::new(reader); let mut line = Vec::new(); @@ -398,9 +398,9 @@ fn cut_fields( reader, out, ranges, - field_opts.only_delimited, newline_char, out_delim, + field_opts.only_delimited, ) } Delimiter::Slice(delim) => { diff --git a/tests/by-util/test_cut.rs b/tests/by-util/test_cut.rs index abb817b14..160ad59c8 100644 --- a/tests/by-util/test_cut.rs +++ b/tests/by-util/test_cut.rs @@ -229,6 +229,21 @@ fn test_zero_terminated_only_delimited() { .stdout_only("82\n7\0"); } +#[test] +fn test_suppresses_unterminated_segment() { + new_ucmd!() + .args(&["-z", "-d", "", "-s", "-f", "1"]) + .pipe_in("unterminated") + .succeeds() + .stdout_only_bytes(""); + + new_ucmd!() + .args(&["-z", "-d", "", "-s", "-f", "1"]) + .pipe_in("terminated\0unterminated") + .succeeds() + .stdout_only_bytes("terminated\0"); +} + #[test] fn test_is_a_directory() { let (at, mut ucmd) = at_and_ucmd!();