Mercurial > hg
view contrib/win32/hg.bat @ 43325:7d4f2e4899c5 stable
py3: fix headencode() with display=False
We previously called str() on a email.header.Header object. On Python 2,
this returns a bytestring and the __str__ method is actually an alias to
.encode() method. On Python 3, __str__ does not perform encoding (and
returns a unicode string). To keep a consistent behavior across Python
versions, we explicitly use .encode() and we wrap the result with
encoding.strtolocal() to get a bytestring in all cases. As a side effect
of forcing bytes conversion, we need to decode back in _addressencode().
This is to make test-notify.t pass on Python 3.
Also note that headers are now encoded in some patchbomb tests; this is
because the charset is not always "us-ascii" ("iso-8859-1" otherwise) on
Python 3.
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Thu, 24 Oct 2019 17:16:43 +0200 |
parents | 975c4fc4a512 |
children | fc8a5c9ecee0 |
line wrap: on
line source
@echo off rem Windows Driver script for Mercurial setlocal set HG=%~f0 rem Use a full path to Python (relative to this script) if it exists, rem as the standard Python install does not put python.exe on the PATH... rem Otherwise, expect that python.exe can be found on the PATH. rem %~dp0 is the directory of this script if exist "%~dp0..\python.exe" ( "%~dp0..\python" "%~dp0hg" %* ) else ( python "%~dp0hg" %* ) endlocal exit /b %ERRORLEVEL%