win32mbcs: use extsetup() to wrap functions only once. stable
authorShun-ichi GOTO <shunichi.goto@gmail.com>
Fri, 19 Nov 2010 18:07:15 +0900
branchstable
changeset 13067 9696954415db
parent 13066 86888ae9ce90
child 13068 adff480db558
win32mbcs: use extsetup() to wrap functions only once. Using reposetup() may cause multiple-wrap issue in some situation like "hg serve".
hgext/win32mbcs.py
--- a/hgext/win32mbcs.py	Tue Nov 30 12:45:25 2010 -0200
+++ b/hgext/win32mbcs.py	Fri Nov 19 18:07:15 2010 +0900
@@ -33,7 +33,8 @@
 Note that there are some limitations on using this extension:
 
 - You should use single encoding in one repository.
-
+- If the repository path ends with 0x5c, .hg/hgrc cannot be read.
+- win32mbcs is not compatible with fixutf8 extention.
 
 By default, win32mbcs uses encoding.encoding decided by Mercurial.
 You can specify the encoding by config option::
@@ -48,7 +49,7 @@
 from mercurial.i18n import _
 from mercurial import util, encoding
 
-_encoding = None                                # see reposetup()
+_encoding = None                                # see extsetup
 
 def decode(arg):
     if isinstance(arg, str):
@@ -136,7 +137,7 @@
  sjis s_jis shift_jis_2004 shiftjis2004 sjis_2004 sjis2004
  shift_jisx0213 shiftjisx0213 sjisx0213 s_jisx0213 950 cp950 ms950 '''
 
-def reposetup(ui, repo):
+def extsetup(ui):
     # TODO: decide use of config section for this extension
     if not os.path.supports_unicode_filenames:
         ui.warn(_("[win32mbcs] cannot activate on this platform.\n"))
@@ -149,6 +150,10 @@
         for f in funcs.split():
             wrapname(f, wrapper)
         wrapname("mercurial.osutil.listdir", wrapperforlistdir)
-        ui.debug("[win32mbcs] activated with encoding: %s\n"
-                 % _encoding)
+        # Check sys.args manually instead of using ui.debug() because
+        # command line options is not yet applied when
+        # extensions.loadall() is called.
+        if '--debug' in sys.argv:
+            ui.write("[win32mbcs] activated with encoding: %s\n"
+                     % _encoding)