extensions: drop maxlength from enabled and disabled
This is a bad/silly API. Instead calculate maxlength in one place in help
it's used and simplify all the callers.
--- a/doc/gendoc.py Fri May 13 11:26:29 2011 +0200
+++ b/doc/gendoc.py Fri May 13 11:04:51 2011 -0500
@@ -157,16 +157,7 @@
def allextensionnames():
- extensionnames = []
-
- extensionsdictionary = extensions.enabled()[0]
- extensionnames.extend(extensionsdictionary.keys())
-
- extensionsdictionary = extensions.disabled()[0]
- extensionnames.extend(extensionsdictionary.keys())
-
- return extensionnames
-
+ return extensions.enabled().keys() + extensions.disabled().keys()
if __name__ == "__main__":
show_doc(sys.stdout)
--- a/mercurial/commands.py Fri May 13 11:26:29 2011 +0200
+++ b/mercurial/commands.py Fri May 13 11:04:51 2011 -0500
@@ -2752,8 +2752,7 @@
doc = gettext(mod.__doc__).splitlines()[0]
msg = help.listexts(_("'%s' is provided by the following "
- "extension:") % cmd, {ext: doc}, len(ext),
- indent=4)
+ "extension:") % cmd, {ext: doc}, indent=4)
ui.write(minirst.format(msg, textwidth))
ui.write('\n\n')
ui.write(_('use "hg help extensions" for information on enabling '
@@ -2799,8 +2798,7 @@
helplist(header)
if name != 'shortlist':
- exts, maxlength = extensions.enabled()
- text = help.listexts(_('enabled extensions:'), exts, maxlength)
+ text = help.listexts(_('enabled extensions:'), extensions.enabled())
if text:
ui.write("\n%s\n" % minirst.format(text, textwidth))
--- a/mercurial/extensions.py Fri May 13 11:26:29 2011 +0200
+++ b/mercurial/extensions.py Fri May 13 11:04:51 2011 -0500
@@ -230,20 +230,15 @@
paths = _disabledpaths()
if not paths:
- return None, 0
+ return None
exts = {}
- maxlength = 0
for name, path in paths.iteritems():
doc = _disabledhelp(path)
- if not doc:
- continue
+ if doc:
+ exts[name] = doc
- exts[name] = doc
- if len(name) > maxlength:
- maxlength = len(name)
-
- return exts, maxlength
+ return exts
def disabledext(name):
'''find a specific disabled extension from hgext. returns desc'''
@@ -299,11 +294,9 @@
def enabled():
'''return a dict of {name: desc} of extensions, and the max name length'''
exts = {}
- maxlength = 0
for ename, ext in extensions():
doc = (gettext(ext.__doc__) or _('(no help text available)'))
ename = ename.split('.')[-1]
- maxlength = max(len(ename), maxlength)
exts[ename] = doc.splitlines()[0].strip()
- return exts, maxlength
+ return exts
--- a/mercurial/help.py Fri May 13 11:26:29 2011 +0200
+++ b/mercurial/help.py Fri May 13 11:04:51 2011 -0500
@@ -43,10 +43,11 @@
return ''.join(result)
-def listexts(header, exts, maxlength, indent=1):
+def listexts(header, exts, indent=1):
'''return a text listing of the given extensions'''
if not exts:
return ''
+ maxlength = max(len(e) for e in exts)
result = '\n%s\n\n' % header
for name, desc in sorted(exts.iteritems()):
result += '%s%-*s %s\n' % (' ' * indent, maxlength + 2,
@@ -55,13 +56,8 @@
def extshelp():
doc = loaddoc('extensions')()
-
- exts, maxlength = extensions.enabled()
- doc += listexts(_('enabled extensions:'), exts, maxlength)
-
- exts, maxlength = extensions.disabled()
- doc += listexts(_('disabled extensions:'), exts, maxlength)
-
+ doc += listexts(_('enabled extensions:'), extensions.enabled())
+ doc += listexts(_('disabled extensions:'), extensions.disabled())
return doc
def loaddoc(topic):
--- a/mercurial/subrepo.py Fri May 13 11:26:29 2011 +0200
+++ b/mercurial/subrepo.py Fri May 13 11:04:51 2011 -0500
@@ -408,7 +408,7 @@
if r == '' and not ignoreupdate: # no state recorded
return True
w = self._repo[None]
- if r != w.p1().node() and not ignoreupdate:
+ if r != w.p1().hex() and not ignoreupdate:
# different version checked out
return True
return w.dirty() # working directory changed