mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 19:47:45 +00:00
shuf: Treat empty file as zero elements instead of one emptystring
This commit is contained in:
parent
6adaf31d49
commit
e54c9bebe2
2 changed files with 14 additions and 0 deletions
|
@ -195,6 +195,13 @@ fn read_input_file(filename: &str) -> UResult<Vec<u8>> {
|
|||
}
|
||||
|
||||
fn find_seps(data: &mut Vec<&[u8]>, sep: u8) {
|
||||
// Special case: If data is empty (and does not even contain a single 'sep'
|
||||
// to indicate the presence of the empty element), then behave as if the input contained no elements at all.
|
||||
if data.len() == 1 && data[0].is_empty() {
|
||||
data.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
// need to use for loop so we don't borrow the vector as we modify it in place
|
||||
// basic idea:
|
||||
// * We don't care about the order of the result. This lets us slice the slices
|
||||
|
|
|
@ -48,6 +48,13 @@ fn test_zero_termination() {
|
|||
assert_eq!(result_seq, input_seq, "Output is not a permutation");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_empty_input() {
|
||||
let result = new_ucmd!().pipe_in(vec![]).succeeds();
|
||||
result.no_stderr();
|
||||
result.no_stdout();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_echo() {
|
||||
let input_seq = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue