summaryrefslogtreecommitdiffstats
path: root/bin/domain/imag-todo/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bin/domain/imag-todo/src/lib.rs')
-rw-r--r--bin/domain/imag-todo/src/lib.rs10
1 files changed, 9 insertions, 1 deletions
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)