alias: fixes exception when displaying translated help text
__doc__ of aliased command shouldn't cointain non-ASCII characters,
because it'll be gettext-ed later by commands.help_().
Here gettext can raise UnicodeDecodeError.
Once concatenated two translatable strings into one, it become untranslatable.
So this patch moves 'alias for:' from dispatch.cmdalias to commands.help_,
where help texts are translated.
'alias for:' was introduced by
6e8a16dd3e30.
--- a/mercurial/commands.py Mon Mar 01 22:47:39 2010 +0100
+++ b/mercurial/commands.py Mon Mar 01 23:27:44 2010 +0900
@@ -1544,6 +1544,8 @@
doc = gettext(entry[0].__doc__)
if not doc:
doc = _("(no help text available)")
+ if hasattr(entry[0], 'definition'): # aliased command
+ doc = _('alias for: hg %s\n\n%s') % (entry[0].definition, doc)
if ui.quiet:
doc = doc.splitlines()[0]
keep = ui.verbose and ['verbose'] or []
--- a/mercurial/dispatch.py Mon Mar 01 22:47:39 2010 +0100
+++ b/mercurial/dispatch.py Mon Mar 01 23:27:44 2010 +0900
@@ -208,8 +208,7 @@
if self.help.startswith("hg " + cmd):
# drop prefix in old-style help lines so hg shows the alias
self.help = self.help[4 + len(cmd):]
- self.__doc__ = _("alias for: hg %s\n\n%s") \
- % (definition, self.fn.__doc__)
+ self.__doc__ = self.fn.__doc__
except error.UnknownCommand:
def fn(ui, *args):