mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
38 lines
903 B
Rust
38 lines
903 B
Rust
//! Escape characters that may have special meaning in a shell, including
|
|
//! spaces. This is a modified version of the [`shell-escape`], [`shell-words`],
|
|
//! [Rust std] and [this PR].
|
|
//!
|
|
//! [`shell-escape`]: https://crates.io/crates/shell-escape
|
|
//! [`shell-words`]: https://crates.io/crates/shell-words
|
|
//! [Rust std]: https://github.com/rust-lang/rust/blob/main/library/std/src/sys/args/windows.rs#L220
|
|
//! [this PR]: https://github.com/sfackler/shell-escape/pull/9
|
|
|
|
use std::{borrow::Cow, ffi::OsStr};
|
|
|
|
yazi_macro::mod_pub!(unix, windows);
|
|
|
|
yazi_macro::mod_flat!(error);
|
|
|
|
#[inline]
|
|
pub fn escape_os_bytes(b: &[u8]) -> Cow<'_, [u8]> {
|
|
#[cfg(unix)]
|
|
{
|
|
unix::escape_os_bytes(b)
|
|
}
|
|
#[cfg(windows)]
|
|
{
|
|
windows::escape_os_bytes(b)
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
pub fn escape_os_str(s: &OsStr) -> Cow<'_, OsStr> {
|
|
#[cfg(unix)]
|
|
{
|
|
unix::escape_os_str(s)
|
|
}
|
|
#[cfg(windows)]
|
|
{
|
|
windows::escape_os_str(s)
|
|
}
|
|
}
|