From 82146e0c98d4fa7d32b92d88d21554fa0ab93174 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 23 Nov 2019 19:59:34 +0100 Subject: [PATCH] Fix: Ignore Broken Pipe errors when writing list Signed-off-by: Matthias Beyer --- bin/domain/imag-todo/src/lib.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bin/domain/imag-todo/src/lib.rs b/bin/domain/imag-todo/src/lib.rs index 88046d96..aa163dff 100644 --- a/bin/domain/imag-todo/src/lib.rs +++ b/bin/domain/imag-todo/src/lib.rs @@ -326,7 +326,15 @@ fn list_todos(rt: &Runtime, matcher: &StatusMatcher, show_hidden: bool) -> Resul }) .and_then_ok(|entry| { if !rt.output_is_pipe() && (show_hidden || filter_hidden.filter(&entry)?) { - viewer.view_entry(&entry, &mut rt.stdout())?; + if let Err(e) = viewer.view_entry(&entry, &mut rt.stdout()) { + use libimagentryview::error::Error; + match e { + Error::Other(e) => return Err(e), + Error::Io(e) => if e.kind() != std::io::ErrorKind::BrokenPipe { + return Err(failure::Error::from(e)) + }, + } + } } rt.report_touched(entry.get_location()).map_err(Error::from)