# HG changeset patch # User Thomas Arendsen Hein # Date 2006-03-10 10:34:02 # Node ID 2e0fd78587bdb1ecaf56ef9aaf428d2b7a271217 # Parent 2f4a0734c1001d47184cbe6f823696fb74bb8de9 Catch hgrc interpolation errors nicely. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -64,7 +64,10 @@ class ui(object): if self.overlay.has_key((section, name)): return self.overlay[(section, name)] if self.cdata.has_option(section, name): - return self.cdata.get(section, name) + try: + return self.cdata.get(section, name) + except ConfigParser.InterpolationError, inst: + raise util.Abort(_("Error in configuration:\n%s") % inst) if self.parentui is None: return default else: @@ -74,7 +77,10 @@ class ui(object): if self.overlay.has_key((section, name)): return self.overlay[(section, name)] if self.cdata.has_option(section, name): - return self.cdata.getboolean(section, name) + try: + return self.cdata.getboolean(section, name) + except ConfigParser.InterpolationError, inst: + raise util.Abort(_("Error in configuration:\n%s") % inst) if self.parentui is None: return default else: @@ -85,7 +91,10 @@ class ui(object): if self.parentui is not None: items = dict(self.parentui.configitems(section)) if self.cdata.has_section(section): - items.update(dict(self.cdata.items(section))) + try: + items.update(dict(self.cdata.items(section))) + except ConfigParser.InterpolationError, inst: + raise util.Abort(_("Error in configuration:\n%s") % inst) x = items.items() x.sort() return x