Handle broken pipe on pressing Ctrl-C with e.g. 'hg log|grep something'.
authorThomas Arendsen Hein <thomas@intevation.de>
Thu, 04 Aug 2005 18:06:49 +0100
changeset 832 b65773f7db41
parent 831 232d0616a80a
child 833 ad8ff3534fde
Handle broken pipe on pressing Ctrl-C with e.g. 'hg log|grep something'.
mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1400,7 +1400,14 @@ def dispatch(args):
     except SignalInterrupt:
         u.warn("killed!\n")
     except KeyboardInterrupt:
-        u.warn("interrupted!\n")
+        try:
+            u.warn("interrupted!\n")
+        except IOError, inst:
+            if inst.errno == errno.EPIPE:
+                if u.debugflag:
+                    u.warn("\nbroken pipe\n")
+            else:
+                raise
     except IOError, inst:
         if hasattr(inst, "code"):
             u.warn("abort: %s\n" % inst)