Skip to content

Commit

Permalink
expand: Continue work when one of given files doesn't exist (#5873)
Browse files Browse the repository at this point in the history
* expand: continues work when one of given files doesn't exist

* fixed test for nonexisting file
  • Loading branch information
D9nni authored Jan 25, 2024
1 parent 1693640 commit 61c730d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 9 deletions.
24 changes: 15 additions & 9 deletions src/uu/expand/src/expand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -471,15 +471,21 @@ fn expand(options: &Options) -> UResult<()> {
set_exit_code(1);
continue;
}

let mut fh = open(file)?;

while match fh.read_until(b'\n', &mut buf) {
Ok(s) => s > 0,
Err(_) => buf.is_empty(),
} {
expand_line(&mut buf, &mut output, ts, options)
.map_err_context(|| "failed to write output".to_string())?;
match open(file) {
Ok(mut fh) => {
while match fh.read_until(b'\n', &mut buf) {
Ok(s) => s > 0,
Err(_) => buf.is_empty(),
} {
expand_line(&mut buf, &mut output, ts, options)
.map_err_context(|| "failed to write output".to_string())?;
}
}
Err(e) => {
show_error!("{}", e);
set_exit_code(1);
continue;
}
}
}
Ok(())
Expand Down
9 changes: 9 additions & 0 deletions tests/by-util/test_expand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -417,3 +417,12 @@ fn test_expand_directory() {
.fails()
.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");
}

0 comments on commit 61c730d

Please sign in to comment.