# HG changeset patch # User Yuya Nishihara # Date 1504790843 -32400 # 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 -r 82bd4c5a81e5 -r 902219a99901 mercurial/debugcommands.py --- a/mercurial/debugcommands.py Sun Sep 10 23:37:14 2017 +0900 +++ b/mercurial/debugcommands.py Thu Sep 07 22:27:23 2017 +0900 @@ -7,6 +7,7 @@ from __future__ import absolute_import +import codecs import collections import difflib import errno @@ -997,8 +998,8 @@ 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 -r 82bd4c5a81e5 -r 902219a99901 tests/test-install.t --- a/tests/test-install.t Sun Sep 10 23:37:14 2017 +0900 +++ b/tests/test-install.t Thu Sep 07 22:27:23 2017 +0900 @@ -76,6 +76,11 @@ 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