diff -r fd93b15b5c30 -r 7d88fde2309f mercurial/extensions.py --- a/mercurial/extensions.py Fri Jul 01 16:02:56 2016 -0500 +++ b/mercurial/extensions.py Thu Jun 30 10:31:50 2016 +0100 @@ -127,6 +127,21 @@ fn(loaded=True) return mod +def _runuisetup(name, ui): + uisetup = getattr(_extensions[name], 'uisetup', None) + if uisetup: + uisetup(ui) + +def _runextsetup(name, ui): + 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 loadall(ui): result = ui.configitems("extensions") newindex = len(_order) @@ -148,19 +163,10 @@ ui.traceback() for name in _order[newindex:]: - uisetup = getattr(_extensions[name], 'uisetup', None) - if uisetup: - uisetup(ui) + _runuisetup(name, 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 + _runextsetup(name, ui) # Call aftercallbacks that were never met. for shortname in _aftercallbacks: