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
#!/bin/sh
# This scripts is used to setup temp directory in memory
# for running Mercurial tests in vritual machine managed
# by Vagrant (see Vagrantfile for details).
cd /hgshared
make local
cd tests
mkdir /tmp/ram
sudo mount -t tmpfs -o size=100M tmpfs /tmp/ram
export TMPDIR=/tmp/ram
./run-tests.py -l --time