alias: fixes exception when displaying translated help text stable
authorYuya Nishihara <yuya@tcha.org>
Mon, 01 Mar 2010 23:27:44 +0900
branchstable
changeset 10564 6ded6243bde2
parent 10563 bb4561401c84
child 10566 70dea42c9406
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.
mercurial/commands.py
mercurial/dispatch.py
--- 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):