--- a/mercurial/utils/procutil.py Sun Mar 25 11:40:30 2018 +0900
+++ b/mercurial/utils/procutil.py Sun Mar 25 11:58:05 2018 +0900
@@ -9,6 +9,7 @@
from __future__ import absolute_import
+import contextlib
import imp
import io
import os
@@ -240,6 +241,15 @@
os.dup2(f.fileno(), uif.fileno())
f.close()
+@contextlib.contextmanager
+def protectedstdio(uin, uout):
+ """Run code block with protected standard streams"""
+ fin, fout = protectstdio(uin, uout)
+ try:
+ yield fin, fout
+ finally:
+ restorestdio(uin, uout, fin, fout)
+
def shellenviron(environ=None):
"""return environ with optional override, useful for shelling out"""
def py2shell(val):