mercurial/ui.py
changeset 3070 24c1db20990c
parent 3035 1efd5a6df5a3
child 3100 09e8aecd8016
equal deleted inserted replaced
3069:bc3fe3b5b785 3070:24c1db20990c
   120             return self.overlay[(section, name)]
   120             return self.overlay[(section, name)]
   121         if self.cdata.has_option(section, name):
   121         if self.cdata.has_option(section, name):
   122             try:
   122             try:
   123                 return self.cdata.get(section, name)
   123                 return self.cdata.get(section, name)
   124             except ConfigParser.InterpolationError, inst:
   124             except ConfigParser.InterpolationError, inst:
   125                 raise util.Abort(_("Error in configuration:\n%s") % inst)
   125                 raise util.Abort(_("Error in configuration section [%s] "
       
   126                                    "parameter '%s':\n%s")
       
   127                                  % (section, name, inst))
   126         if self.parentui is None:
   128         if self.parentui is None:
   127             return default
   129             return default
   128         else:
   130         else:
   129             return self.parentui.config(section, name, default)
   131             return self.parentui.config(section, name, default)
   130 
   132 
   142             return self.overlay[(section, name)]
   144             return self.overlay[(section, name)]
   143         if self.cdata.has_option(section, name):
   145         if self.cdata.has_option(section, name):
   144             try:
   146             try:
   145                 return self.cdata.getboolean(section, name)
   147                 return self.cdata.getboolean(section, name)
   146             except ConfigParser.InterpolationError, inst:
   148             except ConfigParser.InterpolationError, inst:
   147                 raise util.Abort(_("Error in configuration:\n%s") % inst)
   149                 raise util.Abort(_("Error in configuration section [%s] "
       
   150                                    "parameter '%s':\n%s")
       
   151                                  % (section, name, inst))
   148         if self.parentui is None:
   152         if self.parentui is None:
   149             return default
   153             return default
   150         else:
   154         else:
   151             return self.parentui.configbool(section, name, default)
   155             return self.parentui.configbool(section, name, default)
   152 
   156 
   160             items = dict(self.parentui.configitems(section))
   164             items = dict(self.parentui.configitems(section))
   161         if self.cdata.has_section(section):
   165         if self.cdata.has_section(section):
   162             try:
   166             try:
   163                 items.update(dict(self.cdata.items(section)))
   167                 items.update(dict(self.cdata.items(section)))
   164             except ConfigParser.InterpolationError, inst:
   168             except ConfigParser.InterpolationError, inst:
   165                 raise util.Abort(_("Error in configuration:\n%s") % inst)
   169                 raise util.Abort(_("Error in configuration section [%s]:\n%s")
       
   170                                  % (section, inst))
   166         x = items.items()
   171         x = items.items()
   167         x.sort()
   172         x.sort()
   168         return x
   173         return x
   169 
   174 
   170     def walkconfig(self, seen=None):
   175     def walkconfig(self, seen=None):
   172             seen = {}
   177             seen = {}
   173         for (section, name), value in self.overlay.iteritems():
   178         for (section, name), value in self.overlay.iteritems():
   174             yield section, name, value
   179             yield section, name, value
   175             seen[section, name] = 1
   180             seen[section, name] = 1
   176         for section in self.cdata.sections():
   181         for section in self.cdata.sections():
   177             for name, value in self.cdata.items(section):
   182             try:
   178                 if (section, name) in seen: continue
   183                 for name, value in self.cdata.items(section):
   179                 yield section, name, value.replace('\n', '\\n')
   184                     if (section, name) in seen: continue
   180                 seen[section, name] = 1
   185                     yield section, name, value.replace('\n', '\\n')
       
   186                     seen[section, name] = 1
       
   187             except ConfigParser.InterpolationError, inst:
       
   188                 raise util.Abort(_("Error in configuration section [%s]:\n%s")
       
   189                                  % (section, inst))
   181         if self.parentui is not None:
   190         if self.parentui is not None:
   182             for parent in self.parentui.walkconfig(seen):
   191             for parent in self.parentui.walkconfig(seen):
   183                 yield parent
   192                 yield parent
   184 
   193 
   185     def extensions(self):
   194     def extensions(self):