# HG changeset patch # User Yuya Nishihara # Date 2009-10-28 14:55:23 # Node ID e0eae93e6c6705f505ac2269b32a426ccc5a23f6 # Parent f53c549237cadd78299872d77015a15901367bcc 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. diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -358,17 +358,7 @@ def _dispatch(ui, args): extensions.loadall(lui) exts = [ext for ext in extensions.extensions() if ext[0] not in _loaded] - # (uisetup is handled in extensions.loadall) - - for name, module in exts: - extsetup = getattr(module, 'extsetup', None) - if extsetup: - try: - extsetup(ui) - except TypeError: - if extsetup.func_code.co_argcount != 0: - raise - extsetup() # old extsetup with no ui argument + # (uisetup and extsetup are handled in extensions.loadall) for name, module in exts: cmdtable = getattr(module, 'cmdtable', {}) diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -93,6 +93,16 @@ def loadall(ui): 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():