restructure based on suggestion
Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com>
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user