mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
Merge 4e6b05f71c into 0c8c973e6c
This commit is contained in:
commit
b09c8a3c5e
4 changed files with 28 additions and 4 deletions
|
|
@ -69,7 +69,7 @@ signal-hook-tokio = { version = "0.4.0", features = [ "futures-v0_3" ] }
|
|||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
crossterm = { workspace = true, features = [ "use-dev-tty", "libc" ] }
|
||||
|
||||
[target.'cfg(all(not(target_os = "macos"), not(target_os = "windows")))'.dependencies]
|
||||
[target.'cfg(all(not(target_os = "macos"), not(target_os = "windows"), not(target_os = "openbsd")))'.dependencies]
|
||||
tikv-jemallocator = "0.6.1"
|
||||
|
||||
[[bin]]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#[cfg(all(not(target_os = "macos"), not(target_os = "windows")))]
|
||||
#[cfg(all(not(target_os = "macos"), not(target_os = "windows"), not(target_os = "openbsd")))]
|
||||
#[global_allocator]
|
||||
static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@ fn casefold_impl(path: PathBuf) -> io::Result<PathBuf> {
|
|||
#[cfg(any(
|
||||
target_os = "macos",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "freebsd"
|
||||
))]
|
||||
fn final_path(path: &Path) -> io::Result<PathBuf> {
|
||||
|
|
@ -139,6 +138,11 @@ fn final_path(path: &Path) -> io::Result<PathBuf> {
|
|||
Ok(OsString::from_vec(cstr.to_bytes().to_vec()).into())
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")]
|
||||
fn final_path(path: &Path) -> io::Result<PathBuf> {
|
||||
std::fs::canonicalize(path)
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
fn final_path(path: &Path) -> io::Result<PathBuf> {
|
||||
use std::{ffi::OsString, fs::File, os::windows::{ffi::OsStringExt, fs::OpenOptionsExt, io::AsRawHandle}};
|
||||
|
|
|
|||
|
|
@ -38,7 +38,12 @@ impl Command {
|
|||
lua.globals().raw_set("Command", command)
|
||||
}
|
||||
|
||||
#[cfg(unix)]
|
||||
#[cfg(any(
|
||||
target_os = "macos",
|
||||
target_os = "netbsd",
|
||||
target_os = "linux",
|
||||
target_os = "freebsd"
|
||||
))]
|
||||
fn spawn(&mut self) -> io::Result<Child> {
|
||||
if let Some(max) = self.memory {
|
||||
unsafe {
|
||||
|
|
@ -52,6 +57,21 @@ impl Command {
|
|||
self.inner.spawn().map(Child::new)
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")]
|
||||
fn spawn(&mut self) -> io::Result<Child> {
|
||||
if let Some(max) = self.memory {
|
||||
unsafe {
|
||||
self.inner.pre_exec(move || {
|
||||
let rlp = libc::rlimit { rlim_cur: max as _, rlim_max: max as _ };
|
||||
#[cfg(target_os = "openbsd")]
|
||||
libc::setrlimit(libc::RLIMIT_DATA, &rlp);
|
||||
Ok(())
|
||||
});
|
||||
}
|
||||
}
|
||||
self.inner.spawn().map(Child::new)
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
fn spawn(&mut self) -> io::Result<Child> {
|
||||
use std::os::windows::io::RawHandle;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue