Patchwork [02,of,10] config: use the new '_unset' value for 'configbool'

login
register
mail settings
Submitter Pierre-Yves David
Date June 18, 2017, 6:55 p.m.
Message ID <0d7b693176387264f4e0.1497812112@nodosa.octopoid.net>
Download mbox | patch
Permalink /patch/21480/
State Accepted
Headers show

Comments

Pierre-Yves David - June 18, 2017, 6:55 p.m.
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@octobus.net>
# Date 1497696736 -7200
#      Sat Jun 17 12:52:16 2017 +0200
# Node ID 0d7b693176387264f4e04e8ee6455195fa871e93
# Parent  5e988d4f834b981d8aaf9d77019550d3800687d5
# EXP-Topic config.register
# Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
#              hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r 0d7b69317638
config: use the new '_unset' value for 'configbool'

This should let 'configbool' delegate all special processing of the default
config value to the main 'config' method.

The default value for bool (False) is still enforced in this method if no other
default were passed.

Patch

diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -467,7 +467,7 @@  class ui(object):
                 v = os.path.join(base, os.path.expanduser(v))
         return v
 
-    def configbool(self, section, name, default=False, untrusted=False):
+    def configbool(self, section, name, default=_unset, untrusted=False):
         """parse a configuration element as a boolean
 
         >>> u = ui(); s = 'foo'
@@ -488,8 +488,10 @@  class ui(object):
         ConfigError: foo.invalid is not a boolean ('somevalue')
         """
 
-        v = self.config(section, name, None, untrusted)
+        v = self.config(section, name, default, untrusted=untrusted)
         if v is None:
+            if default is _unset:
+                return False
             return default
         if isinstance(v, bool):
             return v