HomePhabricator

highlight: fix encoding issues to enable Py3 compatibility

Authored by sheehan.

Description

highlight: fix encoding issues to enable Py3 compatibility

This commit fixes various encoding issues with the highlight extension
to enable compatibility with Python 3. Python .encode() and .decode()
requires the target encoding to be passed as a str, so the value of
mercurial.encoding.encoding must be converted before passing to the
function. Pygments also assumes the str type for values it works with,
so we must perform conversions before and after receiving values from its
APIs.

After applying this patch, test-highlight.t passes under Python 3. We
add it to python3-whitelist as well.

Tested with Pygments 2.4.2.

Differential Revision: https://phab.mercurial-scm.org/D6832