1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

Merge pull request #5582 from zhitkoff/wc-files

wc: pass GNU test wc-files0-from.pl
This commit is contained in:
Daniel Hofstetter 2023-11-27 06:57:43 +01:00 committed by GitHub
commit 55d931e853
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 5 deletions

View file

@ -167,7 +167,9 @@ impl<'a> Inputs<'a> {
None => Ok(Self::Files0From(input)),
}
}
(Some(_), Some(_)) => Err(WcError::FilesDisabled.into()),
(Some(mut files), Some(_)) => {
Err(WcError::files_disabled(files.next().unwrap()).into())
}
}
}
@ -342,8 +344,8 @@ impl TotalWhen {
#[derive(Debug, Error)]
enum WcError {
#[error("file operands cannot be combined with --files0-from")]
FilesDisabled,
#[error("extra operand '{extra}'\nfile operands cannot be combined with --files0-from")]
FilesDisabled { extra: Cow<'static, str> },
#[error("when reading file names from stdin, no file name of '-' allowed")]
StdinReprNotAllowed,
#[error("invalid zero-length file name")]
@ -365,11 +367,15 @@ impl WcError {
None => Self::ZeroLengthFileName,
}
}
fn files_disabled(first_extra: &OsString) -> Self {
let extra = first_extra.to_string_lossy().into_owned().into();
Self::FilesDisabled { extra }
}
}
impl UError for WcError {
fn usage(&self) -> bool {
matches!(self, Self::FilesDisabled)
matches!(self, Self::FilesDisabled { .. })
}
}

View file

@ -423,7 +423,8 @@ fn test_files_from_pseudo_filesystem() {
#[test]
fn test_files0_disabled_files_argument() {
const MSG: &str = "file operands cannot be combined with --files0-from";
const MSG: &str =
"extra operand 'lorem_ipsum.txt'\nfile operands cannot be combined with --files0-from";
new_ucmd!()
.args(&["--files0-from=files0_list.txt"])
.arg("lorem_ipsum.txt")