comparison mercurial/ui.py @ 12087:a88a4720c2f0

parsebool: create new function and use it for config parsing
author Augie Fackler <durin42@gmail.com>
date Sat, 28 Aug 2010 21:50:35 -0500
parents 2db0fccc8143
children 7285b2824fb7
comparison
equal deleted inserted replaced
12086:dba2db7a7c28 12087:a88a4720c2f0
6 # GNU General Public License version 2 or any later version. 6 # GNU General Public License version 2 or any later version.
7 7
8 from i18n import _ 8 from i18n import _
9 import errno, getpass, os, socket, sys, tempfile, traceback 9 import errno, getpass, os, socket, sys, tempfile, traceback
10 import config, util, error 10 import config, util, error
11
12 _booleans = {'1': True, 'yes': True, 'true': True, 'on': True,
13 '0': False, 'no': False, 'false': False, 'off': False}
14 11
15 class ui(object): 12 class ui(object):
16 def __init__(self, src=None): 13 def __init__(self, src=None):
17 self._buffers = [] 14 self._buffers = []
18 self.quiet = self.verbose = self.debugflag = self.tracebackflag = False 15 self.quiet = self.verbose = self.debugflag = self.tracebackflag = False
147 v = self.config(section, name, None, untrusted) 144 v = self.config(section, name, None, untrusted)
148 if v is None: 145 if v is None:
149 return default 146 return default
150 if isinstance(v, bool): 147 if isinstance(v, bool):
151 return v 148 return v
152 if v.lower() not in _booleans: 149 b = util.parsebool(v)
150 if b is None:
153 raise error.ConfigError(_("%s.%s not a boolean ('%s')") 151 raise error.ConfigError(_("%s.%s not a boolean ('%s')")
154 % (section, name, v)) 152 % (section, name, v))
155 return _booleans[v.lower()] 153 return b
156 154
157 def configlist(self, section, name, default=None, untrusted=False): 155 def configlist(self, section, name, default=None, untrusted=False):
158 """Return a list of comma/space separated strings""" 156 """Return a list of comma/space separated strings"""
159 157
160 def _parse_plain(parts, s, offset): 158 def _parse_plain(parts, s, offset):