wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 9adfeea6c2da2761ba408a9fe2a22787058fcdf2
parent 208db057980dbd96297d8859ed59b4f7ba2dd71a
Author: Kris Maglione <kris@suckless.org>
Date:   Mon, 24 May 2010 13:04:40 -0400

[pygmi] Don't launch background processes with IO pipes. Restore SIGPIPE. (Closes issue #176)

Diffstat:
alternative_wmiircs/python/pygmi/util.py | 8+++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/alternative_wmiircs/python/pygmi/util.py b/alternative_wmiircs/python/pygmi/util.py @@ -1,4 +1,5 @@ import os +import signal import subprocess import pygmi @@ -10,10 +11,11 @@ def _(): def call(*args, **kwargs): background = kwargs.pop('background', False) + pipe = subprocess.PIPE if not background else None input = kwargs.pop('input', None) - p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, cwd=os.environ['HOME'], - close_fds=True, **kwargs) + p = subprocess.Popen(args, stdin=pipe, stdout=pipe, stderr=pipe, + preexec_fn=lambda: signal.signal(signal.SIGPIPE, signal.SIG_DFL), + cwd=os.environ['HOME'], close_fds=True, **kwargs) if not background: return p.communicate(input)[0].rstrip('\n')