summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2021-05-26 22:39:12 +0200
committerJohn Ankarström <john@ankarstrom.se>2021-05-26 22:39:56 +0200
commit393f6ef84459656d27c08ef8a0d571a0b209a309 (patch)
tree21697fba132099bd3ca35a316a37625e9e8d8068
parentc22ed54565b34c1600f30aaca26a4f5e116bcaf5 (diff)
downloadmum-393f6ef84459656d27c08ef8a0d571a0b209a309.tar.gz
mum: Fix pipe bug
Without handling SIGPIPE, mum may unexpectedly exit when the pager exits.
-rwxr-xr-xsrc/mum9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mum b/src/mum
index 54aa7b0..4ee6f2a 100755
--- a/src/mum
+++ b/src/mum
@@ -123,9 +123,12 @@ h:
$b = $MESSAGE if not $b;
$a = $b if not $a;
- open my $pager, '|-', $ENV{PAGER} || 'less'
- or die "failed to open pager: $!";
- print $pager "$_\n" for get($a, $b);
+ open my $pager, '|-', $ENV{PAGER} || 'less' or do {
+ warn "failed to open pager: $!\n";
+ next;
+ };
+ local $SIG{PIPE} = sub {};
+ print $pager "$_\n" for mbox($a, $b);
close $pager;
}