Continue with output after "is directory"-error

pull/356/head
sharkdp 6 years ago
parent eee7e5a575
commit 278bde5cee

@ -26,20 +26,30 @@ impl<'b> Controller<'b> {
let stdin = io::stdin(); let stdin = io::stdin();
for input_file in &self.config.files { for input_file in &self.config.files {
let mut reader = input_file.get_reader(&stdin)?; match input_file.get_reader(&stdin) {
Err(error) => {
let result = if self.config.loop_through { handle_error(&error);
let mut printer = SimplePrinter::new(); no_errors = false;
self.print_file(reader, &mut printer, writer, *input_file) }
} else { Ok(mut reader) => {
let mut printer = let result = if self.config.loop_through {
InteractivePrinter::new(&self.config, &self.assets, *input_file, &mut reader); let mut printer = SimplePrinter::new();
self.print_file(reader, &mut printer, writer, *input_file) self.print_file(reader, &mut printer, writer, *input_file)
}; } else {
let mut printer = InteractivePrinter::new(
&self.config,
&self.assets,
*input_file,
&mut reader,
);
self.print_file(reader, &mut printer, writer, *input_file)
};
if let Err(error) = result { if let Err(error) = result {
handle_error(&error); handle_error(&error);
no_errors = false; no_errors = false;
}
}
} }
} }

@ -102,3 +102,13 @@ fn fail_non_existing() {
fn fail_directory() { fn fail_directory() {
bat().arg("sub_directory").assert().failure(); bat().arg("sub_directory").assert().failure();
} }
#[test]
fn do_not_exit_directory() {
bat()
.arg("sub_directory")
.arg("test.txt")
.assert()
.stdout("hello world\n")
.failure();
}

Loading…
Cancel
Save