use std::ffi::{OsStr, OsString};
use crate::bstr::{BString, ByteVec};
pub fn agent() -> &'static str {
concat!("oxide-", env!("CARGO_PKG_VERSION"))
}
pub fn args_os() -> impl Iterator<Item = OsString> {
args_os_opt(cfg!(target_vendor = "apple"))
}
pub fn args_os_opt(precompose_unicode: bool) -> impl Iterator<Item = OsString> {
std::env::args_os().map(move |arg| {
if precompose_unicode {
gix_utils::str::precompose_os_string(arg.into()).into_owned()
} else {
arg
}
})
}
pub fn os_str_to_bstring(input: &OsStr) -> Option<BString> {
Vec::from_os_string(input.into()).map(Into::into).ok()
}