[PATCH STABLE] py3: avoid iterating over a literal bytes in highlight
Denis Laxalde
denis at laxalde.org
Tue Nov 12 10:21:51 UTC 2019
# HG changeset patch
# User Denis Laxalde <denis.laxalde at logilab.fr>
# Date 1573553103 -3600
# Tue Nov 12 11:05:03 2019 +0100
# Branch stable
# Node ID 430d80ba9271920ca6da8db62b507390f65d20d1
# Parent e513e87b0476cc9a6eb31abe420448877fa9c902
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'
diff --git a/hgext/highlight/highlight.py b/hgext/highlight/highlight.py
--- a/hgext/highlight/highlight.py
+++ b/hgext/highlight/highlight.py
@@ -57,7 +57,7 @@ def pygmentize(field, fctx, style, tmpl,
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'')
More information about the Mercurial-devel
mailing list