@@ -26,20 +26,30 @@ impl<'b> Controller<'b> {
2626 let stdin = io::stdin();
2727
2828 for input_file in &self.config.files {
29− let mut reader = input_file.get_reader(&stdin)?;
30−
31− let result = if self.config.loop_through {
32− let mut printer = SimplePrinter::new();
33− self.print_file(reader, &mut printer, writer, *input_file)
34− } else {
35− let mut printer =
36− InteractivePrinter::new(&self.config, &self.assets, *input_file, &mut reader);
37− self.print_file(reader, &mut printer, writer, *input_file)
38− };
29+ match input_file.get_reader(&stdin) {
30+ Err(error) => {
31+ handle_error(&error);
32+ no_errors = false;
33+ }
34+ Ok(mut reader) => {
35+ let result = if self.config.loop_through {
36+ let mut printer = SimplePrinter::new();
37+ self.print_file(reader, &mut printer, writer, *input_file)
38+ } else {
39+ let mut printer = InteractivePrinter::new(
40+ &self.config,
41+ &self.assets,
42+ *input_file,
43+ &mut reader,
44+ );
45+ self.print_file(reader, &mut printer, writer, *input_file)
46+ };
3947
40− if let Err(error) = result {
41− handle_error(&error);
42− no_errors = false;
48+ if let Err(error) = result {
49+ handle_error(&error);
50+ no_errors = false;
51+ }
52+ }
4353 }
4454 }
4555