Mercurial > public > mercurial-scm > hg-stable
diff mercurial/hook.py @ 30482:39d13b8c101d
py3: bulk replace sys.stdin/out/err by util's
Almost all sys.stdin/out/err in hgext/ and mercurial/ are replaced by util's.
There are a few exceptions:
- lsprof.py and statprof.py are untouched since they are a kind of vendor
code and they never import mercurial modules right now.
- ui._readline() needs to replace sys.stdin and stdout to pass them to
raw_input(). We'll need another workaround here.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 20 Oct 2016 23:53:36 +0900 |
parents | 5564fcd031df |
children | 20a42325fdef |
line wrap: on
line diff
--- a/mercurial/hook.py Thu Oct 20 23:40:24 2016 +0900 +++ b/mercurial/hook.py Thu Oct 20 23:53:36 2016 +0900 @@ -209,11 +209,11 @@ for hname, cmd in hooks: if oldstdout == -1 and _redirect: try: - stdoutno = sys.stdout.fileno() - stderrno = sys.stderr.fileno() + stdoutno = util.stdout.fileno() + stderrno = util.stderr.fileno() # temporarily redirect stdout to stderr, if possible if stdoutno >= 0 and stderrno >= 0: - sys.stdout.flush() + util.stdout.flush() oldstdout = os.dup(stdoutno) os.dup2(stderrno, stdoutno) except (OSError, AttributeError): @@ -255,10 +255,10 @@ # The stderr is fully buffered on Windows when connected to a pipe. # A forcible flush is required to make small stderr data in the # remote side available to the client immediately. - sys.stderr.flush() + util.stderr.flush() finally: if _redirect and oldstdout >= 0: - sys.stdout.flush() # write hook output to stderr fd + util.stdout.flush() # write hook output to stderr fd os.dup2(oldstdout, stdoutno) os.close(oldstdout)