mercurial/ui.py
changeset 47415 b1b3127227be
parent 47412 c887bab2dccf
child 47437 7a430116f639
equal deleted inserted replaced
47414:5fbac82a8780 47415:b1b3127227be
   946                         b"ignoring untrusted configuration option "
   946                         b"ignoring untrusted configuration option "
   947                         b"%s.%s = %s\n" % (section, k, v)
   947                         b"%s.%s = %s\n" % (section, k, v)
   948                     )
   948                     )
   949         return items
   949         return items
   950 
   950 
   951     def walkconfig(self, untrusted=False):
   951     def walkconfig(self, untrusted=False, all_known=False):
       
   952         defined = self._walk_config(untrusted)
       
   953         if not all_known:
       
   954             for d in defined:
       
   955                 yield d
       
   956             return
       
   957         known = self._walk_known()
       
   958         current_defined = next(defined, None)
       
   959         current_known = next(known, None)
       
   960         while current_defined is not None or current_known is not None:
       
   961             if current_defined is None:
       
   962                 yield current_known
       
   963                 current_known = next(known, None)
       
   964             elif current_known is None:
       
   965                 yield current_defined
       
   966                 current_defined = next(defined, None)
       
   967             elif current_known[0:2] == current_defined[0:2]:
       
   968                 yield current_defined
       
   969                 current_defined = next(defined, None)
       
   970                 current_known = next(known, None)
       
   971             elif current_known[0:2] < current_defined[0:2]:
       
   972                 yield current_known
       
   973                 current_known = next(known, None)
       
   974             else:
       
   975                 yield current_defined
       
   976                 current_defined = next(defined, None)
       
   977 
       
   978     def _walk_known(self):
       
   979         for section, items in sorted(self._knownconfig.items()):
       
   980             for k, i in sorted(items.items()):
       
   981                 # We don't have a way to display generic well, so skip them
       
   982                 if i.generic:
       
   983                     continue
       
   984                 if callable(i.default):
       
   985                     default = i.default()
       
   986                 elif i.default is configitems.dynamicdefault:
       
   987                     default = b'<DYNAMIC>'
       
   988                 else:
       
   989                     default = i.default
       
   990                 yield section, i.name, default
       
   991 
       
   992     def _walk_config(self, untrusted):
   952         cfg = self._data(untrusted)
   993         cfg = self._data(untrusted)
   953         for section in cfg.sections():
   994         for section in cfg.sections():
   954             for name, value in self.configitems(section, untrusted):
   995             for name, value in self.configitems(section, untrusted):
   955                 yield section, name, value
   996                 yield section, name, value
   956 
   997