diff mercurial/extensions.py @ 9660:e0eae93e6c67

extensions: changed to call extsetup() from extensions.loadall() previously uisetup() was invoked by extensions.loadall(), but extsetup() was by _dispatch(). there's no need to split them because we have nothing to do between uisetup() and extsetup(). this fixes issue1824 indirectly.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 28 Oct 2009 23:55:23 +0900
parents d78fe60f6bda
children a1943c2a4661
line wrap: on
line diff
--- a/mercurial/extensions.py	Wed Oct 21 13:40:55 2009 +0200
+++ b/mercurial/extensions.py	Wed Oct 28 23:55:23 2009 +0900
@@ -93,6 +93,16 @@
         if uisetup:
             uisetup(ui)
 
+    for name in _order[newindex:]:
+        extsetup = getattr(_extensions[name], 'extsetup', None)
+        if extsetup:
+            try:
+                extsetup(ui)
+            except TypeError:
+                if extsetup.func_code.co_argcount != 0:
+                    raise
+                extsetup() # old extsetup with no ui argument
+
 def wrapcommand(table, command, wrapper):
     aliases, entry = cmdutil.findcmd(command, table)
     for alias, e in table.iteritems():