Mercurial > hg-stable
changeset 43429:856cce0c255c stable
py3: avoid iterating over a literal bytes in highlight
In Python 3, iterating over a bytes literal yields integers. Since we
use the value in `text.replace()`, this fails on Python 3 with the
following trackback:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgwebdir_mod.py", line 378, in run_wsgi
for r in self._runwsgi(req, res):
File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 326, in run_wsgi
for r in self._runwsgi(req, res, repo):
File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 449, in _runwsgi
return getattr(webcommands, cmd)(rctx)
File "/usr/lib/python3/dist-packages/mercurial/hgweb/webcommands.py", line 211, in file
return _filerevision(web, webutil.filectx(web.repo, web.req))
File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 72, in filerevision_highlight
pygmentize(web, b'fileline', fctx, web.tmpl)
File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 58, in pygmentize
field, fctx, style, tmpl, guessfilenameonly=filenameonly
File "/usr/lib/python3/dist-packages/hgext/highlight/highlight.py", line 62, in pygmentize
text = text.replace(c, b'')
TypeError: a bytes-like object is required, not 'int'
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Tue, 12 Nov 2019 11:05:03 +0100 |
parents | a825ba8eb0a1 |
children | 4394687b298b 32048206e7be |
files | hgext/highlight/highlight.py |
diffstat | 1 files changed, 1 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/highlight/highlight.py Tue Nov 05 13:31:40 2019 -0800 +++ b/hgext/highlight/highlight.py Tue Nov 12 11:05:03 2019 +0100 @@ -57,7 +57,7 @@ return # str.splitlines() != unicode.splitlines() because "reasons" - for c in b"\x0c\x1c\x1d\x1e": + for c in b"\x0c", b"\x1c", b"\x1d", b"\x1e": if c in text: text = text.replace(c, b'')