[PATCH 2 of 6] Determine default locale encoding and stdio encoding on start-up

Andrey grooz-work at gorodok.net
Sun Nov 12 11:49:25 CST 2006


# HG changeset patch
# User Andrey <grooz-work at gorodok.net>
# Date 1163345012 -21600
# Node ID 97bdd52eb920740375a449a3bb55078d10f9a163
# Parent  69bafd28ba10981bfc4cb2648a48aad2545fbe70
Determine default locale encoding and stdio encoding on start-up

diff -r 69bafd28ba10 -r 97bdd52eb920 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())
@@ -48,6 +48,15 @@ class ui(object):
             self.ucdata = None
             self.readconfig(util.rcpath())
             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