mercurial/chgserver.py
changeset 39755 7cdd47d9ccf8
parent 39754 a93fe297dfb3
child 39845 a9f56e4501c1
--- a/mercurial/chgserver.py	Wed Sep 19 22:57:47 2018 +0900
+++ b/mercurial/chgserver.py	Wed Sep 19 23:11:07 2018 +0900
@@ -456,7 +456,16 @@
         os.umask(mask)
 
     def runcommand(self):
-        return super(chgcmdserver, self).runcommand()
+        # pager may be attached within the runcommand session, which should
+        # be detached at the end of the session. otherwise the pager wouldn't
+        # receive EOF.
+        globaloldios = self._oldios
+        self._oldios = []
+        try:
+            return super(chgcmdserver, self).runcommand()
+        finally:
+            self._restoreio()
+            self._oldios = globaloldios
 
     def setenv(self):
         """Clear and update os.environ