Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
radicle-term: Inline `termion::get_tty` for Unix
Lorenz Leutgeb committed 8 months ago
commit 6adbb36ac0ae035ecf44de1579c9562e48f27f1a
parent 974b31f1d59c025f9a9d35aaa1e29a96ca6c0cdd
1 file changed +10 -2
modified crates/radicle-term/src/editor.rs
@@ -133,11 +133,19 @@ impl Editor {
        let stderr = unsafe { libc::dup(stderr) };
        let stdin = if io::stdin().is_terminal() {
            process::Stdio::inherit()
-
        } else {
-
            let tty = termion::get_tty()?;
+
        } else if cfg!(unix) {
            // If standard input is not a terminal device, the editor won't work correctly.
            // In that case, we use the terminal device, eg. `/dev/tty` as standard input.
+
            let tty = fs::OpenOptions::new()
+
                .read(true)
+
                .write(true)
+
                .open("/dev/tty")?;
            process::Stdio::from(tty)
+
        } else {
+
            return Err(io::Error::new(
+
                io::ErrorKind::Unsupported,
+
                format!("standard input is not a terminal, refusing to execute editor {cmd:?}"),
+
            ));
        };

        process::Command::new(program)