# HG changeset patch # User Yuya Nishihara # Date 2017-09-07 13:27:23 # Node ID 902219a999018ffd728811ada56acd5f84dbfefb # Parent 82bd4c5a81e585111d5edd8a42b637992924dda5 debuginstall: use codecs.lookup() to detect invalid encoding encoding.fromlocal() never tries to decode an ascii string since 853574db5b12, and there's no universal non-ascii string which can be decoded as any valid character set. diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py --- a/mercurial/debugcommands.py +++ b/mercurial/debugcommands.py @@ -7,6 +7,7 @@ from __future__ import absolute_import +import codecs import collections import difflib import errno @@ -997,8 +998,8 @@ def debuginstall(ui, **opts): fm.write('encoding', _("checking encoding (%s)...\n"), encoding.encoding) err = None try: - encoding.fromlocal("test") - except error.Abort as inst: + codecs.lookup(pycompat.sysstr(encoding.encoding)) + except LookupError as inst: err = inst problems += 1 fm.condwrite(err, 'encodingerror', _(" %s\n" diff --git a/tests/test-install.t b/tests/test-install.t --- a/tests/test-install.t +++ b/tests/test-install.t @@ -76,6 +76,11 @@ hg debuginstall with no username 1 problems detected, please check your install! [1] +hg debuginstall with invalid encoding + $ HGENCODING=invalidenc hg debuginstall | grep encoding + checking encoding (invalidenc)... + unknown encoding: invalidenc + path variables are expanded (~ is the same as $TESTTMP) $ mkdir tools $ touch tools/testeditor.exe