1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

sort: handle empty merge inputs

This commit is contained in:
Michael Debertol 2021-07-31 20:19:11 +02:00
parent 5bf4536bdd
commit 418f5b7692
3 changed files with 17 additions and 6 deletions

View file

@ -194,13 +194,15 @@ fn merge_without_limit<M: MergeInput + 'static, F: Iterator<Item = M>>(
let mut mergeable_files = vec![]; let mut mergeable_files = vec![];
for (file_number, receiver) in loaded_receivers.into_iter().enumerate() { for (file_number, receiver) in loaded_receivers.into_iter().enumerate() {
if let Ok(chunk) = receiver.recv() {
mergeable_files.push(MergeableFile { mergeable_files.push(MergeableFile {
current_chunk: Rc::new(receiver.recv().unwrap()), current_chunk: Rc::new(chunk),
file_number, file_number,
line_idx: 0, line_idx: 0,
receiver, receiver,
}) })
} }
}
FileMerger { FileMerger {
heap: binary_heap_plus::BinaryHeap::from_vec_cmp( heap: binary_heap_plus::BinaryHeap::from_vec_cmp(

View file

@ -1039,3 +1039,12 @@ fn test_output_device() {
.pipe_in("input") .pipe_in("input")
.succeeds(); .succeeds();
} }
#[test]
fn test_merge_empty_input() {
new_ucmd!()
.args(&["-m", "empty.txt"])
.succeeds()
.no_stderr()
.no_stdout();
}

0
tests/fixtures/sort/empty.txt vendored Normal file
View file