Mercurial > hg
changeset 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 | dba2db7a7c28 |
children | 1f71dffabc53 |
files | mercurial/ui.py mercurial/util.py |
diffstat | 2 files changed, 13 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/ui.py Sat Aug 28 21:49:53 2010 -0500 +++ b/mercurial/ui.py Sat Aug 28 21:50:35 2010 -0500 @@ -9,9 +9,6 @@ import errno, getpass, os, socket, sys, tempfile, traceback import config, util, error -_booleans = {'1': True, 'yes': True, 'true': True, 'on': True, - '0': False, 'no': False, 'false': False, 'off': False} - class ui(object): def __init__(self, src=None): self._buffers = [] @@ -149,10 +146,11 @@ return default if isinstance(v, bool): return v - if v.lower() not in _booleans: + b = util.parsebool(v) + if b is None: raise error.ConfigError(_("%s.%s not a boolean ('%s')") % (section, name, v)) - return _booleans[v.lower()] + return b def configlist(self, section, name, default=None, untrusted=False): """Return a list of comma/space separated strings"""
--- a/mercurial/util.py Sat Aug 28 21:49:53 2010 -0500 +++ b/mercurial/util.py Sat Aug 28 21:50:35 2010 -0500 @@ -1435,3 +1435,13 @@ return socket.getservbyname(port) except socket.error: raise Abort(_("no port number associated with service '%s'") % port) + +_booleans = {'1': True, 'yes': True, 'true': True, 'on': True, + '0': False, 'no': False, 'false': False, 'off': False} + +def parsebool(s): + """Parse s into a boolean. + + If s is not a valid boolean, returns None. + """ + return _booleans.get(s.lower(), None)