fix: correct file descriptor handling in diff command

This commit is contained in:
Andrew Phillips (aider)
2025-05-06 12:05:58 -03:00
parent 0f98221a86
commit dfb765b96c

View File

@@ -532,20 +532,14 @@ fn mode_diff(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &mut Vec<S
let stdout_a = unsafe { std::fs::File::from_raw_fd(fd_a_write) }; let stdout_a = unsafe { std::fs::File::from_raw_fd(fd_a_write) };
let stdout_b = unsafe { std::fs::File::from_raw_fd(fd_b_write) }; let stdout_b = unsafe { std::fs::File::from_raw_fd(fd_b_write) };
let stdout_a = BufWriter::new(stdout_a); let mut stdout_a = BufWriter::new(stdout_a);
let stdout_b = BufWriter::new(stdout_b); let mut stdout_b = BufWriter::new(stdout_b);
let stdout_a = BufWriter::new(stdout_a); let mut stdout_a = BufWriter::new(stdout_a);
let stdout_b = BufWriter::new(stdout_b); let mut stdout_b = BufWriter::new(stdout_b);
let mut stdout_a = unsafe { std::fs::File::from_raw_fd(fd_a_write) };
let mut stdout_b = unsafe { std::fs::File::from_raw_fd(fd_b_write) };
let mut child_stdin = child.stdin.unwrap();
compression_engine_a.copy(item_path_a.clone(), &mut stdout_a)?; compression_engine_a.copy(item_path_a.clone(), &mut stdout_a)?;
compression_engine_b.copy(item_path_b.clone(), &mut stdout_b)?; compression_engine_b.copy(item_path_b.clone(), &mut stdout_b)?;
let stdout_a = BufWriter::new(stdout_a);
let stdout_b = BufWriter::new(stdout_b);
let stdout_a = BufWriter::new(stdout_a);
let stdout_b = BufWriter::new(stdout_b);
let output = child.wait_with_output().expect("Failed to wait on diff command"); let output = child.wait_with_output().expect("Failed to wait on diff command");
if output.status.success() { if output.status.success() {