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

expand: Continue work when one of given files doesn't exist (#5873)

* expand: continues work when one of given files doesn't exist

* fixed test for nonexisting file
This commit is contained in:
Daniel Lungu 2024-01-25 10:10:59 +02:00 committed by GitHub
parent 1693640446
commit 61c730d1b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 9 deletions

View file

@ -471,15 +471,21 @@ fn expand(options: &Options) -> UResult<()> {
set_exit_code(1); set_exit_code(1);
continue; continue;
} }
match open(file) {
let mut fh = open(file)?; Ok(mut fh) => {
while match fh.read_until(b'\n', &mut buf) {
while match fh.read_until(b'\n', &mut buf) { Ok(s) => s > 0,
Ok(s) => s > 0, Err(_) => buf.is_empty(),
Err(_) => buf.is_empty(), } {
} { expand_line(&mut buf, &mut output, ts, options)
expand_line(&mut buf, &mut output, ts, options) .map_err_context(|| "failed to write output".to_string())?;
.map_err_context(|| "failed to write output".to_string())?; }
}
Err(e) => {
show_error!("{}", e);
set_exit_code(1);
continue;
}
} }
} }
Ok(()) Ok(())

View file

@ -417,3 +417,12 @@ fn test_expand_directory() {
.fails() .fails()
.stderr_contains("expand: .: Is a directory"); .stderr_contains("expand: .: Is a directory");
} }
#[test]
fn test_nonexisting_file() {
new_ucmd!()
.args(&["nonexistent", "with-spaces.txt"])
.fails()
.stderr_contains("expand: nonexistent: No such file or directory")
.stdout_contains_line("// !note: file contains significant whitespace");
}