forked from mars/breed
1
0
Fork 0

It now opens to an empty buffer when there is no stdin

This commit is contained in:
Emma Tebibyte 2023-04-11 19:15:38 -04:00
parent 31d9cdf266
commit 6ed8a04c24
3 changed files with 8 additions and 1 deletions

1
Cargo.lock generated
View File

@ -62,6 +62,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"arg", "arg",
"crossterm", "crossterm",
"libc",
"ropey", "ropey",
"yacexits", "yacexits",
] ]

View File

@ -7,5 +7,6 @@ license = "AGPL-3.0-or-later"
[dependencies] [dependencies]
arg = "0.4.1" arg = "0.4.1"
crossterm = "0.26" crossterm = "0.26"
libc = "0.2.141"
ropey = "1.6" ropey = "1.6"
yacexits = "0.1.5" yacexits = "0.1.5"

View File

@ -357,7 +357,12 @@ fn main() -> Result<()> {
let mut buf = Vec::new(); let mut buf = Vec::new();
match argv.get(1).map(|s| s.as_str()) { match argv.get(1).map(|s| s.as_str()) {
Some("-") | None => unsafe { File::from_raw_fd(0) }, // stdin as a file Some("-") | None => {
let stdin = 0; // get stdin as a file descriptor
if unsafe { libc::isatty(stdin) } == 0 {
unsafe { File::from_raw_fd(stdin) }
} else { File::open("/dev/null").unwrap() }
},
Some(path) => { Some(path) => {
std::fs::File::open(path).unwrap_or_else(|_| { std::fs::File::open(path).unwrap_or_else(|_| {
eprintln!( eprintln!(