hgext/pager.py
changeset 30897 253d5c0f3a2f
parent 30876 3a4c0905f357
child 30992 61b4122019d3
--- a/hgext/pager.py	Fri Feb 10 04:09:06 2017 -0800
+++ b/hgext/pager.py	Wed Feb 08 07:44:10 2017 -0800
@@ -72,6 +72,7 @@
     commands,
     dispatch,
     encoding,
+    error,
     extensions,
     util,
     )
@@ -105,6 +106,9 @@
         pager.stdin.close()
         pager.wait()
 
+def catchterm(*args):
+    raise error.SignalInterrupt
+
 def uisetup(ui):
     class pagerui(ui.__class__):
         def _runpager(self, pagercmd):
@@ -144,6 +148,8 @@
         if usepager:
             ui.setconfig('ui', 'formatted', ui.formatted(), 'pager')
             ui.setconfig('ui', 'interactive', False, 'pager')
+            if util.safehasattr(signal, "SIGPIPE"):
+                signal.signal(signal.SIGPIPE, catchterm)
             ui._runpager(p)
         return orig(ui, options, cmd, cmdfunc)