# HG changeset patch # User Martin von Zweigbergk # Date 2019-10-12 18:13:55 # Node ID 5cb3e6f4e06925e770a41ff95190d804b7dc4330 # Parent 6a350194de7f29d4f9dda183ab6df1d210bd58ff fix: fix registration of config item defaults Before this patch, because of the "(:)?", all registered patterns would match and the default value would not be the one we thought we had registered (maybe it just took the default value for the first match?). This didn't matter because we didn't care about the default value; we used our own, intended default value in getfixers() anyway. We also have to look up each config item individually in order to not get developer warnings. Differential Revision: https://phab.mercurial-scm.org/D7082 diff --git a/hgext/fix.py b/hgext/fix.py --- a/hgext/fix.py +++ b/hgext/fix.py @@ -178,7 +178,7 @@ FIXER_ATTRS = { } for key, default in FIXER_ATTRS.items(): - configitem(b'fix', b'.*(:%s)?' % key, default=default, generic=True) + configitem(b'fix', b'.*:%s$' % key, default=default, generic=True) # A good default size allows most source code files to be fixed, but avoids # letting fixer tools choke on huge inputs, which could be surprising to the @@ -794,12 +794,11 @@ def getfixers(ui): fixers = {} for name in fixernames(ui): fixers[name] = Fixer() - attrs = ui.configsuboptions(b'fix', name)[1] for key, default in FIXER_ATTRS.items(): setattr( fixers[name], pycompat.sysstr(b'_' + key), - attrs.get(key, default), + ui.config(b'fix', name + b':' + key, default), ) fixers[name]._priority = int(fixers[name]._priority) fixers[name]._metadata = stringutil.parsebool(fixers[name]._metadata)