fix: reorder OpenAPI paths and fix file descriptor handling in diff mode

Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-13 11:21:14 -03:00
parent e66af572d3
commit 6c9074f1be
2 changed files with 7 additions and 19 deletions

View File

@@ -76,31 +76,19 @@ fn setup_diff_paths_and_compression(
fn setup_diff_pipes() -> Result<((libc::c_int, libc::c_int), (libc::c_int, libc::c_int)), anyhow::Error> {
use nix::unistd::pipe;
use nix::fcntl::OFlag;
#[allow(unused_imports)]
use nix::fcntl::{fcntl, FcntlArg, FdFlag};
use nix::Error as NixError;
// Create pipes for diff's input with CLOEXEC flag
let (fd_a_read, fd_a_write) = pipe2(OFlag::O_CLOEXEC)
// Create pipes for diff's input
let (fd_a_read, fd_a_write) = pipe()
.map_err(|e: NixError| anyhow::anyhow!("Failed to create pipe A: {}", e))?;
let (fd_b_read, fd_b_write) = pipe2(OFlag::O_CLOEXEC)
let (fd_b_read, fd_b_write) = pipe()
.map_err(|e: NixError| anyhow::anyhow!("Failed to create pipe B: {}", e))?;
Ok(((fd_a_read, fd_a_write), (fd_b_read, fd_b_write)))
Ok(((fd_a_read.into(), fd_a_write.into()), (fd_b_read.into(), fd_b_write.into())))
}
// Helper function to create pipes with CLOEXEC flag
fn pipe2(flags: OFlag) -> nix::Result<(i32, i32)> {
use nix::unistd::pipe;
use nix::fcntl::{fcntl, FcntlArg, FdFlag};
let (read_fd, write_fd) = pipe()?;
// Set the flags
fcntl(read_fd, FcntlArg::F_SETFD(FdFlag::FD_CLOEXEC))?;
fcntl(write_fd, FcntlArg::F_SETFD(FdFlag::FD_CLOEXEC))?;
Ok((read_fd, write_fd))
}
fn setup_fd_guards(fd_a_read: libc::c_int, fd_b_read: libc::c_int) -> (FdGuard, FdGuard) {
// Wrap file descriptors in RAII guards