This is an archive of the discontinued Mercurial Phabricator instance.

highlight: fix encoding issues to enable Py3 compatibility
ClosedPublic

Authored by sheehan on Sep 9 2019, 3:22 PM.

Details

Summary

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.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

sheehan created this revision.Sep 9 2019, 3:22 PM
pulkit accepted this revision.Sep 11 2019, 2:28 AM
This revision is now accepted and ready to land.Sep 11 2019, 2:28 AM