restructure based on suggestion

Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com>
This commit is contained in:
no382001
2026-03-31 21:13:40 +02:00
parent c065b52778
commit 28f8da5ce9

View File

@@ -657,27 +657,20 @@ impl Stream {
#[inline] #[inline]
pub fn stdin(arena: &mut Arena, add_history: bool) -> Stream { pub fn stdin(arena: &mut Arena, add_history: bool) -> Stream {
if std::io::stdin().is_terminal() { #[cfg(unix)]
Stream::Readline(arena_alloc!( if !std::io::stdin().is_terminal() {
StreamLayout::new(ReadlineStream::new("", add_history)), use std::os::unix::io::{FromRawFd, RawFd};
arena // dup fd 0 so the File can be owned (and closed later) without
)) // closing the real stdin.
} else { let fd = unsafe { libc::dup(0 as RawFd) };
#[cfg(unix)] let file = unsafe { File::from_raw_fd(fd) };
{ return Stream::from_file_as_input(atom!("user_input"), file, arena);
use std::os::unix::io::{FromRawFd, RawFd};
// dup fd 0 so the File can be owned (and closed later) without
// closing the real stdin.
let fd = unsafe { libc::dup(0 as RawFd) };
let file = unsafe { File::from_raw_fd(fd) };
return Stream::from_file_as_input(atom!("user_input"), file, arena);
}
#[allow(unreachable_code)]
Stream::Readline(arena_alloc!(
StreamLayout::new(ReadlineStream::new("", add_history)),
arena
))
} }
Stream::Readline(arena_alloc!(
StreamLayout::new(ReadlineStream::new("", add_history)),
arena
))
} }
pub fn from_tag(tag: ArenaHeaderTag, ptr: UntypedArenaPtr) -> Self { pub fn from_tag(tag: ArenaHeaderTag, ptr: UntypedArenaPtr) -> Self {