py3: partially fix pager spawning on Windows
Previously, spinning up the pager crashed because the command and environment
was in bytes. (See also 543a788eea2d.) Now it aborts with an invalid handle:
$ HGMODULEPOLICY=py py -3 ../hg --traceback --config extensions.evolve=!
Traceback (most recent call last):
File "c:\Users\Matt\projects\hg\mercurial\ui.py", line 967, in _write
self.fout.write(''.join(msgs))
File "c:\Users\Matt\projects\hg\mercurial\windows.py", line 173, in write
self.fp.write(s[start:end])
OSError: [WinError 6] The handle is invalid
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\Matt\projects\hg\mercurial\scmutil.py", line 164, in callcatch
return func()
File "c:\Users\Matt\projects\hg\mercurial\dispatch.py", line 350, in _runcatchfunc
return _dispatch(req)
File "c:\Users\Matt\projects\hg\mercurial\dispatch.py", line 930, in _dispatch
return commands.help_(ui, 'shortlist')
File "c:\Users\Matt\projects\hg\mercurial\commands.py", line 2930, in help_
ui.write(formatted)
File "c:\Users\Matt\projects\hg\mercurial\ui.py", line 948, in write
self._writenobuf(*args, **opts)
File "c:\Users\Matt\projects\hg\mercurial\ui.py", line 960, in _writenobuf
self._write(*msgs, **opts)
File "c:\Users\Matt\projects\hg\mercurial\ui.py", line 969, in _write
raise error.StdioError(err)
mercurial.error.StdioError: [Errno 9] The handle is invalid
abort: The handle is invalid
The interesting bit here is that the abort message is marked with ANSI color,
but the OSError is not.
#
# tcsh completion for Mercurial
#
# This file has been auto-generated by tcsh_completion_build.sh for
# Mercurial Distributed SCM (version 1.7.5+157-8a220ae0b2ba)
#
# Copyright (C) 2005 TK Soh.
#
# This is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
complete hg \
'n/--cwd/d/' 'n/-R/d/' 'n/--repository/d/' \
'C/-/( -R --repository \
--cwd \
-y --noninteractive \
-q --quiet \
-v --verbose \
--config \
--debug \
--debugger \
--encoding \
--encodingmode \
--traceback \
--time \
--profile \
--version \
-h --help)/' \
'p/1/(add addremove annotate blame archive \
backout bisect bookmarks branch branches \
bundle cat clone commit ci \
copy cp debugancestor debugbuilddag debugcheckstate \
debugcommands debugcomplete debugdag debugdata debugdate \
debugfsinfo debugignore debugindex debugindexdot debuginstall \
debugpushkey debugrebuildstate debugrename debugrevspec debugsetparents \
debugstate debugsub debugwalk diff export \
forget grep heads help identify \
id import patch incoming in \
init locate log history manifest \
merge outgoing out parents paths \
pull push recover remove rm \
rename move mv resolve revert \
rollback root serve showconfig debugconfig \
status st summary sum tag \
tags tip unbundle update up \
checkout co verify version)/'