[PATCH 2 of 8] determine default locale encoding and stdio encoding on start-up

Andrey grooz-work at gorodok.net
Mon Nov 20 04:29:52 CST 2006


# HG changeset patch
# User Andrey <grooz-work at gorodok.net>
# Date 1163345012 -21600
# Node ID cba3d15b1f26aafaa0a4b4d3e90c0529f18ebfd9
# Parent  c1622a4837a2483233b0d19b2ad2ea64b919f53e
determine default locale encoding and stdio encoding on start-up

diff -r c1622a4837a2 -r cba3d15b1f26 mercurial/ui.py
--- a/mercurial/ui.py	Sun Nov 12 00:29:30 2006 +0600
+++ b/mercurial/ui.py	Sun Nov 12 21:23:32 2006 +0600
@@ -8,7 +8,7 @@ from i18n import gettext as _
 from i18n import gettext as _
 from demandload import *
 demandload(globals(), "errno getpass os re socket sys tempfile")
-demandload(globals(), "ConfigParser traceback util")
+demandload(globals(), "ConfigParser traceback util locale")
 
 def dupconfig(orig):
     new = util.configparser(orig.defaults())
@@ -49,6 +49,15 @@ class ui(object):
             self.readconfig(util.rcpath())
             self.check_trusted = True
             self.updateopts(verbose, debug, quiet, interactive)
+
+            self.encodings = {}
+            self.encodings["default"] = (self.config("ui", "encoding")
+                                        or locale.getpreferredencoding())
+            # windows may use different encoding for stdio
+            self.encodings["stdio"] = (self.config("ui", "stdio_encoding")
+                                      or self.config("ui", "encoding")
+                                      or sys.stdout.encoding or sys.stdin.encoding
+                                      or self.encodings["default"])
         else:
             # parentui may point to an ui object which is already a child
             self.parentui = parentui.parentui or parentui


More information about the Mercurial-devel mailing list