# HG changeset patch # User Matt Mackall # Date 1240519210 18000 # Node ID 507c49e297e1d43af28871b47b1ed7279e7fb942 # Parent 912bfef12ba6d574e2c8cccd6276d5dd11ac4b18 ui: simplify init, kill dupconfig diff -r 912bfef12ba6 -r 507c49e297e1 mercurial/ui.py --- a/mercurial/ui.py Thu Apr 23 15:40:10 2009 -0500 +++ b/mercurial/ui.py Thu Apr 23 15:40:10 2009 -0500 @@ -9,11 +9,6 @@ import errno, getpass, os, re, socket, sys, tempfile import ConfigParser, traceback, util -def dupconfig(orig): - new = util.configparser(orig.defaults()) - updateconfig(orig, new) - return new - def updateconfig(source, dest, sections=None): if not sections: sections = source.sections() @@ -30,31 +25,28 @@ self.buffers = [] self.quiet = self.verbose = self.debugflag = self.traceback = False self.interactive = self.report_untrusted = True + self.overlay = util.configparser() + self.cdata = util.configparser() + self.ucdata = util.configparser() + self.parentui = None + self.trusted_users = {} + self.trusted_groups = {} - if parentui is None: - # this is the parent of all ui children - self.parentui = None - self.trusted_users = {} - self.trusted_groups = {} - self.overlay = util.configparser() - self.cdata = util.configparser() - self.ucdata = util.configparser() - + if parentui: + # parentui may point to an ui object which is already a child + self.parentui = parentui.parentui or parentui + updateconfig(self.parentui.cdata, self.cdata) + updateconfig(self.parentui.ucdata, self.ucdata) + # we want the overlay from the parent, not the root + updateconfig(parentui.overlay, self.overlay) + self.buffers = parentui.buffers + self.trusted_users = parentui.trusted_users.copy() + self.trusted_groups = parentui.trusted_groups.copy() + self.fixconfig() + else: # we always trust global config files for f in util.rcpath(): self.readconfig(f, assumetrusted=True) - else: - # parentui may point to an ui object which is already a child - self.parentui = parentui.parentui or parentui - self.buffers = parentui.buffers - self.trusted_users = parentui.trusted_users.copy() - self.trusted_groups = parentui.trusted_groups.copy() - self.cdata = dupconfig(self.parentui.cdata) - self.ucdata = dupconfig(self.parentui.ucdata) - - # we want the overlay from the parent, not the root - self.overlay = dupconfig(parentui.overlay) - self.fixconfig() def __getattr__(self, key): return getattr(self.parentui, key)