##// END OF EJS Templates
load extensions only after the ui object has been completely initialized...
Alexis S. L. Carvalho -
r3014:01454af6 default
parent child Browse files
Show More
@@ -0,0 +1,9 b''
1 #!/bin/sh
2
3 echo 'syntax error' > badext.py
4 abspath=`pwd`/badext.py
5
6 echo '[extensions]' >> $HGRCPATH
7 echo "badext = $abspath" >> $HGRCPATH
8
9 hg -q help help
@@ -0,0 +1,4 b''
1 *** failed to import extension badext: invalid syntax (badext.py, line 1)
2 hg help [COMMAND]
3
4 show help for a command, extension, or list of commands
@@ -3305,12 +3305,14 b' def dispatch(args):'
3305 3305 if num: signal.signal(num, catchterm)
3306 3306
3307 3307 try:
3308 u = ui.ui(traceback='--traceback' in sys.argv[1:],
3309 readhooks=[load_extensions])
3308 u = ui.ui(traceback='--traceback' in sys.argv[1:])
3310 3309 except util.Abort, inst:
3311 3310 sys.stderr.write(_("abort: %s\n") % inst)
3312 3311 return -1
3313 3312
3313 load_extensions(u)
3314 u.addreadhook(load_extensions)
3315
3314 3316 try:
3315 3317 cmd, func, args, options, cmdoptions = parse(u, args)
3316 3318 if options["time"]:
@@ -12,13 +12,12 b' demandload(globals(), "ConfigParser mdif'
12 12
13 13 class ui(object):
14 14 def __init__(self, verbose=False, debug=False, quiet=False,
15 interactive=True, traceback=False, parentui=None,
16 readhooks=[]):
15 interactive=True, traceback=False, parentui=None):
17 16 self.overlay = {}
18 17 if parentui is None:
19 18 # this is the parent of all ui children
20 19 self.parentui = None
21 self.readhooks = list(readhooks)
20 self.readhooks = []
22 21 self.trusted_users = {}
23 22 self.trusted_groups = {}
24 23 self.cdata = ConfigParser.SafeConfigParser()
@@ -38,7 +37,7 b' class ui(object):'
38 37 else:
39 38 # parentui may point to an ui object which is already a child
40 39 self.parentui = parentui.parentui or parentui
41 self.readhooks = list(parentui.readhooks or readhooks)
40 self.readhooks = parentui.readhooks[:]
42 41 self.trusted_users = parentui.trusted_users.copy()
43 42 self.trusted_groups = parentui.trusted_groups.copy()
44 43 parent_cdata = self.parentui.cdata
@@ -110,6 +109,9 b' class ui(object):'
110 109 for hook in self.readhooks:
111 110 hook(self)
112 111
112 def addreadhook(self, hook):
113 self.readhooks.append(hook)
114
113 115 def setconfig(self, section, name, val):
114 116 self.overlay[(section, name)] = val
115 117
General Comments 0
You need to be logged in to leave comments. Login now