Mercurial > hg
changeset 9098:5e4654f5522d
win32mbcs: look up modules using sys.modules (issue1729)
globals()[module] doesn't work for modules inside of packages, such as
os.path.
author | Brodie Rao <me+hg@dackz.net> |
---|---|
date | Wed, 08 Jul 2009 09:48:48 -0400 |
parents | 431462bd8478 |
children | 3d456bf32f18 |
files | hgext/win32mbcs.py |
diffstat | 1 files changed, 5 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/win32mbcs.py Thu Jul 09 17:10:07 2009 -0500 +++ b/hgext/win32mbcs.py Wed Jul 08 09:48:48 2009 -0400 @@ -38,7 +38,7 @@ setting or HGENCODING. ''' -import os +import os, sys from mercurial.i18n import _ from mercurial import util, encoding @@ -79,10 +79,8 @@ " %s encoding\n") % (encoding.encoding)) def wrapname(name): - idx = name.rfind('.') - module = name[:idx] - name = name[idx+1:] - module = globals()[module] + module, name = name.rsplit('.', 1) + module = sys.modules[module] func = getattr(module, name) def f(*args): return wrapper(func, args) @@ -97,7 +95,8 @@ # they use result of os.path.split() funcs = '''os.path.join os.path.split os.path.splitext os.path.splitunc os.path.normpath os.path.normcase os.makedirs - util.endswithsep util.splitpath util.checkcase util.fspath''' + mercurial.util.endswithsep mercurial.util.splitpath mercurial.util.checkcase + mercurial.util.fspath''' # codec and alias names of sjis and big5 to be faked. problematic_encodings = '''big5 big5-tw csbig5 big5hkscs big5-hkscs