Skip to content

Commit 483f13e

Browse files
authored
cut: improve function signature
and add test for existing functionality
1 parent ddb9cd6 commit 483f13e

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/uu/cut/src/cut.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,9 @@ fn cut_fields_newline_char_delim<R: Read, W: Write>(
260260
reader: R,
261261
out: &mut W,
262262
ranges: &[Range],
263-
only_delimited: bool,
264263
newline_char: u8,
265264
out_delim: &[u8],
265+
only_delimited: bool,
266266
) -> UResult<()> {
267267
let mut reader = BufReader::new(reader);
268268
let mut line = Vec::new();
@@ -398,9 +398,9 @@ fn cut_fields<R: Read, W: Write>(
398398
reader,
399399
out,
400400
ranges,
401-
field_opts.only_delimited,
402401
newline_char,
403402
out_delim,
403+
field_opts.only_delimited,
404404
)
405405
}
406406
Delimiter::Slice(delim) => {

tests/by-util/test_cut.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,21 @@ fn test_zero_terminated_only_delimited() {
229229
.stdout_only("82\n7\0");
230230
}
231231

232+
#[test]
233+
fn test_suppresses_unterminated_segment() {
234+
new_ucmd!()
235+
.args(&["-z", "-d", "", "-s", "-f", "1"])
236+
.pipe_in("unterminated")
237+
.succeeds()
238+
.stdout_only_bytes("");
239+
240+
new_ucmd!()
241+
.args(&["-z", "-d", "", "-s", "-f", "1"])
242+
.pipe_in("terminated\0unterminated")
243+
.succeeds()
244+
.stdout_only_bytes("terminated\0");
245+
}
246+
232247
#[test]
233248
fn test_is_a_directory() {
234249
let (at, mut ucmd) = at_and_ucmd!();

0 commit comments

Comments
 (0)