# HG changeset patch # User Pierre-Yves David # Date 2013-01-15 11:11:18 # Node ID 82572533bc0027bc4935902c5c5ba0afbe71ba8b # Parent 083daee1b7492cac49bdcd348f1dc632624f1257 hgweb: move the `seq` function out of the revnavgen scope There is not reason for it to be a in there. And this function could use a major reworks. diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py --- a/mercurial/hgweb/webutil.py +++ b/mercurial/hgweb/webutil.py @@ -24,6 +24,17 @@ def up(p): return "/" return up + "/" +def _navseq(factor, limit=None): + if limit: + yield limit + if limit >= 20 and limit <= 40: + yield 50 + else: + yield 1 * factor + yield 3 * factor + for f in _navseq(factor * 10): + yield f + def revnavgen(pos, pagelen, limit, nodefunc): """computes label and revision id for navigation link @@ -38,22 +49,12 @@ def revnavgen(pos, pagelen, limit, nodef - values are generator functions taking an arbitrary number of kwargs - yield items are dictionaries with `label` and `node` keys """ - def seq(factor, limit=None): - if limit: - yield limit - if limit >= 20 and limit <= 40: - yield 50 - else: - yield 1 * factor - yield 3 * factor - for f in seq(factor * 10): - yield f navbefore = [] navafter = [] last = 0 - for f in seq(1, pagelen): + for f in _navseq(1, pagelen): if f < pagelen or f <= last: continue if f > limit: