mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
Move strip_errno to libcore
This commit is contained in:
parent
d285472210
commit
1c05183083
2 changed files with 17 additions and 23 deletions
|
@ -45,7 +45,7 @@ use std::path::Path;
|
|||
use std::path::PathBuf;
|
||||
use std::str::Utf8Error;
|
||||
use unicode_width::UnicodeWidthStr;
|
||||
use uucore::error::{set_exit_code, UError, UResult, USimpleError, UUsageError};
|
||||
use uucore::error::{set_exit_code, strip_errno, UError, UResult, USimpleError, UUsageError};
|
||||
use uucore::parse_size::{parse_size, ParseSizeError};
|
||||
use uucore::version_cmp::version_cmp;
|
||||
use uucore::InvalidEncodingHandling;
|
||||
|
@ -197,27 +197,17 @@ impl Display for SortError {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
SortError::OpenFailed { path, error } => write!(
|
||||
f,
|
||||
"open failed: {}: {}",
|
||||
path,
|
||||
strip_errno(&error.to_string())
|
||||
),
|
||||
SortError::OpenFailed { path, error } => {
|
||||
write!(f, "open failed: {}: {}", path, strip_errno(error))
|
||||
}
|
||||
SortError::ParseKeyError { key, msg } => {
|
||||
write!(f, "failed to parse key `{}`: {}", key, msg)
|
||||
}
|
||||
SortError::ReadFailed { path, error } => write!(
|
||||
f,
|
||||
"cannot read: {}: {}",
|
||||
path,
|
||||
strip_errno(&error.to_string())
|
||||
),
|
||||
SortError::ReadFailed { path, error } => {
|
||||
write!(f, "cannot read: {}: {}", path, strip_errno(error))
|
||||
}
|
||||
SortError::OpenTmpFileFailed { error } => {
|
||||
write!(
|
||||
f,
|
||||
"failed to open temporary file: {}",
|
||||
strip_errno(&error.to_string())
|
||||
)
|
||||
write!(f, "failed to open temporary file: {}", strip_errno(error))
|
||||
}
|
||||
SortError::CompressProgExecutionFailed { code } => {
|
||||
write!(f, "couldn't execute compress program: errno {}", code)
|
||||
|
@ -1814,11 +1804,6 @@ fn print_sorted<'a, T: Iterator<Item = &'a Line<'a>>>(
|
|||
}
|
||||
}
|
||||
|
||||
/// Strips the trailing " (os error XX)" from io error strings.
|
||||
fn strip_errno(err: &str) -> &str {
|
||||
&err[..err.find(" (os error ").unwrap_or(err.len())]
|
||||
}
|
||||
|
||||
fn open(path: impl AsRef<OsStr>) -> UResult<Box<dyn Read + Send>> {
|
||||
let path = path.as_ref();
|
||||
if path == "-" {
|
||||
|
|
|
@ -409,6 +409,15 @@ impl Display for UIoError {
|
|||
}
|
||||
}
|
||||
|
||||
/// Strip the trailing " (os error XX)" from io error strings.
|
||||
pub fn strip_errno(err: &std::io::Error) -> String {
|
||||
let mut msg = err.to_string();
|
||||
if let Some(pos) = msg.find(" (os error ") {
|
||||
msg.drain(pos..);
|
||||
}
|
||||
msg
|
||||
}
|
||||
|
||||
/// Enables the conversion from [`std::io::Error`] to [`UError`] and from [`std::io::Result`] to
|
||||
/// [`UResult`].
|
||||
pub trait FromIo<T> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue