From 50dc1f5b71f7e0e4ba628904b9a47d9f9d875b3e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 31 Jul 2014 10:31:17 +0200 Subject: Restore default SIGPIPE handler before invoking ‘man’ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes NixOS/nixpkgs#3410. --- src/libmain/shared.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/libmain/shared.cc') diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index 14263446fe2e..47c38e33e67b 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -244,9 +244,9 @@ static void initAndRun(int argc, char * * argv) void showManPage(const string & name) { - string cmd = "man " + name; - if (system(cmd.c_str()) != 0) - throw Error(format("command `%1%' failed") % cmd); + restoreSIGPIPE(); + execlp("man", "man", name.c_str(), NULL); + throw SysError(format("command `man %1%' failed") % name.c_str()); } -- cgit 1.4.1