[PATCH] alias: fixes exception when displaying translated help text
Yuya Nishihara
yuya at tcha.org
Thu Feb 25 09:54:29 CST 2010
Yuya Nishihara wrote:
> alias: fixes exception when displaying translated help text
>
> docstring of aliased command can contain non-ASCII characters
> since 6e8a16dd3e30, so we cannot do gettext() against it.
Traceback follows:
% hg show
hg show: option -r requires argument
hg show [OPTION]... [FILE]
Traceback (most recent call last):
File "/home/yuya/bin/hg", line 27, in <module>
mercurial.dispatch.run()
File "/home/yuya/work/hghacks/mercurial-stable/mercurial/dispatch.py", line 16, in run
sys.exit(dispatch(sys.argv[1:]))
File "/home/yuya/work/hghacks/mercurial-stable/mercurial/dispatch.py", line 30, in dispatch
return _runcatch(u, args)
File "/home/yuya/work/hghacks/mercurial-stable/mercurial/dispatch.py", line 76, in _runcatch
commands.help_(ui, inst.args[0])
File "/home/yuya/work/hghacks/mercurial-stable/mercurial/commands.py", line 1671, in help_
f(name)
File "/home/yuya/work/hghacks/mercurial-stable/mercurial/commands.py", line 1546, in helpcmd
doc = gettext(doc)
File "/home/yuya/work/hghacks/mercurial-stable/mercurial/i18n.py", line 39, in gettext
u = t.ugettext(message)
File "/usr/lib/python2.5/gettext.py", line 404, in ugettext
return unicode(message)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 12: ordinal not in range(128)
> - doc = gettext(entry[0].__doc__)
> + doc = entry[0].__doc__
> + if not hasattr(entry[0], 'badalias'): # cmdalias: already translated
> + doc = gettext(doc)
> if not doc:
> doc = _("(no help text available)")
> if ui.quiet:
I feel this is ugly.
Any comments are appreciated.
Yuya,
More information about the Mercurial-devel
mailing list