mercurial/ui.py
changeset 3341 a7cec14c9b40
parent 3340 929d04962115
child 3342 4eeb79b4da30
equal deleted inserted replaced
3340:929d04962115 3341:a7cec14c9b40
    85         self.readhooks.append(hook)
    85         self.readhooks.append(hook)
    86 
    86 
    87     def setconfig(self, section, name, val):
    87     def setconfig(self, section, name, val):
    88         self.overlay[(section, name)] = val
    88         self.overlay[(section, name)] = val
    89 
    89 
    90     def config(self, section, name, default=None):
    90     def _config(self, section, name, default, funcname):
    91         if self.overlay.has_key((section, name)):
    91         if self.overlay.has_key((section, name)):
    92             return self.overlay[(section, name)]
    92             return self.overlay[(section, name)]
    93         if self.cdata.has_option(section, name):
    93         if self.cdata.has_option(section, name):
    94             try:
    94             try:
    95                 return self.cdata.get(section, name)
    95                 func = getattr(self.cdata, funcname)
       
    96                 return func(section, name)
    96             except ConfigParser.InterpolationError, inst:
    97             except ConfigParser.InterpolationError, inst:
    97                 raise util.Abort(_("Error in configuration section [%s] "
    98                 raise util.Abort(_("Error in configuration section [%s] "
    98                                    "parameter '%s':\n%s")
    99                                    "parameter '%s':\n%s")
    99                                  % (section, name, inst))
   100                                  % (section, name, inst))
   100         if self.parentui is None:
   101         if self.parentui is None:
   101             return default
   102             return default
   102         else:
   103         else:
   103             return self.parentui.config(section, name, default)
   104             return self.parentui._config(section, name, default, funcname)
       
   105 
       
   106     def config(self, section, name, default=None):
       
   107         return self._config(section, name, default, 'get')
       
   108 
       
   109     def configbool(self, section, name, default=False):
       
   110         return self._config(section, name, default, 'getboolean')
   104 
   111 
   105     def configlist(self, section, name, default=None):
   112     def configlist(self, section, name, default=None):
   106         """Return a list of comma/space separated strings"""
   113         """Return a list of comma/space separated strings"""
   107         result = self.config(section, name)
   114         result = self.config(section, name)
   108         if result is None:
   115         if result is None:
   109             result = default or []
   116             result = default or []
   110         if isinstance(result, basestring):
   117         if isinstance(result, basestring):
   111             result = result.replace(",", " ").split()
   118             result = result.replace(",", " ").split()
   112         return result
   119         return result
   113 
       
   114     def configbool(self, section, name, default=False):
       
   115         if self.overlay.has_key((section, name)):
       
   116             return self.overlay[(section, name)]
       
   117         if self.cdata.has_option(section, name):
       
   118             try:
       
   119                 return self.cdata.getboolean(section, name)
       
   120             except ConfigParser.InterpolationError, inst:
       
   121                 raise util.Abort(_("Error in configuration section [%s] "
       
   122                                    "parameter '%s':\n%s")
       
   123                                  % (section, name, inst))
       
   124         if self.parentui is None:
       
   125             return default
       
   126         else:
       
   127             return self.parentui.configbool(section, name, default)
       
   128 
   120 
   129     def has_config(self, section):
   121     def has_config(self, section):
   130         '''tell whether section exists in config.'''
   122         '''tell whether section exists in config.'''
   131         return self.cdata.has_section(section)
   123         return self.cdata.has_section(section)
   132 
   124